Documentum and C#

One of the advantages of Documentum is that its true multi-platform software.  Historically the problem of scripting in Documentum was addressed with a product they did themselves called Docbasic. A nice idea based on VB3 – and still an integral part of the product as Docbasic is implemented on all platforms.

However I was thinking that the only alternative to multi-platform scripting is java-bloat. You know the sort of thing – you need to devote large parts of your life to get a successful print statement.

Well I had a look at MONO for this. If you have a requirement for writing back-end scripts for Documentum and you don’t want them in Docbasic and you dont want in them in java-bloat then MONO could be thing as C# is much easier and nicer to work with.

I put a small class together –  http://www.dhrobertson.com/projects/csharp/dmclcom.zip

Its quite straight forward – this is a VS 2005 project. But if you build it as an exe, it will run on Linux and get this – Solaris 8 under Mono.

What you do need to do on the mono side is provide DLL/lib mapping. Modify your web.config file on Solaris to map cygwin1.dll to libc.so.1 and dmcl40.dll to libdmcl40.so.1 – all very simple really.

So its possible to write quite nice scripts or applications in the lovely C# – with WinForms and be able to run them cross platform. You don’t need Java-bloat and you can program in something nice and easy and rich – C#. Also note that you can use MS Visual Studio to develop the apps and then run them on Solaris – so you don’t need a Java-bloated IDE – most of which are bloatware tosh. Given this, you could also write VB.NET if you wanted and do the same thing.

Nice I think.

I had to figure out about memory management between managed and un-managed code here, but that all seems pretty straight forward.

Yes I know its not DFC and you could just use a COM wrapper – feature rich but heavy and bloated (well it is all java right!) but for simple, high speed automation for Documentum tasks, this is a good alternative to Docbasic – and you can have VB style windows and buttons to drive it – all of which works in Solaris or Linux.

In commercial terms, I’m thinking that most sensible people would want to write their client (web inlcuded!) in C#.  If they had a sensible OS running Oracle and Documentum – like Solaris or Linux, then they might have to write that in Java – which would then add to the complexity and cost of a large project.  Use this approach and you can write it all in C# and have .NET as the basis.  .NET is much better for writing web/client applications.