CLR Projects stands for projects running under the Common Language Runtime. The most well-known implementation of this runtime is Microsoft .NET. However, ~our projects expect to be compatible with any CLR implementing the .NET framework~, and in particular we support theinitiative. For this reason, all our projects are initialy developed under Linux using the and framework and run-time. Windows testing is done later.
SubversionSharp is a C# wrapper that fully covers the client API of Subversion SCM. Easy access to the Subversion API is provided without any compromise on fonctionality. This library is the starting point to easily integrate Subversion repositories in any .NET managed software. These C# bindings for Subversion has been written for portability and performances. This library is now available for both Mono/Linux and .NET/Windows environments.
AprSharp is a C# wrapper library around the Apache Runtime Library. It provides a starting point to easily interface any .NET managed languages with libraries using !AprPool for their memory management. AprSharp has been written to support functionality required by SubversionSharp.
The main purpose of CallConvHack is to provide a working SubversionSharp to Windows users. Subversion callbacks should use Cdecl calling convention. Under Windows, C# delegates default to Stdcall calling convention. Moreover, there is no way using plain C# to change this behaviour. This hack (based on several articles, blogs and posts available elsewhere) patch IL code directly to fix the calling convention of attribute-marked delegates. The originality of our implementation is both the external DLL used to implement the !CallConvCdeclAttribute and the C# program that works as a filter to translate the standard output of ildasm.