Apache Chemistry DotCMIS 0.3
============================

Apache Chemistry DotCMIS is a Content Management Interoperability Services (CMIS)
client library for the .NET framework 3.5 or higher.

See http://chemistry.apache.org/dotnet/dotcmis.html for more information.

See http://chemistry.apache.org/dotnet/getting-started-with-dotcmis.html for code samples
and DotCMISDoc.chm for the API documentation.

This third release is a bug fix release.
If you find a problem, please let us know: https://issues.apache.org/jira/browse/CMIS


Change log 
----------

DotCMIS 0.3:

- DotCMIS only requires the .NET Client Profile.
- Several bug and interoptability fixes.


DotCMIS 0.2:

- Web Services compatibility has been improved. 
- AtomPub content encoding and link cache have been improved.
- Content-Disposition header has been added to the AtomPub setContentStream operation.
- Compression option has been added to the AtomPub binding.
- Timeout settings have been added to both bindings.
- Another GetObject() convenience method has been added to ISession.
- Several bug fixes.


Known stumbling blocks
----------------------

- The Web Services binding only works with HTTPS. 
  The .NET framework does not allow calls with UsernameTokens over plain HTTP.

- Not all CMIS Web Services endpoints are compatible with the .NET framework for 
  a number of reasons.
  
- Content is buffered in main memory when the Web Services binding is used. 
  That can cause problems with huge documents. 
  The maxium document size can be controlled with the SessionParameter.MessageSize 
  parameter. The default is 4 MB. The absolute maximum is 2 GB.

=> Use the AtomPub binding whenever possible! 
   It causes less trouble, is faster, streams and can deal with documents of any size.
  
  
Strong-Name signing
-------------------

The DLL included in this release is signed with a public/private key pair that is also 
included in this package. This allows you to deploy it to the global assembly cache (GAC) 
and to make changes to the DotCMIS source code without recompiling your application.
However, since the private key is publicly available, this strong name cannot be trusted.
If a trust relationship between your application and the DotCMIS DLL is important to you, 
you have to rebuild the DLL from the source code and sign it yourself.
