10. Dim contacts = From c In customers Where c.State = "WA" Select New With { Name = c.Name, _ Phone = c.Phone } Dim contacts = customers _ .Where(Function(c) c.State = "WA") _ .Select(Function(c) New With { Name = c.Name, _ Phone = c.Phone }) Méthodes d’extension Expressions Lambda Query expressions Initialisation d’objets Types anonymes Types implicites Types Valeur Nullable Arbres d’expressions Support de l’XML Méthodes Partielles
Qui est Wygwam ? Wygwam est un bureau d’expertise technologique situé en France et en Belgique. Wygwam est la plus forte concentration de MVPs en Europe avec 6MVPs et un RD. Nous sommes organisés en pôles de compétences, chacun d’eux dirigé par un MVP et devant délivrer 3 types de services à la clientèle. Nos pôles de compétence sont : Technology Fundamentals (TF) – Dirigé par Grégory Renard, MVP et RD, en charge de la stratégie générale de Wygwam et de Microsoft .NET en général. Online Strategies & Tactics (OST) – Dirigé par Aurélien Verla, MVP, en charge de l’intégration des technologies de l’Internet dans vos solutions (Technologies comme <Lire les technos> Collaboration & Portal Team (CPT) – Dirigé par Renaud Compte, MVP, en charge de la stratégie d’intégration de portails collaboratifs dans vos infrastructures d’entreprise (Technologies comme <Lire les technos> Nos métiers sont : Le coaching: <Lire les points> Le développement de pointe: <Lire les points> Les services packagés: <Lire les points> Pour plus d’information : www.wygwam.com
The main points are that the CLR engine is the same version (so no need to retest your apps) and that the headline feature is the language enhancements (C#3 & VB9 compilers) and LINQ.
The main points are that the CLR engine is the same version (so no need to retest your apps) and that the headline feature is the language enhancements (C#3 & VB9 compilers) and LINQ.
VB = longer history (up to 9.0) Refer to huge transition from 6.0 to .NET which implied the creation of a runtime library for bw compat: play the rules of the CLS (OO for example) and remain consistent with VB pre-.NET VB 8.0 = Generics VB 9.0 = LINQ + XML (difference with C#)
Similar story as in C# 3.0 except for XML integration; emphasize that language evolutuon doesn’t mean that languages have to go hand in hand on any field.
L'inférence de type a principalement été intégrée à Visual Basic 2008 [9.0] afin de supporter par exemple les types anonymes ou encore LINQ : Language INtegrated Query que nous tenterons de parcourir dans un prochain post
Les méthodes d'extension vous permettront d'étendre : Les Types du .NET Framework Vos propres Types Une méthode d'extension peut uniquement être une procédure Sub ou Function . Vous ne pouvez pas définir une extension sur une propriété, un champ ou un événement. Les méthodes d'extension doivent être marquées de &quot; <Extension()> &quot; appartenant à l'espace de nom : &quot; System.Runtime.CompilerServices &quot;
Types Valeur peuvent être étendus afin d'accepter une valeur normale ou une valeur Null
http://msdn2.microsoft.com/en-us/library/bb531253(VS.90).aspx http://msdn2.microsoft.com/en-us/library/ms364068(VS.80).aspx#vb9overview_topic8 Simplifications d'écriture des entêtes d'une méthode anonyme Permet d’écrire une fonction dans une expression et de récupérer un pointeur vers cette fonction Possibilité de récupérer un arbre d’expression http://blogs.developpeur.org/redo/archive/2008/02/04/nouveaut-s-vb-2008-vb-9-0-expressions-lambda.aspx
http://msdn2.microsoft.com/fr-fr/bb384460.aspx Visual Basic offre une prise en charge de LINQ to XML via les littéraux XML et les propriétés d'axe XML. Cela vous permet d'utiliser une syntaxe pratique et familière pour utiliser le XML dans votre code Visual Basic. Les littéraux XML vous permettent d'inclure directement du XML dans votre code. Les propriétés d'axe XML vous permettent d'accéder aux nœuds enfants, nœuds descendants et attributs d'un littéral XML
http://msdn2.microsoft.com/fr-fr/bb384460.aspx Visual Basic offre une prise en charge de LINQ to XML via les littéraux XML et les propriétés d'axe XML. Cela vous permet d'utiliser une syntaxe pratique et familière pour utiliser le XML dans votre code Visual Basic. Les littéraux XML vous permettent d'inclure directement du XML dans votre code. Les propriétés d'axe XML vous permettent d'accéder aux nœuds enfants, nœuds descendants et attributs d'un littéral XML
http://msdn2.microsoft.com/fr-fr/bb384460.aspx Visual Basic offre une prise en charge de LINQ to XML via les littéraux XML et les propriétés d'axe XML. Cela vous permet d'utiliser une syntaxe pratique et familière pour utiliser le XML dans votre code Visual Basic. Les littéraux XML vous permettent d'inclure directement du XML dans votre code. Les propriétés d'axe XML vous permettent d'accéder aux nœuds enfants, nœuds descendants et attributs d'un littéral XML
http://msdn2.microsoft.com/fr-fr/library/bb397951(VS.90).aspx Représente une expression sous forme d’arbre … AST (abstract syntax tree) http://en.wikipedia.org/wiki/Abstract_syntax_tree http://www.dotnetguru.org/articles/dossiers/creercompilo/compilateurdnet2.htm ( Lionel Laské ) Pourquoi construire un arbre ? Tout simplement parce que c'est la structure la plus simple à parcourir. Si chaque nœud correspond à un objet en mémoire: pour écrire un interpréteur il suffit d'évaluer chaque nœud en remontant pour trouver le résultat de l'expression et, pour écrire un compilateur il suffit d'utiliser un visiteur pour générer le code correspondant à chaque nœud Expression de la sémantique de la requête Traduction de cette sémantique et interprétation selon les sources Ex: conversion en SQL On ne définit plus la logique du code… Sa réalisation est faite par le fournisseur (MS)
More difficult; can be skipped if under time pressure Possible reference to CodeDOM as other representation mechanism for code “at runtime” and “as data”; other reference = AST (abstract syntax tree). Story of the lazy compiler: instead of generating executable IL code, it just returns you the intermediary tree-based code representation APIs take over the compiler’s job to do the rest of the compilation at runtime . Refer back to the LINQ to SQL sample from the beginning: we don’t need IL straight away (or the C# compiler would have to know how to work with System.Data.SqlClient and how to build SQL strings based on LINQ queries); instead we need some representation of the query that the LINQ to SQL library can consume in order to transform it into the corresponding SQL statement(s).
Friend assemblies: make the “Friend” members of an assembly visible to another assembly (e.g. expose internals of one assembly to an assembly that contains a debugger visualizer) Runtime agility: remember the need for a VB runtime library in (and pre-) .NET (Microsoft.VisualBasic.dll and previously MSVBVM**.dll)? Reduce footprint (e.g. Silverlight) = get rid of runtime of compile against another (custom) runtime Others are minor improvements