.NET
Från Unix.se, den fria unixresursen.
.NET är en plattform utvecklad av Microsoft för utveckling av program i en virtuell maskin-miljö jämförbar med Java.
Innehåll |
.NET
.NET (uttalas på engelska dot net) är namnet på Microsofts Common Language Infrastructure-produkt, även kallad ".NET Framework", och är den plattform som är tänkt (och med väldigt stor sannolikhet kommer) att ersätta COM/COM+-teknologin i Windows. Men det används också i samma betydelse som CLI.
Värt att noteras är att när man pratar om ".NET" i sammanhanget med alternativa .NET-implementationer/-projekt, t.ex. DotGNU:Portable.NET eller Mono, så åsyftas Microsofts .NET produkt, och inte CLI.
MS.NET är en vanligare, och rekommenderad förkortning, när man menar Microsofts .NET-produkt för att slippa missförstånd.
Plattformsoberoende
Skillnaderna mellan .NET och COM stora. Främst är att .NET just är en VM-miljö och är därför platformsoberoende; program kan alltså köras på såväl Windows, Mac OS X, FreeBSD, Linux, BeOS eller en PocketPC om så önskas - förutsatt att du har något program eller systemmodul som kan till fullo kan hantera .NET-programmet och tillgodose programmet med alla de komponenter som förfrågas.
Språkoberoende
Detta är en halvsanning, för själva .NET (CLI) kan bara hantera IL-kod, och det behövs fortfarande en kompilator som kan kompilera ett programspråk till IL-kod. Men just eftersom IL ligger mellan programspråket och exekverbara CPU-instruktioner, så ger .NET en klar fördel för utvecklare eftersom de inte behöver gå långt för att kunna skriva program för .NET i sitt favoritspråk.
Det finns ett undantag med att ett programspråk kompileras till IL-kod, Visual C++. Visual C++ för .NET-, eller "ManagedC++"-versionerna blandar nämligen IL-kod och rena CPU-instruktioner i det kompilerade programmet, vilket resulterar i att dessa program fortfarande bara kan köras på en plattform. .NET 2.0, eller "whidbey", kommer dock att ha vidareutvecklat och fixat detta.
Standardisering
Trots att Microsoft utvecklar och så att säga "äger" .NET/CLI-teknologin, sponsrade Microsoft, tillsammans med Hewlettward-Packard och Intel, formandet av två grupper hos internationella standardiseringsorganisationen ECMA (http://www.ecma-international.org/) i Augusti 2002 med uppgiften att standardisera C# och CLI-teknoligierna T2 och T3.
Detta har använts som ett argument av .NET-anhängare som då jämför med Suns Java, som lämnats in ett antal gånger för standardisering, men som dragits tillbaka av Sun för att de skall fortsätta ha kontroll. Det kan dock diskuteras över hur fritt från Microsofts kontroll .NET är, då de standardiserade delarna i .NET är bara en bråkdel av allt som finns med i MS.NET.
- C# - ECMA 334 (http://www.ecma-international.org/publications/standards/Ecma-334.htm)
- CLI - ECMA 335 (http://www.ecma-international.org/publications/standards/Ecma-335.htm)
Läs mer på MSDN (http://msdn.microsoft.com/net/ecma/)
Alternativa .NET-implementationer
Precis som med de flesta Microsoft-produkter görs det fria projekt för att kopiera eller att ersätta Microsofts produkt. Samma sak med .NET, där de två största aktörerna är DotGNU:Portable.NET och Mono.
Dessa två har haft ett tufft förlutet mellan sig och det är mer vanligt att de två projekten stångas med varandra än de gör med Microsoft.
The Mono Project
Huvudartikel: Mono
Mono drivs av Novell Ximian (http://www.novell.com/linux/ximian/).
DotGNU Portable.NET
Huvudartikel: Portable.NET
Då hela .NET är otroligt omfattande så finns det en kärnkomponent, IL-motorn, kompilatorer och BCL. Portable.NET är den del i DotGNU som skall tillhandahålla grunden för alla andra .NET-komponenter.
Till skillnad från Mono, som har som mål att kopiera MS.NET, är målet med Portable.NET att ersätta MS.NET och slå slaget för Fri Mjukvara på .NET-plattformen.
Teknologier och förkortningar
Lista hämtad och översatt från Portable.NETs FAQ (http://www.southern-storm.com.au/pnet_faq.html#q1_9).
IL
Intermedate Language (Mellanliggande Språk)
Detta är den bytekod som utgör de kompilerade programmen eller länkbiblioteken. Den kompileras vid exekvering av .NET-ramverket.
CIL
Common Intermediate Language
Innan ECMA kom med sin specifikation, var IL känt som CIL. Båda används väldigt mycket, men CIL är något vanligare då det är det namn som Microsoft har anammat och oftast använder i olika publikationer.
MSIL
Microsoft Intermediate Language
Exakt samma sak som "IL", fast av någon oförklarig anledning har det av media kommit att kallas för "MSIL".
CTS
Common Type System
Det system som definierar och representerar vanliga objekt och strukturer - ett språk måste inte använda det, men genom att göra det ökar det förutsättningarna för att kombinera flera språk med varandra.
CLS
Common Language Specification
En uppsättning vanliga element och "features" i ett språk för samarbete mellan språk och IL-kod
BCL
Base Class Library
Standardbiblioteket som skapar grunden för alla IL-program. Länkbiblioteket (själva filen) heter vanligtvis "mscorlib.dll". Jämför med C/C++ libc.
CLR
Common Language Runtime
Det program eller den systemmodul som kör IL-kod (tex, hello.exe). I Windows sköts det av operativsystemet; i DotGNU:Portable.NET är det "ilrun" och i Mono "mono".
CLI
Common Language Infrastructure
Det kompletta ramverket, CIL, CTS, CLS, BCL och CLR.
C#
Det primära programspråket för .NET, men dock inte det enda (se "språkoberoende"). Läs mer om C#.
Uttalas "C-Sharp" (på engelska), inte "ciss" (även om det är innebörden av det engelska ordet).
PE/COFF
Portable Executable / Common Object File Format
Detta är det binära format som används av 32-bitars Windows för att representera kompilerade program. CLI utökar PE/COFF med nya sektioner som innehåller IL-definitioner.
ECMA
European Computer Manufacturer's Association
Standardiseringsorganet som Microsoft har valt att standardisera CLI och C#.