.NET Framework
Den här artikeln eller det här avsnittet innehåller inaktuella uppgifter och behöver uppdateras. (2018-12)
Hjälp gärna Wikipedia att åtgärda problemet genom att redigera artikeln eller diskutera saken på diskussionssidan. |
.NET Framework är en systemkomponent som är en del av operativsystemet Microsoft Windows. Den består av en samling komponenter som hanterar exekveringen av program som är skrivna speciellt för ramverket. Den består också av ett stort klassbibliotek innehållande förkodade lösningar för vanliga programmeringsuppgifter såsom kryptografi, databashantering, anslutning till nätverk, webbtjänster och algoritmer. Det här är Microsofts svar på Suns Java-plattform. Till skillnad från Java så är konceptet bakom .NET Framework standardiserat som Common Language Infrastructure (CLI) (publicerat som ECMA-335 och ISO/IEC 23271).
.NET Framework | |
Utvecklare | Microsoft |
---|---|
Senaste utgåva | 4.5.2 (4.5.51209.34209) (6 maj 2014) |
Operativsystem | Windows NT 4.0, Windows 98 och nyare |
Typ | System platform |
Licens | MS-EULA, BCL under Microsoft Reference License |
Webbplats | http://www.microsoft.com/net/ |
.NET Framework är inkluderat i Windows 10, Windows 8, Windows 7, Windows Vista och Windows Server 2008. Den nuvarande versionen kan också installeras på Windows XP och Windows Server 2003.
Primära designmål
redigeraInteroperabilitet
redigeraDet finns inbyggda funktioner som tillåter kommunikation med applikationer utanför .NET-miljön. Tillgång till COM-komponenter ges av namnutrymmena System.Runtime.InteropServices
och System.EnterpriseServices
. Annan funktionallitet tillhandahålls av P/Invoke.
Gemensam exekveringsmotor
redigeraProgramspråken i .NET Framework kompileras till ett intermediärt språk kallat Common Intermediate Language (CIL). Koden tolkas inte utan kompileras till maskinkod under exekveringen, så kallad Just in time-kompilation (JIT). Koncepten går under det gemensamma namnet Common Language Infrastructure (CLI). Microsofts implementation kallas Common Language Runtime (CLR).
Språkoberoende
redigera.NET Framework introducerar ett gemensamt typsystem (Common Type System eller CTS). CTS definierar datatyper och byggstenar som stöds av CLR och hur de interagerar med varandra. Detta gör det möjligt för .NET-språken att utbyta instanser av typer mellan varandra.
Klassbibliotek
redigeraBase Class Library (BCL), en del av Framework Class Library, innehåller det mest grundläggande för .NET Framework. BCL innehåller klasser som omsluter en del vanliga funktioner såsom filhantering, grafisk rendering, databasinteraktion och manipulation av XML-dokument.
Förenklat driftsättande
redigeraInstallation av programvara måste ses till så att de inte påverkar programvara som redan är installerad. .NET Framework innehåller verktyg som uppfyller dessa krav.
Säkerhet
redigeraProgram kontrolleras alltid innan de exekveras för att förebygga fel i koden, som till exempel buffertöverskridning.
Portabilitet
redigera.NET Frameworks design gör att den i teorin är multiplattforms-kompatibel. Ett program som är skrivet för att använda .NET Framework ska kunna exekveras på ett system där ramverket är implementerat. Microsofts kommersiella implementation stödjer Windows, Windows CE och Xbox 360. Utöver detta har Microsoft gjort sin teknik tillgänglig som öppna standarder (Common Language Infrastructure, dess komponenter, programspråken C# och C++/CLI) och tillhandahåller specifikationer för dessa. Detta gör det möjligt för tredjepartsutvecklare att själv implementera kompatibla implementationer på andra plattformar.
Arkitektur
redigeraCLI (Common Language Infrastructure)
redigera- Huvudartikel: Common Language Infrastructure
.NET Frameworks huvudaspekter är del av Common Language Infrastructure, eller CLI. Syftet för CLI är att tillhandahålla en språkoberoende plattform för programutveckling och exekvering. Detta inkluderar funktioner för undantagshantering, skräpinsamling, säkerhet och interoperabilitet. Microsofts implementation av CLI kallas Common Language Runtime, eller CLR. CLR består av fyra primära delar:
- Common Type System (CTS)
- Common Language Specification (CLS)
- Metadata
- Virtual Execution System (VES)
Assemblies
redigeraDen intermediära CLI-koden lagras i .NET assemblyn. Enligts specifikationerna sparas assemblierna i Portable Execution (PE) formatet, gemensamt på Windows plattformen som DLL och EXE-filer. Ett assembly innehåller ett manifest med metadata.
Metadata
redigeraAll CLI är självbeskrivande genom .NET Metadata. CLR kontrollerar metadatan för att försäkra sig att rätt metod kallas. Metadatan genereras vanligen av kompilatorn men utvecklarna kan skriva egen med hjälp av attribut. Metadatan innehåller information om assemblyn, och används också för att implementera reflektiv programmering i .NET Framework.
Klassbibliotek
redigeraNamnutrymmen i BCL |
---|
System |
System.CodeDom |
System.Collection |
System.Diagnostics |
System.Globalization |
System.IO |
System.Resources |
System.Text |
System.Text.RegularExpressions |
Micrsoft .NET Framework innehåller ett antal klassbibliotek. Klassbiblioteket är hierarkiskt organiserat i namnutrymmen. De flesta av de inbyggda API:erna är en del av namnutrymmena System.*
eller Microsoft.*
.
- Base Class Library (BCL) är ett subset av hela klassbiblioteket som tjänar som grund-API för Common Language Runtime. Klasserna i
mscorlib.dll
och en del av klasserna iSystem.dll
ochSystem.core.dll
anses vara en del BCL. BCL finns implementerat i .NET Compact Framework, Microsoft Silverlight och Mono.
- Framework Class Library (FCL) är ett superset av BCL och refererar till hela klassbiblioteket som följer med .NET Framework. Det inkluderar ett expanderat antal bibliotek: WinForms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation och Windows Communication Foundation.
Minneshantering
redigeraCLR sköter minneshanteringen (allokering och frigöring av minne) för att underlätta för utvecklaren. Minne för .NET typer (objekt) allokeras från heapen, ett minne som sköts om av CLR. Objekten på heapen existerar så länge det finns en referens till dem, antingen direkt eller indirekt via en graf av objekt. När det inte finns någon referens till objektet så kan den inte längre användas, det har blivit skräp. Objektet har dock fortfarande minne allokerat till sig. .NET Framework inkluderar en skräpinsamlare som med jämna mellanrum sveper igenom heapen och letar efter orefererade objekt vars minne den sedan avallokerar. Skräpinsamlaren körs bara när en viss del av minnet har använts.
Versioner
redigeraMicrosoft startade utvecklingen av .NET Framework i slutet av 1990-talet. Det gick då under namnet New Generation Windows Service (NGWS) och den första betan av .NET Framework 1.0 släpptes sent under 2000.[1]
Version | Versionsnummer | Datum |
---|---|---|
1.0 | 1.0.3705.0 | 2002-01-05 |
1.1 | 1.1.4322.573 | 2003-04-01 |
2.0 | 2.0.50727.42 | 2005-11-07 |
3.0 | 3.0.4506.30 | 2006-11-06 |
3.5 | 3.5.21022.8 | 2007-11-19 |
4.0 | 4.0.30319.1 | 2010-04-12 |
4.5 | 4.5.50709.17929 | 2012-08-15 |
.NET Framework 1.0
redigeraDet här är den första releasen av .NET Framework. Den släpptes den 15 februari 2002 och finns tillgänglig för Windows 98, NT 4.0, 2000, och XP.
.NET Framework 2.0
redigera- Stöd för generiska typer har lagts till i CLR.
.NET Framework 3.0
redigera.NET Framework 3.0, tidigare kallat WinFX, innehåller nya API:er som finns utgör en del av Windows Vista och Windows Server 2008. Det finns även tillgängligt för Windows XP SP2 och SP3 och Windows Server 2003. Denna release innehåller inga större ändringar i arkitekturen utan utnyttjar CLR 2.0. Ingen ny version av .NET Compact Framework släpptes samtidigt som denna. Version 3.0 innehåller också Windows Communication Foundation, Window Presentation Foundation, Windows Workflow Foundation samt Windows Cardspace.
.NET Framework 3.0 består huvudsakligen av fyra nya komponenter:
- Windows Presentation Foundation (WPF), kodnamn Avalon;
- Windows Communication Foundation (WCF), kodnamn Indigo;
- Windows Workflow Foundation (WF)
- Windows CardSpace, kodnamn InfoCard;
.NET Framework 3.5
redigeraVersion 3.5 är inkluderad i Windows 7 och Windows Server 2008 R2 och kan också installeras på Windows XP och Windows Server 2003.
Delar av källkoden för Base Class Library släpps under Microsoft Reference License.
- Nya funktioner i C# 3.0 och VB.NET 9.0 kompilatorerna.
- Stöd för lambdauttryck
- Extension methods
- Anonyma typer
- Language Integrated Query (LINQ)
- LINQ to Objects
- LINQ to XML
- LINQ to SQL
- ASP.NET AJAX är inkluderat.
.NET Framework 4.0
redigeraVersion 4.0 släpptes den 12 april 2010 tillsammans med Visual Studio 2010.
- Kodkontrakt
- Parallel Extension förbättrar exekveringen av kod på flerkärninga processorer.
- PLINQ utnyttjar detta.
- Stöd för dynamiska programspråk via Dynamic Language Runtime.
- Fullt stöd för programspråken F#, IronPython och IronRuby.
- Oslo kodmodelleringsramverk.
.NET Framework 4.5
redigeraVersion 4.5 är inkluderad i Windows 8 och Windows Server 2012.
Alternativa implementationer
redigeraDet finns ett flertal alternativa implementationer av CLI standarden. Här är en lista över några av dem.
- .NET Core är en alternativ implementation av .NET utvecklad av Microsoft. Den är baserad på andra designprinciper än .NET Framework. Däribland för att köras på ett flertal plattformar. Projektet är open source och drivs under .NET Foundation. Microsoft har sagt att .NET Core kommer att ersätta .NET Framework 2020 under namnet .NET 5.[2]
- Microsofts Shared Source Common Language Infrastructure
- Mono
- Portable.NET
Se även
redigeraReferenser
redigera- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, .NET Framework, tidigare version.
- ^ ”Framework Versions”. Arkiverad från originalet den 4 maj 2008. https://web.archive.org/web/20080504160116/http://ben.skyiv.com/clrversion.html.
- ^ ”Introducing .NET 5”. https://devblogs.microsoft.com/dotnet/introducing-net-5/. Läst 21 juli 2019.
Externa länkar
redigera.NET Framework
redigera.NET Framework är en standardiserad plattform för att köra .NET-program. .NET är ur utvecklingssynpunkt språkoberoende. Allt som krävs är att programmeraren har en kompilator som kan översätta källkoden till MSIL, Microsoft Intermediate Language. MSIL är bytekod (precis som "kompilerad" Java-kod) och JIT-kompileras när programmet körs av .NET Framework. Detta förutsätter alltså att användaren av .NET-program har detta framework installerat på sin dator.
Common Language Infrastructure, CLI
redigeraCommon Language Infrastructure (CLI), är den standard (ECMA-335 och ISO/IEC 23271) som .NET Framework resulterat i. CLI beskriver bland annat hur program ska kunna köras i flera miljöer utan att behöva skrivas om. Standarden innehåller information om:
- Filformat
- Ett gemensamt typsystem (CTS)
- Ett utbyggbart metadatasystem
- Ett intermediärt språk (MSIL)
- Ett klassbibliotek
Standarden är framtagen gemensamt av Fujitsu, Hewlett-Packard, Intel, ISE, Microsoft samt Monash University.
Common Language Runtime, CLR
redigeraKärnan i .NET Framework är Common Language Runtime, CLR, som används för att köra programmen. CLR hanterar bland annat kodsäkerhet, objekts livscykelhantering samt avlusning och profilering.
Common Type System, CTS
redigeraCommon Type System, CTS, är den standardiserade del i .NET Framework som tillhandahåller olika typer som kan användas av alla språk (se nedan) i .NET för att göra program och komponenter språkoberoende.
Common Language Specification, CLS
redigeraCLS är den standard som alla .NET-språk skall uppfylla för att kunna köras i .NET Framework. Följande språk stöds av Microsoft för .NET:
- C#
- C++ (i viss mån uppgraderat och modifierat)
- Visual Basic .NET
- J#
- Borland Developer Studio (Delphi 2005 och 2006)