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

Læses lige nu

    Annonce

    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.

    Digital transformation | Frederiksberg

    Roundtable: AI i drift – fra eksperimenter til ansvar, værdi og kontrol

    AI-initiativerne breder sig hurtigt, men skaleringen halter. Kun hver fjerde virksomhed har flyttet en større del af sine AI-eksperimenter i produktion. Computerworld samler en udvalgt kreds af CIO’er og digitale beslutningstagere til et...

    Sikkerhed | Online

    Det du glemmer i Azure - men aldrig on-prem: Sådan genfinder du kontrollen

    Undgå dyre fejl i Azure. Få styr på udfasede services, skjulte omkostninger og governance. Lær, hvordan Reserved Instances, Azure Hybrid Benefit og de rette styringsmekanismer giver mere værdi, lavere omkostninger og en mere robust Azure-platform....

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Norriq Danmark A/S har pr. 1. januar 2026 ansat Christoffer Andersen som Sales Manager ERP. Han skal især beskæftige sig med fokus på at skalere ERP-salget og videreudvikle teamet i Valby så vi fortsat understøtter og opbygger stærke kunderelationer. Han kommer fra en stilling som Senior Key Account Manager hos NNIT A/S. Han er uddannet hos Aalborg Universitet som IT Management. Han har tidligere beskæftiget sig med Kommercielt ansvarlig for nogle af NNIT’s største strategiske enterprise-kunder. Nyt job

    Christoffer Andersen

    Norriq Danmark A/S

    Systematic A/S har pr. 1. august 2026 ansat Casper Voldstedlund, 52 år,  som Director, Products. Han skal især beskæftige sig med drive produktudvikling inden for national sikkerhed og kritisk infrastruktur (NSI). Han kommer fra en stilling som Senior Director hos Stibo Systems A/S. Nyt job

    Casper Voldstedlund

    Systematic A/S

    Netip A/S har pr. 1. august 2026 ansat Ronni Randrup som Seniorkonsulent ved netIP's kontor i Aalborg. Han kommer fra en stilling som Operations Consultant hos Complea. Nyt job

    Ronni Randrup

    Netip A/S

    Norriq Danmark A/S har pr. 2. februar 2026 ansat Andreas Dyngberg Pedersen som Solution Architect. Han skal især beskæftige sig med at sætte de overordnede rammer for leverancerne med afsæt i best practice og skalerbarhed. Han kommer fra en stilling som Solution Architect hos Impact commerce. Han er uddannet Hos EUC Syd som Datatekniker og Programmering. Nyt job

    Andreas Dyngberg Pedersen

    Norriq Danmark A/S