Frage

Ich habe unzählige Blogs, Beiträge und Fragen zu Stackoverflow die neuen Features von C # 4.0 lesen. Auch neue WPF 4.0-Funktionen haben damit begonnen, in der Öffentlichkeit zu treten. Was konnte ich nicht finden, und werden gerne wissen:

  1. Was sind die wichtigsten Änderungen an CLR 4.0 von einer C # / WPF Entwickler Perspektive sind?
  2. Was sind die wichtigsten Änderungen CLR 4.0 als Ganzes sind?

Ich denke, intern, die meisten Änderungen für die neuen dynamischen Sprachen und parallele Programmierung. Aber gibt es andere wichtige Verbesserungen? Da Sprache Verbesserungen sind nur, dass Sprache Verbesserungen. Sie müssen nur die neuen Compiler und diese Funktionen können mit einer niedrigeren Version von .Net, abgesehen von der Version 1.0 / 1.1 (zumindest die meisten von ihnen verwendet werden können) verwendet werden.

Und wenn die oben genannten Funktionen sind die Einzigen, die nur für diese Funktionen die Version auf 4.0 geändert wird, was ich denke, ist 4.0 wegen auf .NET 4.0-Version basiert (dh nach 1.0 / 1.1, 2.0 & 3.0 / 3.5 ). Ist der Versionsschritt gerechtfertigt?

Editiert:

Als Pavel Minaev in den Kommentaren darauf hingewiesen, auch diese beiden Funktionen sind CLR unabhängig. Es gab Geschwindigkeit und andere Verbesserungen in 3.0 und 3.5 auch. Warum also die Version Schritt?

War es hilfreich?

Lösung

Eine neue CLR Sache, die ich kenne ist eine Form der strukturellen Typisierung für Schnittstellen, Strukturen und Delegierten aus Gründen der hier ist eine Powerpoint-Präsentation auf CLR 4.0 von PDC 2008. Es könnte jetzt etwas veraltet, aber die meisten Sachen, die dort erwähnt werden scheint in dem Betas zu sein.

Andere Tipps

Es gibt eine große Anzahl von Änderungen.

In der CLR selbst gibt es ein paar Änderungen. Der Garbage Collector wird geändert, um die gleichzeitige Sammlung von gen0 / 1 und in Gen2-Workstation-Modus zu unterstützen. Auch gibt es einige Änderungen, wie Sicherheit implementiert wird. Der parallele Rahmen ändert einige der Umsetzung der CLR des Threadpool (die nicht vollständig verwaltet wird, sondern Teil der Laufzeit selbst). Auch gibt es einige Änderungen an dem Typ-System, vor allem im Zusammenhang mit der neuen PIA COM-Unterstützung.

Die größten Veränderungen sind wahrscheinlich mehr Bibliothek / Rahmen ändert, anstatt CLR Änderungen. wie die Integration des DLR in den Rahmen und den neuen dynamischen Typ. In Bezug auf den Rahmen haben Sie die reaktiven Rahmen, parallel Bibliothekserweiterungen, Code Verträge, Tupel Unterstützung, und viele kleine Änderungen (zB: Enum.TryParse, Lazy<T> und Tonnen von anderen klein, aber schön, Verbesserungen).

Ich glaube nicht, gibt es keine neue IL-Instruktionen. Die neue CLR hat Verbesserungen, um Dinge wie inlining und Garbage Collection, die die gleiche Arbeit wie die 2.0 tun CLR, aber besser. Eine virtuelle Maschine (wie die CLR oder JVM) ist ein abstraktes Konzept mit mehreren möglichen Implementierungen. Ich glaube, CLR 4.0 ist die gleiche abstrakte Maschine wie in CLR 2.0, nur mit einer verbesserten Umsetzung.

Auch die neuen dynamischen Sachen sind nur ein Compiler Trick mit neuen APIs (anders als in Java, wo er als neuer Opcode vorgeschlagen hat wird.)

Wenn ich das falsch bin, würde ich gerne wissen!

Für jede Release-Dokumentation Teams erstellen Dokumente „Was ist neu“.

Hier ist der für C # 4.0 Beta2: Was ist Neu in Visual C # 2010

Und hier ist die für .NET Framework 4.0 Beta 2:

habe ich versucht, auf einige der neuen C # Zeug in Reflector suchen, um zu sehen, ob es unter etwas Neues nach unten ist:

  • dynamische Typen übersetzt Objekt s, über Compiler Magie, die Laufzeit verbindlich behandeln Bibliothek Anrufe erstellt.
  • Optionale Parameter werden über den Compiler behandelt. Wenn Sie Foo aufrufen (int x = 5), ohne einen Wert für x Angabe, werden Sie den Anruf als Foo (5) in Reflector sehen.

Also ich denke, die Veränderungen sind nichts, was man leicht (wie generische Unterstützung in CLR 2.0) erkennen.

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