.Net er rigtigt mange ting, bla. er det Microsofts nye buzz word som skal overbevise forbrugerne om at alle deres produkter er blevet hurtigere, bedre, smartere og umulige at leve uden (lidt ligesom alle x'erne - DirectX, ActiveX, etc.). De fleste MS produkter vil i den næste version hedde .Net til efternavn (Sql Server.Net, Windows.Net, Office.Net etc.) og være .Net enabled hvilket primært vil sige integration med web services og mulighed for scripting via .Net runtime miljøet.
Udover at være et generelt buzz word er .Net også betegnelsen for en platform for udviklere som på mange områder kan sammenlignes med J2EE. .Net platformen omfatter et runtime miljø (CLR - Common Language Runtime) der kan afvikle MSIL (Microsoft Intermediate Language), en specifikation for hvilke krav sprog skal leve op til for at kunne kompilere til MSIL (CLS - Common Language Specification), et temmelig stort klassebibliotek så man ikke skal skrive alting fra bunden, 4 sprog med tilhørende kompilere (VB.Net, C#, Managed C++ og J#) og en udvidelse til IIS der tillader server side scripting i .Net sprogene. Derudover er der et sted mellem 20 og 30 uafhængige producenter der har eller er i gang med at udvikle kompilere til deres sprog der producerer MSIL i stedet for binær kode (Eiffel, Cobol, Prolog, Haskell, etc.).
Når en udvikler skriver et program til .Net platformen vælger han først sit eget personlige favorit sprog (blandt dem der har en MSIL kompiler naturligvis). I dette sprog skriver han så sit program. Hvis han vil anvende funktionalitet fra klassebiblioteket fra MS eller fra andre 3. parts udviklere gør han bare det uafhængigt af hvilket sprog de oprindeligt er skrevet i, da de jo alle producerer MSIL og derfor forstår hinanden. Når han er færdig anvender han sin kompiler til at oversætte til MSIL. Programmet ligger nu gemt i MSIL og ikke i maskinkode som i gamle dage. Når en bruger eksekverer programmet bliver .Net runtime miljøet loadet og MSIL koden bliver JIT (just-in-time) kompilet. JIT kompilet betyder at 1. gang en MSIL kodeblok refereres oversættes den til maskinkode, gemmes i en cache og eksekveres. Bliver den senere refereret igen er den oversat og skal derfor blot findes frem og eksekveres. JIT kompilering har naturligvis den ulempe i forhold til maskinkode at der er et overhead når MSIL koden 1. gang skal kompileres. Der er til gengæld mange fordele, såsom platformsuafhængighed (hvis .Net runtime miljøet nogensinde bliver realeased til andet end Windows), maskin optimering da JIT kompileren "kender" den maskine der skal eksekvere maskinkoden samt nogle andre ting som microsoft kan fortælle meget mere om (
www.microsoft.com/net).
At sammenligne .Net med Java er en temmelig stor omgang, men på et meget overordnet plan kan man groft sagt sige at .Net og J2EE forsøger at løse den samme opgave nemlig at levere en standardiseret platform for applikations udvikling. Hvorvidt det ene er bedre end det andet vil jeg lade være op til andre!