
5 changed files with 240 additions and 37 deletions
-
2Driver/Core/Wrappers/CommandWrapper.cs
-
71DriverSetup/DriverSetup.vdproj
-
2GlobalAssemblyInfo.cs
-
198Release Notes v0.9.txt
-
4packages/makepackages.bat
@ -0,0 +1,198 @@ |
|||||
|
C# Driver Version 0.9 Release Notes |
||||
|
|
||||
|
Summary: |
||||
|
Simplified and improved serialization |
||||
|
(see IBsonSerializable and IBsonSerializer) |
||||
|
Serialization support for more .NET classes (including Dictionary) |
||||
|
Many bug fixes and usability enhancements |
||||
|
Some classes now immutable (MongoServer, MongoDatabase, etc...) |
||||
|
Other classes become immutable after Freeze is called |
||||
|
Redesigned low level I/O classes (to simplify serialization) |
||||
|
Improved compile time type safety |
||||
|
|
||||
|
BSON Library Changes: |
||||
|
|
||||
|
ArraySerializer |
||||
|
is now a generic serializer |
||||
|
serializers for 1-3 dimensional arrays |
||||
|
BsonBuffer |
||||
|
Read/WriteObjectId changed to match new ObjectId internal representation |
||||
|
added Skip and SkipCString methods |
||||
|
BsonClassMap |
||||
|
added Freeze method (immutable once frozen) |
||||
|
added SetIdMember method |
||||
|
added UnmapField, UnmapMember and UnmapProperty methods |
||||
|
BsonClassMapSerializer |
||||
|
Support new GetDocumentId/SetDocumentId methods |
||||
|
BsonDefaultSerializer |
||||
|
GetSerializer method |
||||
|
return serializers for 1-3 dimensional arrays |
||||
|
return serializer for enums |
||||
|
if invalid serialization options were provided use default options |
||||
|
BsonDocument |
||||
|
renamed Count to ElementCount |
||||
|
BsonDocumentWrapper |
||||
|
wrap nominalType also |
||||
|
added CreateMultiple method |
||||
|
BsonElement |
||||
|
moved serialization logic to BsonValue |
||||
|
BsonMemberMap |
||||
|
added SetRepresentation method |
||||
|
better error messages for missing get/set accessors |
||||
|
BsonObjectId |
||||
|
changed to match new ObjectId internal representation |
||||
|
BsonReader (and BsonBinaryReader) |
||||
|
added CurrentBsonType property |
||||
|
removed HasElement and PeekBsonType (were causing duplicate reads) |
||||
|
revised bookmark API (GetBookmark/ReturnToBookmark) |
||||
|
element name and value can now be read separately |
||||
|
(needed to unify DeserializeDocument/DeserializeElement) |
||||
|
ReadObjectId changed to match new ObjectId internal representation |
||||
|
added SkipName and SkipValue methods |
||||
|
added ReadBsonType and ReadName methods |
||||
|
added new array methods (ReadStartArray, ReadEndArray) |
||||
|
separated Bookmark class from Context class |
||||
|
BsonRegularExpression |
||||
|
detects options in pattern (e.g. "/Hello/i") |
||||
|
BsonSerializer |
||||
|
Same changes as IBsonSerializer |
||||
|
Added RegisterIdConvention (moved from BsonDefaultSerializer) |
||||
|
BsonValue |
||||
|
added serialization logic (moved from BsonElement) |
||||
|
BsonWriter (and BsonBinaryWriter, BsonJsonWriter) |
||||
|
element name and value can now be written separately |
||||
|
(needed to unify SerializeDocument/SerializeElement) |
||||
|
added WriteName method |
||||
|
WriteObjectId changed to match new ObjectId internal representation |
||||
|
added new array methods (WriteStartArray, WriteEndArray) |
||||
|
Document ID detection and handling |
||||
|
replaced DocumentHasIdMember, DocumentHasIdValue and GenerateDocumentId |
||||
|
with GetDocumentId and SetDocumentId |
||||
|
IBsonIdGeneratorConvention |
||||
|
shortened to IIdGeneratorConvention |
||||
|
IBsonSerializable/IBsonSerializer |
||||
|
Document/Element distinction removed from serialization |
||||
|
DeserializeDocument/DeserializeElement now just Deserialize |
||||
|
SerializeDocument/SerializeElement now just Serialize |
||||
|
IDiscriminatorConvention |
||||
|
GetActualDocumentType/GetActualElementType combined into single GetActualType |
||||
|
Improved Enum serialization |
||||
|
added 64 bit representation |
||||
|
forgiving deserialization automatically converts between numeric types |
||||
|
doubles supported during deserialization (JavaScript related) |
||||
|
New IdGenerators |
||||
|
NullIdChecker |
||||
|
ZeroIdChecker |
||||
|
Nullable type serialization |
||||
|
now uses a generic serializer |
||||
|
ObjectId |
||||
|
new internal representation: |
||||
|
int: timestamp |
||||
|
int: machine (only low order 3 bytes used) |
||||
|
short: pid |
||||
|
int: increment (only low order 3 bytes used) |
||||
|
new representation is much more efficient (no shifting and masking) |
||||
|
new representation serializes correctly to JavaScript clients |
||||
|
only two bytes larger (and additional bytes are not on heap but embedded in object) |
||||
|
PublicMemberFinderConvention |
||||
|
ignore indexers |
||||
|
ignore overridden properties (base class already serializes them) |
||||
|
Serialization support for additional .NET classes |
||||
|
legacy Dictionary classes |
||||
|
generic Dictionary classess |
||||
|
BitArray |
||||
|
ByteArray |
||||
|
Uri |
||||
|
Version |
||||
|
|
||||
|
Driver Changes: |
||||
|
|
||||
|
Builders |
||||
|
Most have a Null static property |
||||
|
All have a new Wrap method (see marker interfaces) |
||||
|
CommandResult (and subclasses) |
||||
|
Subclass of BsonDocument |
||||
|
Holds results of RunCommand |
||||
|
Subclasses used to pick out details of results in a type safe way |
||||
|
MongoCollection |
||||
|
Improved compile time type safety |
||||
|
Replaced TQuery with IMongoQuery |
||||
|
Replaced TIndexKeys/Options with IMongoIndexKeys/Options |
||||
|
Replaced TSortBy with IMongoSortBy |
||||
|
Replaced TUpdate with IMongoUpdate |
||||
|
Replaced TFields with IMongoFields |
||||
|
Replaced TGroupBy with IMongoGroupBy |
||||
|
Update methods now return a SafeModeResult |
||||
|
Added FindOneById and FindOneByIdAs |
||||
|
GetStats now returns CollectionStatsResult |
||||
|
Implemented GetTotalDataSize and GetTotalStorageSize |
||||
|
Fixed IdGenerator related bugs |
||||
|
MongoCommandException |
||||
|
CommandResult is now added to Data property |
||||
|
MongoConnection |
||||
|
Use IPEndPoint instead of MongoServerAddress |
||||
|
new RunCommand internal helper method |
||||
|
MongoConnectionPool |
||||
|
use IPEndPoint instead of MongoServerAddress |
||||
|
moved RequestStart/Done to MongoServer |
||||
|
MongoConnectionSettings removed |
||||
|
a similar class is MongoUrlBuilder |
||||
|
MongoCursor |
||||
|
Type is now MongoCursor<TDocument> not MongoCursor<TQuery, TDocument> |
||||
|
SetFields parameter is now IMongoFields |
||||
|
SetSortOrder parameter is now IMongoSortBy |
||||
|
Added support to distribute reads to replica set secondaries when slaveok=true |
||||
|
MongoDatabase |
||||
|
Now immutable (e.g. can't change SafeMode once created) |
||||
|
Route commands to primary even when slaveok=true |
||||
|
RunCommand parameter now IMongoCommand |
||||
|
RunCommand now returns CommandResult |
||||
|
RunCommandAs used to return subclass of CommandResult |
||||
|
GetStats now returns DatabaseStatsResult |
||||
|
MongoDelete/Insert/Query/UpdateMessage |
||||
|
Replaced TQuery with IMongoQuery |
||||
|
Replaced TFields with IMongoFields |
||||
|
Replaced TUpdate with IMongoUpdate |
||||
|
MongoGridFS |
||||
|
Immutable (e.g. can't change SafeMode once created) |
||||
|
Replace TQuery with IMongoQuery |
||||
|
New methods: AppendText, CopyTo, Create, CreateText, ExistsById, FindOneById, FindAll, |
||||
|
MoveTo, Open, OpenRead, OpenText, OpenWrite, SetAliases, SetContentType, SetMetadata |
||||
|
(note: not all implemented yet) |
||||
|
MongoGridFSCreateOptions |
||||
|
Used when creating new MongoGridFSStreams |
||||
|
MongoGridFSFileInfo |
||||
|
Added Aliases, ContentType and Metadata |
||||
|
Implemented !=, == |
||||
|
Implemented GetHashcode, Equals (can be used as Dictionary key) |
||||
|
MongoGridFSSettings |
||||
|
Added Freeze method |
||||
|
MongoGridFSStream |
||||
|
Initial implementation of Stream interface to GridFS files |
||||
|
MongoServer |
||||
|
Now immutable (e.g. can't change SafeMode once created) |
||||
|
MongoUrl is used as identity of server instance |
||||
|
Support multiple connection pools (used when distributing reads to secondaries) |
||||
|
Added support for connection modes: direct and replica set |
||||
|
Added RequestStart/RequestDone (moved from MongoConnectionPool) |
||||
|
RunAdminCommand parameter now IMongoCommnad |
||||
|
RunAdminCommand now returns CommandResult |
||||
|
RunAdminCommandAs used to return subclass of CommandResult |
||||
|
MongoUrl |
||||
|
Support new connection string options |
||||
|
Immutable |
||||
|
Implements GetHashcode and Equals (can be used as Dictionary key) |
||||
|
MongoUrlBuilder |
||||
|
Used to build MongoUrls |
||||
|
Mutable |
||||
|
New connection mode classes |
||||
|
DirectConnector and ReplicaConnector |
||||
|
classes encapsulate connection mode logic |
||||
|
New marker interfaces |
||||
|
These are used to give parameters strong types while still allowing |
||||
|
many actual types to be used as arguments |
||||
|
Each marker interface has a new subclass of BsonDocument |
||||
|
Each marker interface has a new wrapper class |
||||
|
Replaces unconstrained generic type parameters |
||||
|
QueryFlags |
||||
|
Enum values were all wrong (shifted one bit to the right) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue