Het Amerikaanse softwarebedrijf Stryon heeft iNet ontwikkeld, het complete .Net ontwikkelraamwerk in Java. Daardoor wordt het mogelijk om .Net-applicaties op een Java-omgeving te laten draaien en zijn ontwikkelaars niet meer alleen afhankelijk van het .Net-framework.
Applicaties die zijn gebouwd in .Net moeten op een .Net-server of -client draaien. Dat is geen probleem als de hele wereld gestandaardiseerd zou zijn op .Net, maar dat is niet het geval. Miljoenen computers draaien op Linux, Unix, OS X of andere besturingssystemen. Met iNet, het converteerproduct van Stryon, kunnen ontwikkelaars profiteren van de voordelen van Visual Studio.Net, maar worden ze niet beperkt tot de .Net-wereld. “Voorheen was het alleen mogelijk om een .Net-programma op een ander platform te laten draaien als je het helemaal opnieuw programeerde”, zegt Stryon-ceo Jim Stewart. “Met iNet kunnen ontwikkelaars het programma één keer in .Net schrijven, en dan werkt het op alle Java-omgevingen.”
.Net
Er zijn drie belangrijke .Net-ontwikkeltalen: Visual Basic.Net, C# en Visual C++.Net. Applicaties en webdiensten die worden geschreven in deze talen moeten twee stappen ondergaan naar uitvoerbare code. Allereerst nemen de .Net-raamwerk-‘compilers’ de broncode en genereren een instructieset die geschreven is in een algemene taal (‘common language’) die specifiek is voor het raamwerk. Deze algemene taal wordt de Microsoft Intermediate Language (Msil) genoemd. Msil is niet gebonden aan een processor, dus voordat deze kan worden uitgevoerd, moet de ‘common language runtime’ (clr) haar converteren naar cpu-gebonden code.
De code die wordt beheerd en uitgevoerd door het .Net-raamwerk wordt ‘beheerde code’ genoemd. Dit houdt in dat belangrijke informatie voor de clr in de code gebakken zit. Alle code die is gebaseerd op Msil, wordt uitgevoerd als beheerde code.
Ontwikkelaars kunnen ook ‘onbeheerde code’ schrijven. Deze wordt direct door een besturingssysteem uitgevoerd, buiten de .Net-clr om.
In theorie kunnen .Net-applicaties op meerdere platformen draaien, maar om dit mogelijk te maken moeten de clr- en .Net-raamwerk-classes worden gepoort naar de te gebruiken omgevingen. Dit is een omvangrijke taak, die nu door het product van Stryon wordt geautomatiseerd.
iNet
Met iNet heeft Stryon het complete .Net-ontwikkelraamwerk opnieuw in Java gecreëerd. De in .Net geschreven applicatie wordt naar Java-code geconverteerd voor de ‘runtime’ zodat het in Java wordt uitgevoerd op iedere Java Virtual Machine (jvm).
Waar in de clr de .Net-code wordt omgezet naar Msil, gebruikt iNet IL2Java (intermediate language to Java) om de .Net-code om te zetten naar Java. Omdat iNet’s ‘runtime class libraries’
Gratis Microsoft Microsoft heeft zijn eigen hulpmiddelen om Java-applicaties te converteren naar een .Net-omgeving. De Java Language Conversion Assistant zet Java-taal automatisch om in C#-code. Microsoft biedt het product gratis aan ontwikkelaars aan. Bij Stryon zijn er kosten aan verbonden. |
Wanneer de applicatie volledig is geconverteerd, draait zij als iedere andere Java-applicatie. Ze wordt gecompileerd door de jvm naar Java byte code en vervolgens uitgevoerd.
Uitzonderingen
In een aantal situaties kan iNet de .Net-code niet converteren naar Java. Dit is bijvoorbeeld het geval bij het gebruik van onbeheerde code. Deze code wordt per definitie uitgevoerd buiten het .Net-raamwerk, en omdat iNet een kopie is van het .Net-raamwerk is het niet in staat om deze code te migreren. Specifieke Microsoft-zaken die niet beschikbaar zijn in Java, zoals Office, COM+-diensten, COM-objecten en dll’s (dynamic link libraries), kan iNet niet converteren. Dit geldt ook voor softwarecomponenten die worden geleverd door derden. iNet converteert alleen componenten die door Microsoft geleverd worden.< BR>
Meer informatie:
Java naar .Net
http://msdn.microsoft.com/vstudio/downloads/tools/jlca/
.Net naar Java
http://www.stryon.com/products.asp?s=4