Permalink
Browse files

Change logs and release notes for 1.6.

  • Loading branch information...
1 parent a200c61 commit 07594e7130b957b77a0d71b5837c9811db8c9e82 rstam committed Aug 29, 2012
@@ -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.