Permalink
Browse files

Change logs and release notes for 1.6.

  • Loading branch information...
rstam
rstam committed Aug 29, 2012
1 parent a200c61 commit 07594e7130b957b77a0d71b5837c9811db8c9e82
@@ -1,8 +1,14 @@
BSON library changes from 1.5 to 1.6
BsonWriter.cs
no longer allow $csharpnull (driver now uses _csharpnull instead)
BsonSerializerAttribute.cs
new attribute to configure a serializer for a class or a member
BsonValueSerializer.cs
BsonNullSerializer now uses _csharpnull instead of $csharpnull for a C# null value of type BsonNull
ReadOnlyCollectionSerializer.cs
new serializer for ReadOnlyCollection
@@ -1,5 +1,8 @@
C# driver changes from 1.5 to 1.6
IndexOptionsBuilder.cs
added SetTimeToLive
QueryBuilder.cs
QueryBuilderTyped.cs
Mod arguments changed from int to long
@@ -8,13 +11,21 @@ AggregateResult.cs
new class
represents the result of an aggregate command
CollectionStatsResults.cs
added CollectionSystemFlags and CollectionUserFlags enums
marked Flags property obsolete
added SystemFlags and UserFlags properties
IsMasterResult.cs
new class
represents the result of an IsMaster command
ConnectWaitFor.cs
enum removed (obsoleted by ReadPreference)
GetIndexesResult.cs
added TimeToLive property to IndexInfo class
MongoCollection.cs
added Aggregate helper method
obsoleted slaveOk
@@ -56,6 +67,8 @@ MongoServer.cs
instance management logic moved from this class to new proxy classes
static constructor no longer registers serializers (see MongoDBRef and SystemProfileInfo)
removed ConnectWaitFor overload to Connect
obsoleted slaveOk
added support for ReadPreference
MongoServerBuildInfo.cs
added new FromCommandResult helper factory method
@@ -65,11 +78,14 @@ MongoServerInstance.cs
added tracking of a running average Ping time
moved state verification time here from MongoConnectionPool
added several new internal properties (AveragePingTime, ReplicaSetInformation, InstanceType)
changed most thread synchronization to use Interlocked methods rather than locks
reengineered how locking is used
changed some thread synchronization to use Interlocked methods rather than locks
IsMasterResult now returns an instance of the new IsMasterResult class
reimplemented VerifyState
reimplemented Connect
reimplemented Connect and Disconnect
renamed internal VerifyState helper method to LookupServerInformation (and reimplemented it)
added internal Ping helper method that keeps running average of Ping time
added new ServerInformation helper class
MongoServerSettings.cs
obsoleted slaveOk
@@ -136,46 +152,60 @@ DiscoveringMongoServerProxy.cs
new class that is used when we won't know what kind of server we are connected to until we try to connect to it
IMongoServerProxy.cs
interface for proxies
interface for server proxies
MongoConnection.cs
added support for SSL
changed RunCommand to take a database name instead of a collection name
MongoConnectionPool.cs
moved state verification timer to MongoServerInstance
new MaintainPoolSize method is a refactoring of the old TimerCallback method
RemoveConnection is now private
MongoServerProxyFactory.cs
new class to handle choosing the type of IMongoServerProxy to create based on settings
MultipleConnectionMongoServerProxy.cs
MultipleInstanceMongoServerProxy.cs
new abstract class for managing multiple active MongoServerInstances
PingTimeAggregator.cs
new class to keep track of ping times and their average for a MongoServerInstance
ReplicaSetConnector.cs
removed class
more or less replaced by MultipleConnectionMongoServerProxy and ReplicaSetMongoServerProxy
more or less replaced by MultipleInstanceMongoServerProxy and ReplicaSetMongoServerProxy
ReplicaSetInformation.cs
new class to hold information about a replica set
ReplicaSetMongoServerProxy.cs
new subclass of MultipleConnectionMongoServerProxy to implement replica set specifics
new subclass of MultipleInstanceMongoServerProxy to implement replica set specifics
ShardedMongoServerProxy.cs
new sublcass of MultipleConnectionMongoServerProxy to implement mongos specifics
new sublcass of MultipleInstanceMongoServerProxy to implement mongos specifics
MongoQueryProvider.cs
fixed a bug related to First, FirstOrDefault, Single and SingleOrDefault when projecting a primitive type
ExpressionNormalizer.cs
normalize comparisons of Nullable<T> from VB to C#
VisitUnary now calls base method before normalizing
PredicateTranslator.cs
changed Mod operation to use a 64-bit integer
changed Mod query operator to support either 32-bit or 64-bit integers
Projector.cs
added new IProjector and IProjector<TSource, TResult> interfaces
added new IdentityProjector<T> class
Projector<TSource, TResult> now implements IProjector<TSource, TResult> interface
added Cursor property to Projector
SelectQuery.cs
changed skip and take handling to be order dependent
Distinct now must appear last in the query pipeline
changed Execute so that a projector is always used, even if it is only an IdentityProjector
BsonSerializationInfoHelper.cs
moved code to the BsonSerializationInfo class
moved SerializeValue and SerializeValues to the BsonSerializationInfo class
but left behind forwarding stubs (for now)
MongoQueryProvider.cs
fixed a bug related to First, FirstOrDefault, Single and SingleOrDefault when projecting a primitive type
@@ -1,31 +1,54 @@
C# Driver Version 1.6 Release Notes
===================================
This is a major release featuring support for server 2.2. The major change is
support for[read preferences](http://docs.mongodb.org/manual/applications/replication/#read-preference)
allowing tag based granularity for selecting servers to send commands and
queries to. In addition, we have added support for SSL and a helper method
for the new aggregation framework.
This is a major release featuring support for server 2.2. The major change is
support for read preferences, allowing tag based granularity for selecting
servers to send commands and queries to. In addition, we have added support
for SSL and a helper method for the new aggregation framework.
An online version (with possible corrections) of these release notes is available at:
https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Release%20Notes%20v1.6.md
File by file change logs are available at:
https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Change%20Log%20v1.6-Bson.txt
https://github.com/mongodb/mongo-csharp-driver/blob/master/Release%20Notes/Change%20Log%20v1.6-Driver.txt
The full list of JIRA issues resolved in this release is available at:
https://jira.mongodb.org/secure/IssueNavigator.jspa?mode=hide&requestId=12011
Information about read preferences is available online at:
http://docs.mongodb.org/manual/applications/replication/#read-preference
These release notes describe the changes at a higher level, and omits describing
some of the minor changes.
Breaking changes
----------------
- ConnectWaitFor has been removed and replaced with read preferences. Anyone
using the ConnectWaitFor enumeration will need to change their code.
- Commands are no longer always sent to primaries. If you are expecting this
behavior, ensure that your read preference is set to Primary.
JIRA issues resolved
--------------------
The full list of JIRA issues resolved in this release is available at:
https://jira.mongodb.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+CSHARP+AND+fixVersion+%3D+%221.6%22+AND+status+%3D+Closed+ORDER+BY+priority+DESC&mode=hide
- ConnectWaitFor has been removed and replaced with read preferences. Anyone
using the ConnectWaitFor enumeration will need to change their code.
- The serialized representation for a C# null of type BsonNull has been changed
from { $csharpnull : true } to { _csharpnull : true } to work around limitations
of the server. Existing data will still be correctly deserialized but new data
will be written in the new format. This is very unlikely to affect you because
it is very unlikely you have any properties of type BsonNull in your classes.
New features
------------
- There is a new \[BsonSerializer] attribute that can be used to specify which
serializer to use for a class.
- Instances of ReadOnlyCollection are now serializable/deserializable.
- Queries involving Mod now work with 64-bit integers also.
- Support for TTL collections (see IndexOptions.SetTimeToLive).
- Simple helper method for aggregation framework (see MongoCollection.Aggregate).
- SlaveOK has been deprecated and replaced with the more flexible ReadPreference options.
- Support for SSL connections.
- Improved support for LINQ queries from VB.NET.
- Support for connecting to multiple mongos’ with load balancing

0 comments on commit 07594e7

Please sign in to comment.