Wird .net 2.0 und 3.5 nebeneinander ausgeführt?

7

Wir sind ein Entwicklungs-Shop, der die meiste Entwicklung in .net 2.0 macht. Wir fangen an, darüber nachzudenken, einige der neuen Dinge in 3.5 (LINQ, etc) zu verwenden und es gibt einige andere Software-Pakete, die wir betrachten, die WPF und so weiter benötigen.

Wir würden gerne 3.5 auf unserem Testserver laufen lassen, aber ohne eine der 2.0 Seiten, die wir bereits laufen haben, zu zerstören (und wir möchten, dass sie weiterhin unter 2.0 laufen). Gibt es irgendwelche versteckten Probleme, über die ich Bescheid wissen sollte, oder kann ich einfach 3.5 auf unserem Server 2003 installieren und gut gehen?

(Das besondere Problem ist, dass trotz der Behauptung von Microsoft, dass die .net 2.0-Komponenten in 3.5 identisch sind, dass sie tatsächlich etwas verändert haben, das das Spiel kaputt gemacht hat.)

Update: Von allen Kommentaren hier und anderen Lesern unterstützt, haben wir beschlossen, die Kugel zu beißen und 3.5 auf dem Server zu installieren "nur um zu sehen, was passiert."

Beim Ausführen des Installationsprogramms entdeckten wir (zu unserer nicht unbeträchtlichen Überraschung), dass .net 3.5 bereits im August installiert worden war - und keiner von uns hatte davon gewusst.

Was ist wirklich so ein nahtloses Upgrade, wie Sie verlangen können.

Danke, alle!

    
Electrons_Ahoy 08.01.2009, 00:30
quelle

9 Antworten

2

3.5 ist eine Erweiterung wenn 2.0. Es gibt keine 3.5 ohne 2.0. Es ist eigentlich eine andere DLL (Core.dll). Dies ist nicht wie der Wechsel von 1.1 zu 2.0; Wenn Ihre älteren Websites nicht auf die neue DLL verweisen, werden diese Websites nicht verändert.

    
Giovanni Galbo 08.01.2009, 00:31
quelle
12

2.0 wird gut mit 3.5 spielen. .NET 3.5 ist wirklich nur ein paar zusätzliche Klassen hinzugefügt auf 2.0, so dass alles kompatibel ist. Ich habe eine Reihe von Projekten von 2.0 auf 3.5 verschoben, und alles migrierte sehr reibungslos, mit nur einer Neukompilierung.

    
Alex Fort 08.01.2009 00:32
quelle
7

.Net 3.5 ist im Wesentlichen eine Gruppe zusätzlicher Assemblys, die Seite an Seite mit den 2.0-Bibliotheken ausgeführt werden. Bei keiner der vorhandenen 2.0-Bibliotheken ist eine einzige Bruchänderung aufgetreten. Sie können alle Ihre 2.0-Anwendungen direkt in 3.5 ohne ein einziges Problem konvertieren. Dies beinhaltet das Ausführen von 2.0-Anwendungen auf dem 3.5-Framework. Einige Optimierungen und Fehlerbehebungen wurden an 2.0 vorgenommen, aber alle öffentlichen Schnittstellen bleiben unverändert. Dies gilt für alle Namespaces einschließlich System.Web.

In den Versionen 3.0 und 3.5 des Frameworks wie WPF, Entity Framework und einigen anderen "Frameworks" wurden viele neue Funktionen hinzugefügt. Klassen wurden bestehenden Namespaces hinzugefügt, aber sie leben tatsächlich in separaten DLLs.

Eine Sache, die Sie als FryGuy beachten sollten:

  

Seien Sie vorsichtig bei der Installation von 3.5 SP1,   weil es auch 2.0 SP2 installiert,   das fügt einige zusätzliche Funktionen hinzu. Dies   wäre gut, außer für visuelle   Studio wird IntelliSense und   alles wird gut zusammengestellt und funktioniert   Großartig auf dem Entwickler-Rechner, aber   vollständig mit einem obskuren Fehler versagen   auf Computern mit "nur" 2.0.

     

Ein Beispiel dafür ist die Methode   ManualResetEvent.WaitOne. SP1 hinzugefügt   die Überladung WaitOne (int), während   Ohne es müssen Sie anrufen   WaitOne (int, falsch).

Als CMS von 4GuysFromRolla :

Zusatzversionen der .NET-Frameworks http://aspnet.4guysfromrolla.com/images/NewIn35.gif

    
Micah 08.01.2009 01:27
quelle
3

Ja, aber mit einem Vorbehalt.

Seien Sie bei der Installation von 3.5 SP1 vorsichtig, da auch 2.0 SP2 installiert wird, wodurch einige zusätzliche Funktionen hinzugefügt werden. Das wäre in Ordnung, außer Visual Studio wird IntelliSense verwenden und alles wird gut kompilieren und großartig auf dem Entwicklungscomputer funktionieren, aber vollständig mit einem obskuren Fehler auf Computern mit "nur" 2.0.

Ein Beispiel dafür ist die Methode ManualResetEvent.WaitOne. SP1 hat die Überladung WaitOne (int) hinzugefügt, wohingegen Sie WaitOne (int, false) aufrufen müssen.

    
FryGuy 08.01.2009 01:41
quelle
1

Nur um hinzuzufügen, die .NET-Versionen sollen zusammenarbeiten, nicht nur die 2.0 / 3.0 / 3.5-Sache. Sie können auch 1.1 nebenbei laufen und es wird gut.

    
BobbyShaftoe 08.01.2009 00:33
quelle
1

Ich habe das in den letzten paar Jahren auf zwei sehr großen Systemen gemacht und hatte in beiden Fällen absolut keine Probleme. 3.5 läuft auf der 2.0 Runtime.

3.0 hätte eigentlich 2.1 sein sollen, und 3.5 hätte 2.5 sein sollen. Wenn das irgendwas hilft. 3.0 und 3.5 sind wirklich nur Funktionserweiterungen zu 2.0 und enthalten keine eigene Laufzeitumgebung. In den Service Pack-Versionen 2.0 werden Änderungen an 2.0 gefunden.

    
sliderhouserules 08.01.2009 01:34
quelle
1

Neben allen Antworten, die Sie erhalten sollten, und da Sie Ihre Arbeit auf dem Spiel haben müssen, sollten Sie sie zuerst auf einem Testserver ausprobieren, bevor Sie sie auf einem Produktionsserver bereitstellen.

Nach meiner Erfahrung hatten wir kein Problem, auf unseren Web-Servern auf .NET 3.5 zu aktualisieren.

    
Jader Dias 08.01.2009 01:44
quelle
0
CMS 08.01.2009 01:46
quelle
-2

Nein, kannst du nicht. Es wird wahrscheinlich funktionieren, aber 3.5 ersetzt bestimmte 2.0 Teile, also müssen Sie einen Regressionstest durchführen.

[Bearbeiten] Stimmen Sie nicht ab, wenn Ihnen die Antwort nicht gefällt.

Ich habe diese Frage speziell bei TechEd gestellt. Das Beibehalten der gleichen API bedeutet nicht, dass sich die Implementierung gleich verhält. Zu der Zeit lautete die Antwort der Lautsprecher: Leistungsverbesserungen (keine Details).

Um mich zu wiederholen, wie es scheint nicht zu registrieren: die API ist die gleiche, die Implementierung ist anders (wie Sie in den Hanselman Link in den Kommentaren sehen können). Micah, du scheinst nicht zu wissen, wovon du sprichst.

    
Stephan Eggermont 08.01.2009 00:44
quelle

Tags und Links