views:

634

answers:

1

There are instructions here to create a C# assembly using the SimMetrics library. The link they provided to this library is at SourceForge. It looks like the most recent version of the SimMetrics library was created in Java. Is it possibly to compile a java DLL and then reference it in C# to be used as an assembly in SQL Server 2008?

+2  A: 

The best you can do is

  1. compile the java as J# (now obsolete and largely unsupported) with minimal code changes.
    • this is very dependent on how much of the libraries are used.
  2. convert the code to c# (idiomatic or otherwise)
    • this can sometimes be fairly easy on highly mathematical code. As an advantage the java code likely assumes 16 bit unicode as well.
  3. use something like IKVM to host the java byte code within the CLR
    • this may be outright impossible with the sql server hosted runtime, certainly I would think the performance would be poor (since you would have to 'thunk' across the hosting barrier on each call.

The SF page strongly implies that there is both a java and a .net release.
Here's the latest .net release and documentation

However based on the read me file in that

This is an updated version of the original .NET implementation and not a conversion of the newest Java Code.

The .Net implementation is largely c# so you could diff the recent changes in the java implementation then attempt to recreate them in the .Net code. Since the conversion to c# seems to be largely a direct copy with only basic consideration given to idiomatic c# (camel casing, properties and parameter names) you stand a good chance of being able to do this.

If you do consider submitting the changes as a patch, this would give you a chance of getting someone else to validate your changes and may jump start the .Net side of the project to be kept more closely in sync in future.

ShuggyCoUk
The last .NET release was Sept 24 2006, the last Java Feb 07 2007.
Kevin Montrose
the src implies it is supplied as platform agnostic. It may be that building from source gets you the latest version in .Net.
ShuggyCoUk
ah no - clearly it's done as a fork, added suggestion on what to do with that
ShuggyCoUk
Awesome, thanks for your help! I'll delve into some Java and see if I can convert the remaining Java code to .Net
Chris Klepeis