Frage

Ich habe einige Leute auf Stack-Überlauf zu lesen, die auf C # 2.0 C # 3 haben Umwandlung, aber ist es wirklich wert?

Ich habe ein Projekt, das bei 75%, bevor er in der Erhaltungsphase erfolgt. Ich bitte mir, wenn es sich lohnt, auf C # 3.0 zu wechseln?

Update:

Das Projekt wird nun ein Web-Interface hat so vor der Wartungsphase treten wir in die Webpart entwickeln (alle für interne Zwecke mit Windows Forms getan wurden). Die meisten Teile werden resused (Back-End). Die meisten Leute haben gesagt, dass es nicht wert ist es in der Vergangenheit, weil es bereits bei 75% war ... aber jetzt denken Sie, noch ist es nicht wert ist es?

Was hat endlich fertig

Schließlich, da wir das Projekt mit dem Web-Interface setzen wir für das neue Jahr auf 3,5 aktualisieren. Danke allen für Ihre Eingabe.

War es hilfreich?

Lösung

Nein, ich würde nicht raten. Ich würde Ihnen raten 3.5 für neue Projekte beginnen erst, es sei denn es einen bestimmten Grund anders ist. Sie werden keinen Nutzen von 3,5 haben, indem nur neu zu kompilieren, da der Code bereits geschrieben (oder mindestens 75% davon).

Wenn Sie bis 3,5 in der Zukunft migrieren müssen, können Sie es leicht. Natürlich werden Sie Code in 2.0-Stil, aber was geschehen ist, durchgeführt wird.

  • Seien Sie konservativ, nicht etwas tun, wenn Sie es brauchen.
  • Eine Anwendung, die 75% in C # 2.0 und 25% in C # 3.0 ist nicht gerade ein schönes Tier zu halten. Eine 100% C # 2.0-Anwendung ist sicherlich besser verwaltbar.

Wenn Sie ein neues Projekt starten gehen, dann mit allen Mitteln wechseln! Die neue Framework-Version ist sehr interessant, und der Schalter wird heiß empfohlen.

Andere Tipps

Klarstellung
C # 3.5 ist nicht vorhanden. Es gibt C 1.0 #, C # 2.0 und C # 3.0.

Dann gibt es .NET 1.0, .NET 1.1, .NET 2.0, .NET 3.0 und .NET 3.5.

Wir sollten die beiden nicht verwechseln.

C # 3.0 vs C # 2.0
Nun ist C # 3.0 lohnt sich der Umzug? Ich würde sagen, dass mit der Existenz von Erweiterungsmethoden und Lambda-Ausdrücke, die Antwort ja ist. Diese beiden Eigenschaften allein machen leichter zu lesen und schneller Code zu schreiben. Hinzufügen, dass automatisch implementierte Eigenschaften, LINQ und partielle Methoden und C # 3.0 zeigt sich eine vorteilhafte Bewegung sein.

Es ist jedoch nicht unbedingt vorteilhaft ein vorhandenes Projekt zu bewegen. Sie müssen die Profis wiegen und die Nachteile, vor allem im Hinblick auf die neuen Bugs Einführung und Instabilität, vor der Entscheidung, bestehende Arbeit zu migrieren. Für neue Projekte würde ich sagen, mit C # 3.0 starten.

Gibt es eine C # 3.5 Funktion, die Sie schlecht in diesem Stadium wollen? :)

Wenn es LINQ ist, können Sie geben LINQBridge einen Versuch .. Mit Studio Multi-Targeting und LINQBridge, werden Sie in der Lage sein, lokal schreiben (LINQ to Objects) abfragt mit der vollen Leistung des C # 3.0-Compiler und doch Ihre Programme benötigen nur Framework 2.0.

Ich denke, eine Menge von diesem zu Ihrem persönlichen Stil wird fallen. IMHO, die besten Eigenschaften von C # 3.5 wirklich kommen auf die folgende

  1. Lambda-Ausdrücke
  2. LINQ
  3. Erweiterungsmethoden

Mein OO-Code neigt dazu, immer noch ein wenig funktional aussehen orientiert. Deshalb sehe ich 3.5 als großer Vorteil, und es ist auf jeden Fall lohnt das Upgrade.

Was noch besser ist, ist es möglich, die 3.5-Compiler unten Ziel CLR 2.0 zu verwenden. Auf diese Weise können Sie auf einem 2.0 bereitstellen basierte Installation (vs ein 3.0 / 3.5 installieren), um den neuen Framework. Alle oben genannten können in diesem Szenario möglich, wenn Sie bereit sind, die entsprechenden Typen in Ihrem Programm hinzuzufügen.

Meiner Meinung nach gibt es keinen guten Grund, auf 3,5 wechseln nicht.

Die eigentliche Killer-Feature ist, dass Sie auch weiterhin ältere Versionen der Laufzeit (2.0+), während Sie alle neuen Sprachfunktionen zielen. So können Sie die neuen Lambda-Ausdrücke, Erweiterungsmethoden, anonyme Typen verwenden, und alle anderen guten Sachen. Und wenn Ihre Kunden nach wie vor in erster Linie die 2.0-Framework verwenden, können Sie auch weiterhin die frühere Laufzeit-Targeting.

(Just verwende keine der Klassen aus dem 3.5 Framework, wenn Sie früher Runtime-Versionen zielen müssen.)

Ich persönlich denkt, wenn Sie eine Desktop-GUI-Anwendung tun, die beste Wahl ist, den 3.0 oder 3.5-Framework zu verwenden, da WPF die beste Benutzeroberfläche Bibliothek ist mit dem ich je gearbeitet habe (noch lange).

Auf der anderen Seite, wenn Sie bereits die meisten Ihre GUI in WinForms geschrieben haben, dann könnten Sie in dem 3.5 Framework interessiert sein, die (begrenzte) Vermengung von WinForms und WPF GUI-Elementen erlaubt. Sie können die Arbeit halten Sie bereits getan haben, aber ein paar netten Details hier hinzufügen, und dort, wo es sinnvoll ist, mit WPF-Steuerelemente.

Ein weiteres praktisches Feature des 3.5-Framework ist „Auflistungsinitialisierer“. Check this out:

var myDictionary = new Dictionary<String, String> {
   { "key-1", "value-1" },
   { "key-2", "value-2" },
   { "key-3", "value-3" },
};

Ordentlich, nicht wahr?

Ich hätte es ein wenig besser gefallen, wenn es ein wenig mehr JSON-like war. Aber es ist sehr bequem Funktionalität sowieso.

Alle können Sie Ereignis, dass Code für die 2.0 Runtime Ziel!

Wenn Ihr Projekt fast abgeschlossen ist, werden Sie wahrscheinlich nicht von den neuen Features von 3.5 profitieren. Bei neuen Projekten ist es sicherlich einen Blick wert.

Es hängt wirklich von dem Projekt, die es für bestimmt ist, und was es tut.

Es wäre sicher sein zu erraten, dass das .NET Framework 2.0 ist auf vielen mehr Computern als Version 3.5.

Darüber hinaus gibt es alles, was Sie von .NET 3.5 benötigen, die nicht in 2.0 (wie LINQ) ist? Wenn Sie mit einer Menge von Anfragen und Daten zu tun hat, würde ich wechseln. Aber auch hier hängt von den Kunden, und wenn Sie beabsichtigt, diese Anwendung für die absehbare Zukunft zu halten.

Aus technologischer Sicht ist es all Framework-Version 2 und es ist sehr wenig Aufwand zu erreichen. Die Unterschiede in 2.0, 3.0 und 3.5 sind nur zusätzlicher Bibliothekscode und einige Compiler syntaktischer Zucker.

Es ist nicht wie Sie etwas über ändern müssen; von Targeting-Framework 3.5 Sie haben mehr Optionen.

Von Ihren Teams Blickwinkel: Ja, es ist es wert. Niemand will auf alte Code-Basen arbeiten. Während Sie in der Hitze der Entwicklung sind, könnten Sie auch die aktuellste stabile Technologie nutzen.

Es hängt wirklich davon ab, was Sie tun müssen. Wenn Ihr Projekt Lambda-Ausdrücke erfordert, wo Sie Query-Objekte mit einer klaren Syntax sind, sollten Sie bei 3.0 aussehen.

Ich bin derzeit zu lesen C # In Depth von Jon Skeet, und er nimmt den Ansatz, eine Lösung in C # 1.15, dann die Verlegung entwickelt die Lösung, die die neuen und nützliche Funktionen, die Sie in 2.0 und 3.0 erhalten darzustellen. Diese Art der Progression wäre ein perfektes Mittel, um Ihre Fragen zu beantworten. Das Buch liest sich gut zu so durch sie schnell ich finde ich erhalte.

Sie haben Kosten im Vergleich zu Nutzen abzuwägen. Sie haben nicht genug Informationen über Ihr Projekt zur Verfügung stellen, damit wir Sie hier beraten, aber bedenken Sie:

  • Kosten für die Umwandlung ist ziemlich klein. C # 3.0 ist fast vollständig kompatibel rückwärtig 2.0 und läuft auf framework 2.0
  • Nutzen ist auch ziemlich klein, wenn die Codierung ist fast fertig, aber könnte auf lange Sicht wachsen. Ein neues Feature müssen Sie möglicherweise in Zukunft implementieren könnte viel einfacher entpuppt Linq implementiert, zum Beispiel.

Ich habe die Umwandlung oft gemacht. Vor allem, weil die klare Syntax von Lambda-Ausdrücke macht den Code leichter zu (für mich jedenfalls) zu folgen.

Ich benutze ReSharper die 3.5 verfügt über einen Schnapp als ganz wenige Show mit neuem macht up wie Refactoring Vorschläge von ReSharper. Mit einem Tool wie das diesen Übergang macht so viel einfacher.

3.5 baut auf 2,0, so dass Sie keine Probleme direkt auf 3,5 springen.

ich würde ... es gibt keinen Schaden, und Sie bekommen einige Vorteile aus den neuen Funktionen

Ich verstehe nicht alles, was Sie Leute es nicht sagen kann. NET 2.0 ist die aktuelle (CLR) Laufzeit. .NET 3.0 und .NET 3.5 laufen beide auf dem 2.0-Laufzeit. Der Umzug in .NET 3.5 die C # 3.0-Features bekommen, ist buchstäblich eine Frage von einer einzigen Dropdown in Ihrer Projekteigenschaft zu verändern. (OK, und die 3.5-Laufzeit auf Ihre Ziel Maschinen bereitstellen, wenn Sie einige 3.5-Features wie LINQ verwenden, etc. Wenn 3.5 Installation ein Problem ist, dann ist es nicht so einfach beantworten.)

Ich würde nichts ändern, wenn Sie einen guten Grund, dies zu tun; das heißt, es ist ein Fehler, dass Sie nicht arbeiten-around in 2.0.

Aktualisieren das Rahmens in einem so späten Punkt in dem Projekt ist wahrscheinlich einige Probleme verursachen, die Sie wirklich im Moment nicht brauchen.

Wenn Sie eine Erweiterung für das Projekt haben, könnte es eine gute Sache sein, jetzt wechseln auf die neueste Version von .NET, sonst würde ich nicht.

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