Wir alle verwenden es, das Microsoft .NET Framework. Davon gibt es mittlerweile … wie viele Versionen? Was sind Versionen und was sind Upgrades? .NET Developer kennen ihre verwendeten Versionen. Aber alle anderen…? Scott Hanselman hat hierzu einen guten Artikel geschrieben, der Klarheit in die Sache bringt:
Das .NET Framework Versionen gibt es in zwei Varianten: Als "side by side install" und als "in place upgrade". Für .NET Framework Versionsnummern gibt es diese Regeln:
Major Version = Neue CLR
Minor Version = Bug fixes, neue Libraries
Revision = Bug fixes, keine (Namens)Änderungen, kleinere Verbesserungen
Scott beschreibt hier sehr schön die Versionen des .NET Frameworks: .NET CLR 1, .NET CLR 2 und .NET CLR 4.
Side-by-side bedeutet, dass verschiedene Versionen von .NET auf der selben Maschine laufen können. .NET 1.1 ist schon laaange obsolet. Ja, man kann .NET 2.0, 3.5, 4 and 4.5 Applikationen auf einer Maschine laufen lassen! Hinweis: Das .NET Framework 4.5 Beta läuft nicht unter Windows XP und Windows Vista, siehe msdn!
Bei der Versionsbenennung hat Microsoft .NET CLR 3 übersprungen. So sind .NET 3.0 und .NET 3.5 eigentlich nur “Subsets” (Verbesserungen und Neuerungen) des .NET 2.0 Frameworks. Daher ist zum Beispiel in IIS Application Pools nur .NET 2 oder .NET 4 auswählbar…
In-place upgrade bedeutet, EINE CLR, in die Bug Fixes, neue Libraries und Performance Verbesserungen hinzugefügt wurden. Hier am Beispiel von .NET 4.5, welches in .NET CLR 4 inkludiert ist.
In Visual Studio 11 Beta können alle Frameworks ab .NET 2.0 ausgewählt werden:
Auch wenn .NET 4 and .NET 4.5 NICHT side-by-side, sondern in derselben .NET CLR 4 laufen, weiß Visual Studio über die unterschiedlichen .NET Versionen Bescheid und der Compiler referenziert die ausgewählte Version beim Build-Vorgang. Das nenn ich Service.
.NET 4.5 ist derzeit in Beta – und soll voll abwärtskompatibel mit .NET 4.0 bleiben, siehe Compatibility of .NET Framework 4.5im .NET Blog – und im eigenen Windows-Verzeichnis: .NET 4.5 Beta besitzt dieselbe Versionsnummer wie .NET 4.0: Version 4.0.30319.
Die Abwärtskompatibilität ist derzeit allerdings noch nicht vollständig vorhanden: Im MSDN zeigt der Artikel Application Compatibility in the .NET Framework 4.5 Beta einige Kompatibilitätsprobleme von .NET 4.5 Beta und .NET 4.0. Scott schreibt darüber “…most are pretty obscure”. Daher vermute ich mal, dass Microsoft hieran noch arbeiten wird...
Übrigens: .NET 4 Applikationen erhalten so (.NET CLR 4) automatisch alle Library Verbesserungen und verbesserte Geschwindigkeit, wenn sie auf einem .NET 4.5 System laufen. Praktisch.
Ich hoffe, dieser kleine Einblick in der Welt der Microsoft .NET Frameworks liefert Klarheit und hilft bei der Auswahl des Frameworks für neue Applikationen.
general
Verlinke auf uns!
Verlinke auf codekicker.de von deinem Blog oder aus deiner Forensignatur:
Das Codefest Weblog ist ein Service der Developer & Platform Group und wird von Microsoft Österreich GmbH betrieben. Das Team der Developer and Platform Group möchte ihnen mit diesem Service möglichst frühzeitig Information über die Entwicklung von Applikationen und Services auf der Microsoft Plattform zur Verfügung stellen. Nutzen sie die Gelegenheit, die einzelnen Einträge im Weblog zu kommentieren bzw. um uns Feedback zu geben, damit wir dieses Service ihren Bedürfnissen anpassen können.
Das Team der Developer and Platform Group von Microsoft Österreich GmbH möchte ihnen mit diesem Service möglichst frühzeitig Information über die Entwicklung von Applikationen und Services auf der Microsoft Plattform zur Verfügung stellen.