Oliver Sturm begann seine „C# 2016: State of the Nation“-Session mit einem kurzen Blick zurück. Ein Blick zurück auf ein ein Feature aus einer älteren C#-Version – und wie es sich entwickelt hat: „dynamic“
„dynamic“ in C# 4.0
- vielleicht das am wenigsten akzeptierte „große“ Feature, das die Sprache in einem neuen Release jemals spendiert bekommen hat
Das C# 6 Feature Set
- dadurch, dass bei der neuen Feature-Planung seitens Microsoft viel stärker mit der Community zusammengearbeitet wird, werden zum Teil bereits in Previews verfügbare Features gecancelt und anderer Richtungen eingeschlagen
Oliver Sturms C# Feature-Favoriten
- Auto-property assignments
- Expression body functions (Methode, die auf der Klassenebene erzeugt wird; hat keinen Body, sondern einen sog. ExpressionBody)
- String interpolation (in anderen Sprachen schon „ewig“ verfügbar, liest sich angenehmer als „string format“ vorher)
- C# interactive (C# REPL Umgebung, nützliches Tool, von Devs heißgeliebt)
Features öffnen Wege, an denen sich Entwickler in anderen Sprachen schon lange erfreuen;
Was passiert noch … mit Roslyn?
- initiale Bugs wurden gefixt
- kommerzielle und Open-Source-Projekte nutzen es als Parser und für Runtime-Code-Generation
- Best Case: Man bemerkt nicht, dass man es benutzt.
Die Welt da draußen: Plattformen
- man braucht kein Windows mehr, um für .NET zu entwickeln ==> Mono, aber auch .NET Core
- man braucht kein Visual Studio mehr, um für C# zu entwickeln
Populäre Patterns
- Reactive: Rx.NET: wird in vielen Umgebungen genutzt, vor allem in JavaScript; zentralisierte, funktionale und parallele Technik, um mit einem „event-driven“ Informationsfluß umzugehen
- Aktoren: akka.net
C# 7.0 Features
- Out parameters
- Pattern matching
- Tuples
- Local functions
- Literals
- Ref returns and locals
Für C# 7.0 geplant, aber noch nicht verfügbar
- generalisierte async return types
- Expression bodies für getters, setters, ctors und finalizers
- Throw exceptions