2. Agenda Rappel Evolutions du .NET Fx et de son IDE 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 Q&A
3. De 2002 à 2009 Source : http://www.danielmoth.com/Blog/2007/06/visual-studio-2008-stack.html
6. VB 10.0, objectifs de conception ! Convergence avec C# : Multiline et Sub lambda AutoImplementedProperties Collection Initializer … Dorénavant toute nouveauté C# sera également une nouveauté VB et inversement… .NET 4.0 Inclusion de la DLR Inclusion du « ParallelFX » : AsParallel() Ajout de nouvelles fonctionnalités No-PIA Suppression du underscore _ Interop avec les langages dynamiques
8. 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
9. démos Inférence de type Initialisation d’objets simplifiée Expressions Lambda … Des nouveautés VB 9.0 aux nouveautés de VB 10.0 !
10. Nouveautés de VB 10.0 Expression Lambda Multi-lignes, Sub Lambda et 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 PrimaryInteropAssemblies
11. 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 !
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 de code 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 %>
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 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. Syntaxe simplifiée des Array Syntaxe simplifiée de déclaration de tableauxbasée sur l'inférence de Type (Introduit dans VB9.0) : Y compris pour les tableaux multidimensionnels :
19. Paramètres Optionnels Nullables Les paramètres optionnels peuvent être De type Nullable Initialisé avec une valeur par défaut
21. 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.
22. Compiler sans les PIAs PIA pour PrimaryInterropAssembly : 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 « EmbedInterrop 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
23. Nouveautés de Visual Basic 2010Une co-évolution des langages VB et C# ! Nouveautés de VB10.0 : Expression Lambda Multi-lignes, Sub Lambda et 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 PIAs Téléchargez la CTP de Visual Studio 2010 Testezdèsmaintenant Visual Basic 2010
26. PIA Interop sur WMP Lib 314Ko With « EmbedInterop = True » :
Notes de l'éditeur
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-.NETVB 8.0 = GenericsVB 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.
Demos : Inférence de type, Init.D’objetsimplifié et expressions lambda !
Demos : Inférence de type, Init.D’objetsimplifié et expressions lambda !