22 Nouveautés de Visual Basic 2010 et les trucs et astuces de son IDE Sébastien Warin R&I Technical Lead Wygwam Microsoft MSP & MCPD Grégory Renard CTO Wygwam– R&I Manager Usilink Microsoft Regional Director & MVP
Wygwam Paris Wygwam Nord Wygwam Belux Wygwam Suisse
44 Agenda Rappel Evolutions de l'environnement.NET Vue d'ensemble des innovations de VB 10.0 Historique de Visual Basic Objectifs de conception de VB 10.0 Innovations de VB 10.0 Parcours de nouveautés du langage VB 10.0 Rappel des nouveautés de VB 9.0 Nouveautés de VB 10.0 Trucs et Astuces de l'IDE VB2010 en trame de fond ! Q&A
55 De 2002 à Visual StudioVS.NET 2002VS.NET 2003VS2005VS Extensions VS2008VS 2010 LangageVB.NET v7.0 C# v1.0 VB.NET v7.1 C# v1.2 VB.NET v8.0 C# v2.0 VB.NET v8.0 C# v2.0 VB.NET v9.0 C# v3.0 VB.NET v10.0 C# v4.0 Framework.NET 1.0.NET 1.1.NET 2.0.NET 3.0.NET 3.5.NET 4.0 CLRCLR v1.0CLR v1.1CLR v2.0 CLR v4.0
66 Visual Basic 10.0 : Vue d’ensemble des innovations
77 Visual Basic, son Historique !
88 VB 10.0, objectifs de conception ! Convergence avec C# : Multiline et Sub lambda AutoImplemented Properties Collection Initializer … Dorénavant toute nouveauté C# sera également une nouveauté VB et inversement….NET 4.0 Inclusion de la DLR : support du « dynamique » Inclusion du « ParallelFX » : exploitez le multi-coeur Ajout de nouvelles fonctionnalités No-PIA Suppression du underscore _ Interop avec les langages dynamiques
99 Visual Basic 10.0 : Des nouveautés de VB 9.0 à VB 10.0…
10 Rappel Nouveautés VB 9.0 Inférence de Type Initialisation d’objets simplifiée Types Anonymes Méthodes d’Extension Expressions Lambda Délégués non Stricts Types Valeur Nullables Support XML Méthodes Partielles
11 Démo … VB2010 Sub-lambda Continuation implicite de ligne Auto-implémentation de propriétés Initialisation de collection simplifiée … Trucs et Astuces de Visual Studio 2010 …
12 Sub Lambda En VB9 : une expression lambda devait forcement renvoyer une valeur (Function). En VB10 : Une expressions lambda de type Sub, qui ne renvoit rien !
13 Sub Lambda Mono-Ligne En VB 10.0 : Possibilité de faire une expression lambda de type Sub sur une seule ligne de code !
14 Continuation implicite de ligne Les underscores pour les retours à la ligne deviennent implicites Le underscore devient ainsi implicite dans les cas suivants : Après un attribut Après une virgule Après un point (i.e. for method invocation) Après un opérateur binaire Après une clause de requête LINQ Après (, {, or <%= Avant ), }, or %>
15 Auto-implémentation des propriétés 1/2 En VB 9.0 : Déclaration d’une propriété En VB 10 :
16 Auto-implémentation des propriétés 2/2 Initialisez une valeur par défaut : Instanciez automatiquement un objet : Combinez avec l’initialisation d’objet simplifié de VB 9.0 :
17 Initialisation de collections simplifiée With En VB 9.0 : « With » Initialisation d'Objet simplifiée grâce au mot clé With ! En VB 10 : « From » Initialisation de collection simplifiée grâce au mot clé From !
18 Démo … VB2010 Expression lambda explicitement typée Syntaxe simplifiée des Array Paramètre optionnel nullable Générique Variance, Co- et Contra- variance Interrop PIA : Embed Interrop Types …
19 Expression Lambda Multi-lignes Rappel VB 9.0: Une expression lambda est une fonction ne possédant pas de nom permettant de calculer et retourner une valeur unique. Les expressions lambda peuvent être utilisées chaque fois qu'un type délégué est valide En VB 10.0 : Ecrivez vos expressions lambda sur plusieurs lignes !
20 Syntaxe simplifiée des Array Syntaxe simplifiée de déclaration de tableaux basée sur l'inférence de Type (Introduit dans VB9.0) : Y compris pour les tableaux multidimensionnels :
21 Paramètres Optionnels Nullables Les paramètres optionnels peuvent être De type Nullable Initialisé avec une valeur par défaut
22 Générique Variance, Covariance, Contravariance Générique Variance Covariance Contravariance
23 Interop avec les Dynamic Langage API permettant l’utilisation de langage dynamique basée sur le DRL comme IronPython/IronRuby depuis VB 10.0 !! Ces objets seront reconnus comme des IDynamicObject.
24 Compiler sans les PIAs PIA pour Primary Interrop Assembly : Assembly généré pour faire le point entre monde.NET et COM (ex: API Office). Une nouvelle propriété de type booléen nommée « Embed Interrop Types » Permet de ne générer le Wrapper seulement pour les méthodes que nous utilisions dans notre programme.NET. Génération de “Types Locaux” Permettant d’exécuter directement les appels d’interopérabilité aux librairies COM
25 En bref : "Nouveautés de VB 10.0" Expression Lambda Multi-lignes Sub Lambda Sub Lambdas mono-ligne Continuation implicite de ligne de code Auto-implémentation des propriétés Initialisation de collections simplifiée Syntaxe simplifiée des Array Paramètres Optionnels Nullables Générique Variance, Covariance, Contravariance Interopérabilité avec les langages dynamiques Compiler sans les Primary Interop Assemblies
26 IDE VB2010 : Productivité !!!
27 IDE VB2010 modernisé Start Page Nouveau look & feel “Pin” et suppression d‘élément dans les “Recent Projects” “Close page after project load” Nouvel fenêtre d’ajout de projet et d’élément Tri des templates Recherche de templates (Ctrl + E) Extension manager & package VSIX Rechercher et installer des extensions très facilement (Tools Extension Manager)
28 IDE VB2010 modernisé Support du Multi-monitor Déplacer/Docker fenetre volante (Win + ) Docker/Undocker onglet (Ctrl + Double Click) Nouvel éditeur WPF Zoom In/Out (Ctrl + mouse scroll) Extensible (ex : logo Wygwam, ca sert à rien mais c’est sympa )
29 Mais encore … Meilleure compréhension haut niveau Architecture Explorer Sequence Diagram Dependency Hierarchy Meilleure compréhension du source Call hierarchy Next/Previous Method (Ctrl + Up/Down) Highlight References (Ctrl + Shift + Up/Down) Hide selection (Ctrl + M, H) Stop hiding selection (Ctrl + M, U) Meilleure compréhension durant le debugging IntelliTrace™ “Pin-able” data tips
30 Votre Productivité en VB2010 Optimiser vos développement ! IntelliSense Suggestion Mode (Ctrl + Alt + Space) Generate From Usage Optimiser l'expérience à l'écriture de code ! Smart Tags (Ctrl +.) Code Snippets (Ctrl + K, X) IntelliSense Filtering (Substring and Camel Case) Multi-line Editing (Alt + Up/Down -or- Alt + Mouse Up/Down) Navigation rapide : Navigate To (Ctrl +,) Divers Multi-targeting revu Ajout de référence par défaut sur onglet « projet » Génération en cache pour.NET et COM
31 Vos questions …