Warum sollte ich auf c # 4.0 upgraden?

7

Ich weiß, dass es einige schöne neue Funktionen in C # 4.0 gibt, aber ich kann mir nicht vorstellen, dass es einen zwingenden Grund gibt, bestehende Projekte auf den neuesten Stand zu bringen oder zu neuen Projekten zu wechseln.

Ich habe einige Posts gesehen, wo Leute gesagt haben, dass, wenn ihr Hosting-Dienst .Net 4 nicht anbietet, sie einen anderen Provider finden würden, da .Net 4 in ihre Richtung <?> geschrieben hat.

Jetzt versucht mein Chef, mich dazu zu bringen, dass wir alle unsere Produktionsumgebungen auf C # 4 umstellen und es jetzt tun werden.

Es stellt sich also die Frage, ob jemand aus einem überzeugenden Grund begonnen hat, C # 4 zu verwenden oder ein Projekt in C # 4 umzuwandeln. Gab es eine Funktion, die Sie einfach haben müssten, die Ihr Leben so viel einfacher machen würde?

    
griegs 15.07.2010, 22:14
quelle

12 Antworten

12

Es gibt einige coole neue Funktionen in C # 4.0 :

  • Dynamische Mitgliedersuche
  • Kovariante und kontravariante generische Typparameter
  • Optional ref-Schlüsselwort bei Verwendung von COM
  • Optionale Parameter und benannte Argumente
  • Indizierte Eigenschaften

Scott Guthrie geht in seinem Blogartikel auf das Features von .NET 4 im Allgemeinen . Eine weitere großartige Ressource ist ein Whitepaper bei Ссылка . Allerdings würde ich bezweifeln, dass Sie eines / eine dieser neuen Funktionen sofort brauchen . Als schrieb Scott Hanselman :

  

es gibt viele Sachen, die neu sind und   hinzugefügt in .NET 4, aber nicht in diesem   "überwältigend-ich-muss-wieder-lernen-alles"   Weg.

Ob Sie nun upgraden sollten oder nicht, hängt daher von einer Vielzahl anderer Faktoren ab. Einige Gründe, die mir in den Sinn kommen:

  • Standardisierung Ihrer Entwicklungsumgebung auf einer einzigen Plattform VS2010 gegenüber VS2008.
  • Die Größe von .NET Framework ist erheblich reduziert
  • Verbesserte Geschwindigkeit, wenn Sie ein Visual Studio-Tool für Office-Entwickler sind

Ein offener Dialog mit Ihrem Vorgesetzten erscheint angemessen, um seine Argumentation für das Upgrade zu verstehen. Ich würde argumentieren, dass, weil es glänzend ist, kein zwingender Grund ist.

Als Referenz diese datierte Stack Overflow Frage " Warum nicht auf upgraden? Das neueste .net-Framework "liefert das Gegenteil zu Ihrer Frage.

    
ahsteele 15.07.2010, 22:42
quelle
5
  • Ehrlich gesagt System.Collections.Concurrent wurde entwickelt Multithread-Anwendungen ein Kinderspiel.

  • Die neue und verbesserte System.Linq.Expressions macht dynamisch kompilierten Code zu schreiben scheint wie ein Kinderspiel.

  • Die neue benannte Parameter-Funktion bedeutet, dass ich große Konstruktoren haben kann und nicht verwirrt bin, was die einzelnen Parameter sind. Unveränderliche Objekte sind einfach viel einfacher.

ChaosPandion 15.07.2010 22:23
quelle
5

Überraschenderweise nicht erwähnt:

Marc Bollinger 15.07.2010 23:22
quelle
3

Ist Ihre Frage spezifisch für C # 4.0 oder .NET 4.0?

In C # 4.0 gibt es nur ein paar wirklich nette neue Funktionen. Kovarianz / Kontravarianz ist nicht immer nützlich, aber wenn man sie braucht, kann sie sehr viel Schmerz ersparen. Optionale Methodenparameter können viele hässliche Methodenüberschreibungen reduzieren und bestimmte Methodenaufrufe viel sauberer machen. Wenn Sie COM oder IronPython oder eines von einigen ähnlichen Frameworks verwenden, kann das Schlüsselwort dynamic auch ein echter Lebensretter sein.

.NET 4.0 hat im Allgemeinen eine Tonne wirklich interessanter Funktionen in einer Vielzahl von Frameworks. Die Unterstützung von Fremdschlüsseln in Linq to Entities erleichtert uns beispielsweise das Leben erheblich. Viele Leute sind wirklich begeistert von POCO-Unterstützung. Sie haben auch Unterstützung für einige der LINQ-Methoden (z. B. Distinct ) hinzugefügt, die zuvor im Entity Framework fehlten.

Es wird also wirklich alles darauf hinauslaufen, welche Frameworks Sie verwenden und wie Sie sie verwenden und wie teuer es für Sie ist, den Switch zu erstellen.

    
StriplingWarrior 15.07.2010 22:55
quelle
2

Erstens, was für mich zwingend ist, kann dir nichts bedeuten. Wenn ich das gesagt habe, würde ich Visual Studio upgraden, wenn das Budget es erlaubt. In der Tat, persönlich denke ich, es gibt ein großes Karrieresrisiko, wenn man bei einem Unternehmen bleibt, das seine Werkzeuge nicht auf dem neuesten Stand hält. Sie werden in Ihrem Wissen über das Feld zurückfallen, ohne Zugriff auf die neuesten Tools.

Um alle Ihre Projekte zu konvertieren, nur um sie zu konvertieren, scheint es mir eine Torheit zu sein. Abgesehen von all der zusätzlichen Arbeitsverteilung (und dem Upgrade der Maschinen auf .NET 4) müssen Sie die Möglichkeit in Betracht ziehen, dass etwas schief geht. (Und wenn Sie wie ich sind, müssen einige Dinge aus Programmen von Drittanbietern aufgerufen werden, die .NET 3.5 verwenden, wodurch sie nicht konvertiert werden können.)

Meine erste Regel wäre, dass nichts konvertiert wird, es sei denn, du arbeitest trotzdem daran. Aber ich würde ernsthaft versuchen, alles zu konvertieren, das Verbesserungen von entweder parallelem Code oder COM-Interop verwenden könnte.

Ich habe ein überzeugendes Projekt, das konvertiert wurde. Ich hatte eine lange laufende Webmethode aufgerufen. In der Version, die jetzt existiert, komme ich von der Methode zurück, ohne die Ergebnisse zu kennen. Stattdessen gab ich dem Benutzer eine Möglichkeit, später zu überprüfen. Durch den Wechsel zu einer parallelen foreach-Schleife funktioniert das viel besser und ich kann den Benutzer wissen lassen, ob es Fehler gab.

Das gleiche Projekt wird auch auf RIA-Dienste umgestellt, die den eigenen Code stark verbessert und reduziert haben.

    
Kirk 15.07.2010 23:15
quelle
2

Ich habe aus dem gleichen Grund aufgerüstet, wie alle anderen auch.

... so kann ich es auf meinen Lebenslauf setzen:)

    
SteveCav 15.07.2010 23:17
quelle
1

Wenn Sie heute ein neues Projekt starten, ist es wahrscheinlich am besten, es mit 4.0 zu starten, da Sie es irgendwann sowieso migrieren müssen (vorausgesetzt, es bleibt lange genug bestehen, ältere Versionen von .net werden es tun) hört einfach auf unterstützt zu werden).

C # 4 impliziert andere Dinge .. abhängig von Ihrem Projekt ... WCF 4, WPF 4, ASP.NET 4, MVC 2, Entity Framework 2, etc .. Sehen Sie sich nicht nur C # als Grund an ändern, müssen Sie auch auf den ganzen Stapel schauen. Wenn es nichts Zwingendes gibt, dann ist es wahrscheinlich eine kluge Wahl, dort zu bleiben, wo man ist.

    
Erik Funkenbusch 15.07.2010 22:26
quelle
1

Wenn Sie WPF / Silverlight ausführen, würde ich definitiv ein Upgrade auf Visual Studio 2010 empfehlen (ich weiß, dass Sie .NET 4.0-Code ohne IDE schreiben können, aber das ist ein Randfall, falls es jemals einen gab).

Die Multi-Monitor-Unterstützung ist geschickt, aber fehlerhaft. Ich verbringe viel Zeit damit, Fenster zum Aktualisieren zu bekommen.

In Bezug auf die Sprache ist das COM-Interop (wie @Gvs erwähnt) auch mit dem dynamischen Datentyp und den optionalen Parametern erheblich verbessert.

UPDATE: Die Unterstützung mehrerer Monitore ist mit ziemlich solide VS 2010 SP1 .

    
RQDQ 15.07.2010 23:12
quelle
0

Wenn Sie Ihren Chef dazu bringen können, für die $ 10.000 + Visual Studio Ultimate Edition zu popeln, IntelliTrace ist ein überzeugender Grund, um Ihre Umgebung zu verbessern und die Begründung genug für die Investition.

    
Bob Kaufman 15.07.2010 22:19
quelle
0

Die COM-Integration ist viel einfacher mit den Parametern dynamic und optional .

    
GvS 15.07.2010 22:21
quelle
0

Für mich gibt es zwei Dinge:

  1. optionale Argumente - weil ich es satt habe, Klassen mit X-Versionen der gleichen Methode zu verschmutzen (Überladung)
  2. dynamisches Schlüsselwort - weil die Ausdruckskraft von Generika in C # ein Witz ist, so kann ich zumindest "schreiben, was ich meine" ohne Reifen, natürlich mit Ausführungsgeschwindigkeit Strafe

Je kompakter der Code (dh wenn Sie die Idee ohne Zusatz "oh, wie Sie die Beschränkung Y der Sprache zu vermeiden"), desto besser, weil der Code ist viel einfacher zu pflegen und es ist schwieriger, ein dumm zu machen (oder schlimmer) Fehler.

    
greenoldman 16.07.2010 04:44
quelle
-1

Es gibt keine zwingenden Stabilitäts- oder Sicherheits Gründe für einen Wechsel. Sollte das nicht Ihr Chef sein?

    
BC. 15.07.2010 22:22
quelle

Tags und Links