Mehrere .NET-Framework-Versionen

Microsoft entwickelt das Framework kontinuierlich weiter, so dass bereits die Versionen 1.0, 1.1 und 2.0 zur Verfügung stehen. In unterschiedlichen Situationen – sowohl auf der Nutzer- als auch der Entwicklerseite – sind auch unterschiedliche Versionen des Microsoft .NET-Framework erforderlich. Die zulässigen Konstellationen beschreibt der vorliegende Beitrag.

Das Microsoft .NET Framework ist die Basis für die Entwicklung von neueren Windows-Anwendungen. Es stellt Komponenten bereit, die von diesen Anwendungen genutzt werden können.

Damit Anwendungen, die auf bestimmten Release-Ständen des Microsoft .NET-Frameworks aufsetzen, jeweils das richtige Framework vorfinden, können auch mehrere Versionen parallel auf einem System installiert werden. Client-Anwendungen verwenden standardmäßig und automatisch die Version des Frameworks, auf der sie entwickelt wurden.

Etwas komplexer ist das bei Serveranwendungen auf Basis von ASP .NET. Sie arbeiten standardmäßig mit der neuesten installierten Version. Allerdings kann über die Anwendung aspnet_regiis. exe auch festgelegt werden, welche von mehreren Framework-Versionen verwendet werden soll, um Probleme beim Zusammenspiel mit Anwendungen zu vermeiden.

Dieser Unterschied spielt auf Testsystemen unter Windows XP eine Rolle, vor allem aber beim Deployment des Microsoft .NET Framework auf Server, wo die Konstellation von einerseits ASP. NET-Anwendungen und andererseits „normalen“ Anwendungen, die sich wie die oben genannten Client-Anwendungen verhalten, die Regel ist.

Grundsätzlich gilt, dass das Microsoft .NET Framework auf allen Systemen installiert werden muss, auf denen eine entsprechende Anwendung ablaufen soll. Standardmäßig ist das bei den neueren Windows-Versionen der Fall, wobei die Version 2.0 zumeist nachträglich eingerichtet werden muss – mit dem Windows Server 2003 wird beispielsweise die Version 1.1 geliefert.

Viele Anwendungen führen die Installation automatisch durch, aber nicht alle. Bei Bedarf können die erforderlichen Versionen des Frameworks von www.microsoft.com/downloads geladen werden.

Für Entwickler ist darüber hinaus noch das Microsoft .NET Compact Framework von Bedeutung, das auf mobilen Endgeräten ausgeführt werden kann, aber auch auf Entwicklungssystemen, um Anwendungen für diese Systeme zu installieren. Auch diese Version lässt sich parallel zu anderen Varianten betreiben.

Warum Microsoft sich für ein solches Konzept des Nebeneinander entschieden hat, ist im ersten Moment eine offene Frage. In der Regel setzt Microsoft ja eher auf die Kompatibilität unterschiedlicher Versionen von Anwendungen. Beim Microsoft .NET-Framework hat man sich dagegen für den Ansatz der Isolation entschieden, bei dem Anwendungen jeweils mit genau dem Framework laufen, mit dem sie entwickelt wurden. Der Grund dafür liegt in der Komplexität des Frameworks. Da darin sehr viele Anwendungskomponenten enthalten sind und es nicht nachvollziehbar ist, welche davon innerhalb einer
nwendung genutzt werden, hat man sich dafür entschieden, keine gemischten Varianten zuzulassen. Das verringert das Risiko, dass eine Anwendung mit einer neueren Version des Frameworks nicht korrekt läuft, signifikant.

Der Nachteil ist, dass auf einem System gegebenenfalls mehrere der sehr großen Frameworks, beispielsweise die Versionen 1.0, 1.1 und 2.0, installiert sein müssen, damit alle Anwendungen korrekt ausgeführt werden können. Dieser Nachteil wird aber durch die Vermeidung von Kompatibilitätsproblemen mehr als kompensiert.

Wichtig ist, dass alle Installationen standardmäßig mit unterschiedlichen Installationsordnern arbeiten. Diese liegen alle parallel unterhalb von c:\%windir%\Microsoft.Net\Framework (Bild 1). Damit ist sichergestellt, dass es nicht zufällig dazu kommt, dass eine vorherige Version überschrieben wird.

Bild 1: Ein Server mit mehreren parallel installierten Versionen des Microsoft .NET-Frameworks.
Bild 1: Ein Server mit mehreren parallel installierten Versionen des Microsoft .NET-Frameworks.

Der Ansatz von Microsoft bedeutet damit, dass nur bei der Verwendung von ASP .NET manuelle Konfigurationsschritte für das Microsoft .NET Framework erforderlich sind. Dort können pro Anwendungen spezifische Framework-Versionen festgelegt werden.

Vor dem Deployment einer neuen Version des Frameworks sollte man daher einerseits überprüfen, ob es neue Varianten gibt, und andererseits Skripts entwickeln, mit denen man die korrekten Anpassungen für alle bereits installierten Anwendungen durchführt. Solange diese Anpassungen noch nicht erfolgt sind, nutzen die Anwendungen die neue Framework-Version, so dass für jede Anwendung der Befehl aspnet_iisreg.exe ausgeführt werden muss.

Das Whitepaper zum Thema

Microsoft hat ein umfassendes Whitepaper bereitgestellt, in dem das Zusammenspiel unterschiedlicher Versionen des .NET Framework im Detail behandelt wird. Das Whitepaper mit dem Titel „Managing Multiple Versions of the .NET Framework“ wird auch mit der aktuellen CD-ROM von Expert’s inside Windows NT/2000 geliefert.