Changes since version 1.5.1 --------------------------- - The proxy returned by the object adapter operations addFacet and addFacetWithUUID did not contain the facet. This required the application to make an extra call to ice_newFacet in order to obtain the correct proxy. This has been fixed. - Added the object adapter property .PublishedEndpoints, which specifies endpoints to advertise in proxies created by the adapter. - Fixed a bug with AMD exception handling, where it was possible that certain exceptions propagate out of ice_response() or ice_exception(), and therefore such exceptions were not handled properly. - Exceptions raised while marshaling data for batch requests resulted in a connection deadlock. This has been fixed. - Fixed a bug in slice2cs: the generated code was incorrect for dictionaries and structures containing a sequence, if that sequence was mapped to an array. - Fixed tracing of operation mode. - The escape prefix for Slice identifiers that are used by .NET framework classes has been changed from "_cs_" to "_Ice_". For example, Slice "Add" now maps to C# "_Ice_Add" instead of "_cs_Add". In addition, the prefix is now case-insensitive, so Slice "add" now maps to C# "_Ice_add" whereas, previously, it mapped to C# "add". (These changes were necessary to preserve binary compatibility of slice2cs and slice2vb generated code.) - The documentation has always stated that same-named constructs cannot be directly nested inside each other. (For example, a module `M' cannot contain a constant named `M'. The slice2cs compiler did not enforce this correctly up to now for modules containing constructs with the same name as the enclosing module. This has been fixed and now results in a diagnostic. - The slice2cs compiler now disallows Slice definitions at global scope: only modules can be defined at global scope. Everything else (constants, classes, interfaces, etc.) must be defined inside a module. - Fixed a bug in the slice2cs code generator: ["cs:collection"] sequence S1; ["cs:collection"] sequence S2; Sequences of Object or Object* caused incorrect code to be generated if they were marked as "cs:collection". - Fixed a bug in the slice2cs code generator: for nested sequences, incorrect code was generated if both the inner and the outer sequence were mapped as arrays. - Fixed a number of bugs in slice2cs that cause incorrect code to be generated if C# keywords were used as Slice identifiers. - Fixed the and slice2cs compiler for operations with multiple exceptions in an exception specification: if an exception was a base of one or more other exceptions in the same exception specification, the code generator sometimes emitted the catch blocks in the marshaling and dispatch code in the wrong order. (This applied only to interfaces with an ["amd"] metadata directive.) - Several demos used Slice classes where interfaces were more appropriate. This has been fixed. - Ice.Util.initializeWithProperties() now correctly parses the command line arguments. - New properties Ice.StdErr and Ice.StdOut to redirect the standard error and output streams of a process. - Added test and demo for using Ice for C# with Glacier. - Changed the slice2cs code generator to avoid generating empty namespaces. Changes since version 1.5.0 --------------------------- - Compression is now supported for non-Windows platforms as well as on Windows. - Fixed a bug in the slice2cs code generator: classes with multiple sequence members caused incorrect code to be generated. - Fixed a bug that sometimes prevented correct connection establishment under Windows. Changes since Alpha 2 --------------------- - Added support for generating checksums of Slice definitions, enabling peers to verify that they share the same client-server contract. See the manual for more information. - Added support for Mono. - The DLL that contains the Ice for C# run time has been renamed from Icicle.dll to icecs.dll. - Added support for protocol compression. - Added extensive documentation for the language mapping to "Distributed Programming with Ice" (http://www.zeroc.com/Ice-Manual.pdf). - Added support for AMI and AMD. - Removed "cs:array" directive for sequences. Sequences are now mapped to arrays by default. If you want a sequence to map to a container derived from System.Collections.CollectionBase, you need to use the "cs:collection" metadata directive. - Added "cs:class" metadata directive for Slice structures. Without this directive, Slice structures map to C# structures. With this directive, Slice structures map to C# classes. - Added a key pair to the distribution so the assembly has a strong name and can be added to the global assembly cache. If you want to use your own key pair, you can replace the contents of src/Ice/IcecsKey.snk with your own key pair. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcreatingkeypairforuseincreatingstrongly-namedassembly.asp for more detail. - The generated code is more efficient and smaller than it was previously. Changes since Alpha 1 --------------------- - Changed the generate.cs code to look for slice2cs in ${SolutionDir}/bin. - Added "cs:array" metadata directive for sequences. Sequences with this directive are mapped to arrays instead of being derived from Collections.CollectionBase. - Improved marshaling speed.