Frage

Gibt es irgendwelche Vorteile Kompilieren für .NET Framework 3.5 statt 2.0?

Zum Beispiel weniger Speicherverbrauch, schnellere Inbetriebnahme, eine bessere Leistung ...

Ich persönlich denke nicht so aber kann ich etwas verpasst haben.

Edit: Natürlich gibt es mehr Funktionen im 3.5 Framework, aber diese sind nicht im Mittelpunkt dieser Frage

.

Edit2: Es scheint keine Vorteile zu sein

.

Edit3: Ja ich den Rahmen bedeuten, dass Targeting. Ich habe die neuesten 3.5 SP1 installiert und VS 2008 so was ist der Unterschied zwischen mit dem Kompilieren und ein Rahmen-Targeting? Ich kann den Rahmen, in den Projektoptionen zielen aber wie kann ich eine bestimmte Framework-Version ‚mit kompilieren‘? Ich wusste nicht, dass es einen Unterschied gibt.

Edit4. So jetzt sind wir uns einig, dass es keine Vorteile

Danke für deine Meinungen

War es hilfreich?

Lösung

Es gibt einen Unterschied zwischen Übersetzen und Targeting.

Kompilieren des Codes mit dem (zum Beispiel) C # 3.0-Compiler werden Sie wahrscheinlich einen Schub auf die Leistung geben (sehr wenig sowieso) als eine Optimierung für die IL generierten Code aufgenommen wurden migh. Es erlaubt Ihnen auch einige der neuen Funktionen wie automatische Eigenschaften oder Lambda-Ausdrücke zu verwenden.

Targeting für einen bestimmten Rahmen wird Ihre Montagearbeiten für diesen Rahmen (und Seitenzähne) zu gewährleisten, und werden scheitern, wenn Sie für 2.0 Ziel und sind eine 3.5-Bibliothek. Keine Leistungsverbesserungen werden, die direkt sein, wenn Ihr eine Klasse aus einem Rahmen mit einer anderen „schnellste“ Klasse ersetzt wird. Zum Beispiel wird .NET 1.1-Targeting nicht zulassen, dass Sie Generika verwenden und deshalb werden Sie die Arraylist verwenden müssen, die wesentlich langsamer als Liste ist (wegen Box und Unboxing).

Andere Tipps

Es gibt zwei Dinge zu erinnern, in Bezug auf .NET 2.0 und .NET 3.5.

  1. Das .NET Framework 3.5 ist nur wenige Bibliotheken, die auf der .NET 2.0 ausgeführt werden.
  2. Wenn in Visual Studio 2008 entwickelt und Targeting .NET 2.0 Sie noch bestimmen C # 3.0 Sprachfeatures wie Erweiterungsmethoden verwenden können, da sie in der Tat ein Merkmal der C # 3.0 (oder .NET 3.5) Compiler sind. Siehe diesen Link: http: // www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Ich habe keine gefunden. Ein offensichtliche Nachteil , wenn Sie die 3.5 Besonderheiten nicht brauchen, ist, dass die 3.5-Codebasis jünger ist und ist deshalb möglich, wenn auch unwahrscheinlich, dass es einige Bug lauern.

Es gibt keinen Nutzen für die 3.5 Framework zu kompilieren, wenn Sie keine Klassen von dieser Version des Frameworks verwenden.

Ich nehme an, dass Sie die .NET 3.5 Framework für Ihre Zusammenstellung Targeting bedeuten muss? Wenn ja, dann wie andere gesagt haben Ich glaube nicht, werden Sie viel Unterschied.

Wenn Sie jedoch die aktualisierten Compiler zu verwenden, dann gibt es verschiedene Änderungen und brechen Änderungen sprechen sich für C # und VB unter den folgenden Links beschrieben:

Ich glaube, dass ein anderen Compiler wird mit jeder Version von Visual Studio. Zum Beispiel im Fall von C # 2.0 die Compiler mit Visual Studio 2005 ausgeliefert und den C # 3.0 im Lieferumfang von Visual Studio 2008. Je nachdem, welche Version von Visual Studio, Sie mit einem anderen Compiler am Ende verwendet werden.

einen Rahmen Targeting bezieht sich speziell auf die Version des Frameworks Sie wollen während des Übersetzungsvorgangs wählen; Frameworks Targeting ist eine neue Funktion von Visual Studio 2008. Zum Beispiel ich eine Lösung offen in Visual Studio 2008 und Ziel v2.0 von .Net haben könnte. Das Ergebnis wäre, dass ich jede nicht der 3.0 oder 3.5 .Net Funktionen zur Verfügung zu mir haben würde während dieser Zusammenstellung, zB WPF.

Wenn Sie Ihre .NET-Assembly .NET 3.5, die resultierende Anwendung zielt sucht nach und erfordert die .NET 3.5 Bibliotheken, und das ist das. Diese Bibliotheken sind mit zahlreichen Zusatz klassifiziert nicht in .NET Framework 2.0 gefunden, so dass der Vorteil wäre, diese Bibliotheken Verbreitung.

Wenn Sie jedoch C # -Code mit dem C # 3.0-Compiler Versand kompilieren mit z.B. Visual Studio 2008 und geeignet für .NET 3.5, und hat die Assembly Ziel .NET 2.0, werden Sie noch brauchen nur die regulären .NET 2.0 Bibliotheken und trotzdem verwenden tatsächlich bestimmte .NET 3.5 Compiler-Funktionen, als eine Anzahl dieser Merkmale macht nur die Verwendung von .NET 2.0-Code am Ende. Lesen Sie mehr dazu hier: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and- net-2-0-code.aspx

3,5 haben Klassen, die 2,0 nicht. Func <...> zum Beispiel. Wenn Sie 2.0 zielen darauf ab, können Sie sie nicht benutzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top