An Australian tech startup has filled a missing piece of the open source Mono .Net application environment by integrating it with Microsoft's Active Directory server.
When Sydney-based provider of enterprise social networking software HubOne looked at running its software on non-Windows platforms -- particularly for Mac-wielding executives -- it considered using the open source Mono cross-platform environment but hit a stumbling block with Active Directory.
HubOne managing director Nick Beaugeard said while most applications make very simple use of Active Directory or LDAP, its flagship product, Enterprise Profile Management, leverages a complex schema in Lightweight Directory Services (LDS).
“Whilst there was some light support for talking to LDAP directories within Mono, it was nowhere near comprehensive enough for us to run our API or application,” Beaugeard said.
Enterprise Profile Management is a social networking application that leverages a company's existing employee information rather than a cloud service.
With limited support for LDAP in some Mono namespaces, HubOne made use of the System.DirectoryServices and System.DirectoryServices.Protocols namespaces in .NET which are not available (or complete) in Mono.
According to Beaugeard the main reason for this absence is the .Net classes are like a wrapper for the Windows component -- a “complex and pretty obscure DLL” which provides detailed operations and access to AD.
Development is still in progress, but HubOne now has API layer support for Mono in its product and is working on performance tuning, optimisation and bug fixing.
All new code will be open source and submitted to the core Mono team for inclusion in the mainline source tree. The next step for Enterprise Profile Management will be the cross-platform UI.
“Although our product is closed source, we intend to make the Mono additions, and our multi-platform client open source under the same GPL status as Mono itself,” Beaugeard said. “We hope our work will be adopted into mainstream Mono, but this is a decision for the project leaders and Novell.”
On the role of Mono itself and Novell having to follow Microsoft's .Net development, Beaugeard said the project is “a fantastic start”.
“When .NET first shipped, it was jokingly referred to as the platform you could code in any language on a single platform (as opposed to Java which is one language on many platforms),” he said.
“Having the Mono project enables me to use my C# developers to easily write a cross-platform application, with all the speed benefits of .Net itself. We’d obviously love to see object model parity between Microsoft .Net and Mono as that will allow us to better leverage our developers.”
Moreover, Beaugeard believes developments like Mono integration into Visual Studio are “awesome” and the benefits for HubOne are “enormous”.
“Customers will then have the freedom to choose a platform based on operational, support and service management requirements rather than be forced into a platform choice by applications, as is the case now,” he said.
“Nevertheless it’s still a poor cousin and I’d be concerned that existing .Net developers get quickly turned off by the lack of some really basic components of .Net like IntelliSense and, of course, DirectoryServices.”
Beaugeard said the size of the Mono environment is a problem when distributing an application online, and hopes as it becomes more complete it will be shipped as a native part of operating systems like Mac OS X.
“Mono is great for simple UI or a Web site talking to a database, but more complex enterprise integration is difficult. So, in order: feature parity, ubiquity, size and performance would be my key asks.”
“Mono offers a great opportunity for the hundreds of thousands of .Net developers out there and I’d encourage everyone to take another look; it’s constantly changing and I see a time when we can all write .Net cross platform apps as simply as writing Windows ones.”
HubOne will run a beta program in early 2010 for its Mono edition of Enterprise Profile Management.