.NET/C# implementation of the remote Java Daisy API
Daisy is a comprehensive content management application framework, consisting of basically :
- a standalone repository server accessible through either a local Java API, an HTTP/XML API, or a high-level remote Java API (based also on an HTTP/XML API),
- and an extensive browsing and editing DaisyWiki application running inside Apache Cocoon.
The goal of my proposal is to implement the remote Java API in a .NET/C# library (which might be called Daisy.Net), in order to make possible the development of .NET/Mono applications communicating with the Daisy repository server. We could then consider developing a Windows GUI to publish/edit documents, an ASP.NET-based wiki (like the actual DaisyWiki written in Java), etc. We could even imagine developing plugins for Microsoft Office applications in order to edit the documents stored in the Daisy repository directly in Word (thanks to the OpenXML format), and take advantage of the power of that editor.
So, I plan to convert the remote Java API in a C# library with the help of a tool named Microsoft Java Language Conversion Assistant. It converts a set of java files into a set of C# files. But that tool doesn’t work perfectly, and doesn’t manage to convert every line of code in Java into C# code. A report is automatically generated, which list all the problems that occured during the conversion. Moreover, there is a commentary in the newly created C# files for each line that, for one reason or another, hasn’t been converted. I could then begin to work by trying to resolve each one of the conversion errors. I tried to convert all the files in the repository folder with that tool, and there is for now 2792 errors (it doesn’t include the services folder)...
The parts of the actual project I plan to convert are mainly the folders api, client, common in the repository folder, which implement the core of the remote Java API. At the end, the architecture of the Daisy.Net library should be exactly the same as the existing remote Java API. So it should support the publishing as well as the modifying of the documents. I would also convert some extra services, like the publisher for example, the workflow, etc. If I have enough time, I could also test the libraries within the Mono projects (a few adjustments may have to be done).
I plan to do a lot of tests, I could for example convert the Junit tests into NUnit projects.
Concerning the .NET libraries to be used insind Daisy.Net, I don't think it will be quite useful, since the .NET 2 framework comes natively with an incredibly rich set of libraries (for example, XML/XSLT manipulation, Unicode encoding, and much more, are natively supported in the .NET framework).
That is only a first shot of my proposal, so it may change a lot along your comments, remarks, feedback...



There are no comments.