.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.

Computerworld Events

Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

It-løsninger | København Ø

Automatisering med Copilot & Agentic AI

Høst viden og erfaringer fra andre om, hvordan Copilot og Agentic AI i praksis kan skabe værdi og fleksibilitet i din organisation.

Sikkerhed | Online

Erfaringer fra frontlinjen: Sådan ændrer trusselsbilledet sig

Kort og fokuseret digitalt event: Erfaren frontkæmper fra den digitale sikkerhedsverden giver dig overblik og konkrete anbefalinger til det aktuelle trusselsbillede.

Andre events | Valby

CIO Challenges: Teknologi, transformation og ledelse der flytter forretningen

Hvordan moderniseres en it-platform uden legacy? Hvordan skaber man nye AI‑ og cloud‑drevne forretningsmodeller – uden at miste medarbejdere eller brugere undervejs? På CIO Challenges 2025 får du hands‑on erfaringer fra fire danske CIO’er, der...

Se alle vores events inden for it

Navnenyt fra it-Danmark

Sebastian Rübner-Petersen, 32 år, Juniorkonsulent hos Gammelbys, er pr. 1. september 2025 forfremmet til Kommunikationskonsulent. Han skal fremover især beskæftige sig med Projektledelse, kommunikationsstrategier og implementering af AI. Forfremmelse
Netip A/S har pr. 15. september 2025 ansat Jimmi Overgaard som Key Account Manager ved netIP's kontor i Viborg. Han kommer fra en stilling som Sales Executive hos Globalconnect A/S. Nyt job

Jimmi Overgaard

Netip A/S

Netip A/S har pr. 19. august 2025 ansat Marck Stadel Klaris som Datateknikerelev ved netIP's kontor i Herning. Nyt job