.Net versus J2EE: Hvem vinder?

Hvis man sammenligner Microsofts .Net og Suns J2EE-framework, finder man mange ligheder. Spørgsmålet er så, hvordan udvikleren skal vælge den strategi, der skal bære virksomheden ind i informationsalderen.

I kernen af .Net

I en tidligere artikel har vi gennemgået koncepterne bag Java 2 Enterprise Edition, som er Suns bud på et framework til netværksbaseret informationshåndtering. I Suns verden er det naturligt nok Java, som er kernen i arkitekturen, og som vi har påpeget giver det en række fordele primært uafhængighed af platforme og dermed uafhængighed af leverandører. J2EE kan implementeres på en lang række af applikationsservere, og dermed er der altså et større spillerum, når der skal vælges konkrete løsninger.

Bag facaden af .Net
I sidste artikel gennemgik gik vi de centrale komponenter i J2EE. Det er ikke helt så nemt at give en konkret gennemgang af .Net, da teknologien stadig er i udvikling fra Microsoft. Men hovedpunkterne i arkitekturen bag .Net skulle se sådan ud:


  • Common Language Runtime (CLR)
  • C#
  • Komponenter
  • ASP.NET
  • Win Forms og Web Forms
  • ADO.NET

I kernen af .Net finder vi Common Language Runtime (CLR), der er en virtuel maskine. Det er en maskine, en såkaldt runtime, der afvikler programmer i Microsofts Intermediate Language (IL). Kompilere oversætter så programmer skrevet i Visual Basic, C++, C# (C-sharp) eller et andet sprog til dette IL-sprog. IL-koden afvikles af en Just-in-Time kompiler (JIT) i computeren.

Denne konstruktion kendes fra Javas virtuelle maskine, som afvikler Java-programmer i bytecode. Men det er en opfindelse, som er meget ældre end Java.

En anden vigtig pointe i .Net-arkitekturen er, at den i udstrakt grad bygger på komponenter, som er tilgængelige fra CLR.

ASP.NET er en ny version af Active Server Pages, som er Microsofts scripting-teknologi for webservere, og nyheden er, at scripts kan kompileres til CLR, således at ASP bliver sprog-uafhængigt.

Win Forms og Web Forms er nye brugerfladekomponenter i Visual Studio, og ADO.NET er ADO-datatilgangskomponenter baseret på SOAP og XML.

Funktioner i .Net og J2EE

I en artikel på O'Reilly.com sammenligner forfatteren Jim Farley hovedpunkterne i J2EE og .Net således:


Sprog
C# og Java ligner hinanden på en lang række punkter, og de ligger også begge i forlængelse af C og C++. De bygger begge på bytecode og Just-In-Time-compiling. Her har Java en fordel, da det i dag er implementeret over en stor række af platforme. Indtil for ganske nylig regnede alle med, at der ville gå lang tid før, C# ville blive implementeret på andet end Windows, men Linux-firmaet Ximian har stillet sig i spidsen for et initiativ, som vil implementere C# på Linux.

Komponenter
De grundlæggende komponenter i .Net ligner Javas core API. Komponenterne i .Net bygger på distribueret datatilgang ved hjælp af XML og SOAP, som er åbne sproguafhængige standarder, hvor Java benytter sine egne API'er og følgeteknologier. I det nyeste udkast til J2EE 1.3-specifikationen kræves det dog, at alle J2EE-produkter skal indeholde Java XML SAX og DOM-parsere.

Scripting
ASP.NET og Java Server Pages minder meget om hinanden. Begge kompileres til bytecode, i modsætning til ASP (uden .Net) som fortolkes hver gang scriptet kaldes. Hvor JSP benytter Java som sprog, er ASP.NET sproguafhængigt for så vidt, at det valgte sprog kan kompileres til CRL.

Afvikling
Common Language Runtime (CLR) og Java Virtual Machine er motorerne i de respektive arkitekturer. Her er Java et hestehoved foran, da JVM eksisterer til et utal af platforme. Som tidligere nævnt har kræfter i Open source-miljøet gået ind i udviklingen af en CRL til Linux.

GUI
Win Forms og Web Forms modsvarer Javas GUI-miljø Swing. Indtil videre understøttes Microsofts teknologi kun af Visual Studio, hvor Swing underbygges af en lang række Java-udviklingsværktøjer.

Dataadgang
ADO.NET modsvarer Javas JDBC, JMS, JAXP og XML4J. ADO.NET benytter XML som format og SOAP som protokol til udveksling af data. I almindelighed benytter .Net SOAP til kommunikation imellem applikationer, mens Java-teknologierne overlader protokollaget til programmøren, som så kan benytte HTTP, RMI, JRMP eller IIOP.

Jim Farley opsummerer forskelle og ligheder mellem de to verdener således: På funktionalitetssiden er de to arkitekturer meget ens, som vi har set. Med hensyn til portabilitet og platformsuafhængighed så kan .Net teoretisk flyttes til alle platforme, men om det også sker, er en anden snak. Tillige er enkelte kernepunkter i .Net som for eksempel den bagvedliggende logik i ASP.NET ikke offentlig tilgængelig information.

Programmørens valg

Programmørens valg
Der er ikke nogen entydig vinder blandt de to arkitekturer, dertil er problemstillingerne simpelthen for komplekse. Et valg af arkitektur må basere sig på de forudsætninger og behov, som virksomheden har. Her er det ikke bare ens egne kompetencer, man skal tage i betragtning, man bør også skele til arkitekturen hos de leverandører og kunder, som man har tilknytning til.

Argumenterne for J2EE som valg af arkitektur har vi allerede set på i den forrige artikel: Java er i udstrakt grad platformsuafhængig, og således kan J2EE-applikationerne flyttes fra en platform til en anden. Det er klart, at det giver indlysende fordele med hensyn til skalerbarhed og uafhængighed af leverandører.

Hvis man arbejder i et Microsoft-miljø, er .Net formodentlig det rigtige valg. Her får man fordelene af Microsofts integrerede server-miljø samt udviklingsværktøjer, man allerede kender.

Men som nævnt vil løfterne om platformsuafhængighed hvile på, om Microsoft vil implementere miljøet på andre platforme end Windows. I en markedssammenhæng virker det ikke som om, at der skulle være nogle indlysende årsager eller tradition for softwarefirmaet til at gøre dette.

Hvis de tidligere nævnte open source-initiativer får held til at implementere .Net på Linux og Unix, ser situationen ganske anderledes ud, og det giver - pudsigt nok fra den kant - Microsoft argumenter bag teknologien. Fra open source-miljøet har der ofte lydt kritik over Suns opretholden af Java som proprietær teknologi, og i modsætning hertil vil Microsoft lægge C# og CLR ud i internationale standardiseringsorganisationer, formodentlig ECMA.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
TIETOEVRY DENMARK A/S
Udvikler, sælger og implementerer software til ESDH, CRM og portaler. Fokus på detailhandel, bygge- og anlæg, energi og finans.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Computerworld Cloud & AI Festival 2025

Med den eksplosive udvikling indenfor cloud & AI er behovet for at følge med og vidensdeling større end nogensinde før. Glæd dig til to dage, hvor du kan netværke med over 2.400 it-professionelle, møde mere end 50 it-leverandører og høre indlæg fra +90 talere. Vi sætter fokus på emner som AI; infrastruktur, compliance, sikkerhed og løsninger for både private og offentlige organisationer.

17. september 2025 | Læs mere


IT og OT i harmoni: Sikring uden at gå på kompromis med effektiviteten

IT og OT smelter sammen – men med risiko for dyre fejl. Få metoder til sikker integration med ERP, kundesystemer og produktion. Tilmeld dig og få styr på forskellene og faldgruberne.

24. september 2025 | Læs mere


NIS2: Vi gør status efter tre måneder og lærer af erfaringerne

Vær med, når vi deler oplevelser med implementering af NIS2 og drøfter, hvordan du undgår at gentage erfaringerne fra GDPR – og særligt undgår kostbar overimplementering.

30. september 2025 | Læs mere