[Teched 2007] Microsoft Visual C# Under the Covers: An In-Depth Look at C# 3.0
Luke Hoban - Program Manager Microsoft
Grosse session apparemment très attendu au vu du remplissage de la salle (l'auditorium, la plus grosse salle ou s'est déja auparavant déroulé le Keynote) pour cette session consacrée aux principales nouveautés de C# 3.0. (enfin du code, du code et du code et rien que du code présenté de manière très fluide!)
Les principaux axes de conception de C# 3.0:
- Amélioration de C# 2
- L'apparition du "Language Integrated Query" (LINQ)
- 100% compatible avec les versions précédentes
Une fois ces concepts énumérés, Luke a enchainé directement par une démonstration d'implémentation en parlant d'une classe vide pour mettre en évidence les nouveautés:
- "Auto-implemented properties": Nouvelle syntaxe pour les accesseurs : public string CustomerID { get; set; }, en lecture seule: public string CustomerID { get; private set; }
- "Object Initializers": Initialisation des valeurs des propriétés d'un objet : new Customer() { prop1 = 1, prop2 = n...}.
- "Collection Initializers": Utilisation de la même syntaxe pour ajouter des objets à une collection générique lors de sa construction ou encore a un Dictionnary<n, m>
- Inférence de Type: utilisation du mot clé "var" pour masquer un type déductible automatiquement d'une implémentation
- "Query Expressions": utilisation d'une requête C# pour interroger une collection
- "Anonymous Types": type généré de manière anonyme directement par le compilateur en fonction d'un ensemble de propriétés
Retour ensuite aux slides pour présenter LINQ et ses différentes briques: to Objects, To DataSet, to SQL, to Entities, to XML.
Suite de la démonstration avec un exemple de re-implémentation de LINQ to Object en utilisant les "Lambda Expressions", la généricité et en introduisant les "extension methods".
Il existe beaucoup de contenu sur ce sujet, je ne vais donc pas m'étaler ici à le décrire mais plutôt profiter pleinement de la démonstration.
Quelques liens: