Visual Basic 9.0 – Visual Studio 2008Quoi de neuf ?<br />Pascal Belaud<br />Développeur Evangeliste<br />Pascal.Belaud@mic...
Agenda de la session<br />Rappel<br />Evolutions du .NET Fx et de son IDE<br />Vue d&apos;ensemble des innovations de VB 9...
Rappel<br />Evolutions du .NET Fx et de son IDE<br />
De 2002 à 2008<br />Source : http://www.danielmoth.com/Blog/2007/06/visual-studio-2008-stack.html<br />
De 2002 à 2008<br />
Visual Basic 9.0 <br />Vue d’ensemble des innovations<br />
Visual Basic, son Historique !<br />
VB 9.0, objectifs de conception !<br />Intégration forte de :<br />L’objet<br />Des données relationnelles<br />Du XML<br ...
VB 9.0, ses Innovations !<br />Query expressions<br />Dim contacts =<br />From c In customers<br />Where c.State= &quot;WA...
Visual Basic 9.0 <br />Des nouveautés de VB 8.0 à VB 9.0…<br />
Rappel sur VB 8.0<br />Générics<br />Suppression du boxing/unboxing<br />Suppression du Casting implicite<br />Gestion de ...
Mais aussi …<br />My<br />Surcharge des opérateurs<br />IsNot<br />Using<br />Types Entiers non signés<br />Etat continue<...
Démos<br /><ul><li> Inférence de Type
 Initialisation d’objets simplifiée
 Types Anonymes
 Méthodes d’Extension
 Délégués non Stricts
 Types Valeur Nullables
 Expressions Lambda
 Support XML
 Méthodes Partielles</li></li></ul><li>Inférence de Type<br />Déduction du type de sortie d&apos;une fonction paranalyse d...
Initialisation d’objets simplifiée<br />Syntaxesimplifiée<br />Mot clé “ With ”<br />Initialisation d’objet avec un type n...
Types Anonymes<br />Création d’objets sans écrire de définition de classe pour le type de données<br />le compilateur se c...
Types Anonymes : « Key »<br />Le mot clé Key vous permet de spécifier le comportement des propriétés des types anonymes. <...
Méthodes d’Extension<br />Permettent l’ajout de fonctionnalité personnalisées aux types de données déjà définis sans créer...
Conversion simplifiée des déléguées<br />Permet d&apos;assigner des méthodes (subs, fonctions) aux délégués ou aux gestion...
Types Valeur Nullables<br />Types Valeur peuvent être étendus afin d&apos;accepter une valeur normale ou une valeur « Null...
Expressions Lambda<br />Une fonction ne possédant pas de nom  permettant de calculer et retourner une valeur unique. <br /...
Support étendu d’XML (1/3)<br />Visual Basic, au travers de LINQ to XML, permet un support étendu de l&apos;XML grâce  aux...
Support étendu d’XML (2/3)<br />Propriétés d&apos;Axe XML : <br />permettant d&apos;accéder aux structures LINQ to XML et ...
Support étendu d’XML (3/3)<br />Gestion des Espaces de Noms XML : <br />Spécifier un &quot;Alias&quot; afin d&apos;identif...
Arbres d’expression (1/3)<br />Représente une expression sous forme d’arbre<br />AST : Abstract SyntaxTree<br />ASG : Abst...
Prochain SlideShare
Chargement dans…5
×

Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0

811 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
811
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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-.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.
  • Similar story as with C# 3.0 but abbrev’d.
  • Réf : http://www.dotnetguru.org/articles/dossiers/generics/CS2_Generics_FR2.htm
  • Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0

    1. 1. Visual Basic 9.0 – Visual Studio 2008Quoi de neuf ?<br />Pascal Belaud<br />Développeur Evangeliste<br />Pascal.Belaud@microsoft.com<br />http://blogs.msdn.com/pascal/<br />Microsoft France<br />Grégory RENARD<br />CTO – MVP – RegionalDirector<br />gregory@wygwam.com<br />http://blogs.developpeur.org/redo<br />Wygwam<br />
    2. 2. Agenda de la session<br />Rappel<br />Evolutions du .NET Fx et de son IDE<br />Vue d&apos;ensemble des innovations de VB 9.0<br />Historique de Visual Basic<br />Objectifs de conception de VB 9.0<br />Innovations de VB 9.0<br />Parcours de nouveautés du langage VB 9.0<br />Rappel des nouveautés de VB 8.0<br />Nouveautés de VB 9.0<br />
    3. 3.
    4. 4. Rappel<br />Evolutions du .NET Fx et de son IDE<br />
    5. 5. De 2002 à 2008<br />Source : http://www.danielmoth.com/Blog/2007/06/visual-studio-2008-stack.html<br />
    6. 6. De 2002 à 2008<br />
    7. 7. Visual Basic 9.0 <br />Vue d’ensemble des innovations<br />
    8. 8. Visual Basic, son Historique !<br />
    9. 9. VB 9.0, objectifs de conception !<br />Intégration forte de :<br />L’objet<br />Des données relationnelles<br />Du XML<br /> … Linq, query expressions, support du xml … <br />Ameliorations du langage<br />Sur les tâches courantes : déclaration simplifiée d’objets, délégués non stricts, Inférence de type, …<br />Ajout de nouvellesfonctionnalités<br />Lambda expressions<br />Méthodesd’extensions<br />…<br />
    10. 10. VB 9.0, ses Innovations !<br />Query expressions<br />Dim contacts =<br />From c In customers<br />Where c.State= &quot;WA&quot;<br />Select New With { Name = c.Name, _ Phone = c.Phone }<br />Types ValeurNullable<br />Arbresd’expressions<br />Types implicites<br />Support de l’XML<br />Expressions Lambda<br />Dim contacts =<br />customers _<br /> .Where(Function(c) c.State = &quot;WA&quot;) _<br /> .Select(Function(c) New With { Name = c.Name, _ Phone = c.Phone })<br />MéthodesPartielles<br />Méthodesd’extension<br />Types anonymes<br />Initialisationd’objets<br />
    11. 11. Visual Basic 9.0 <br />Des nouveautés de VB 8.0 à VB 9.0…<br />
    12. 12. Rappel sur VB 8.0<br />Générics<br />Suppression du boxing/unboxing<br />Suppression du Casting implicite<br />Gestion de l’erreur lors de la compilation<br />Meilleure lisibilité du code<br />Meilleures performances<br />Classes Partielles<br />Définition d’une classe sur plusieurs fichiers<br />Utilité dans la génération de code<br />Exploité par les Winforms et Webforms<br />
    13. 13. Mais aussi …<br />My<br />Surcharge des opérateurs<br />IsNot<br />Using<br />Types Entiers non signés<br />Etat continue<br />
    14. 14. Démos<br /><ul><li> Inférence de Type
    15. 15. Initialisation d’objets simplifiée
    16. 16. Types Anonymes
    17. 17. Méthodes d’Extension
    18. 18. Délégués non Stricts
    19. 19. Types Valeur Nullables
    20. 20. Expressions Lambda
    21. 21. Support XML
    22. 22. Méthodes Partielles</li></li></ul><li>Inférence de Type<br />Déduction du type de sortie d&apos;une fonction paranalyse des types fournis en entrées ainsi que des opérations effectuées sur ceux-ci<br />Option Infer On (valeur par défaut)<br />Dim « maVar » = « maValeur »<br />Fortement Typé, directement initialisée<br />http://blogs.developpeur.org/redo/archive/2008/01/27/nouveaut-s-vb-2008-vb-9-0-l-inf-rence-de-type.aspx<br />
    23. 23. Initialisation d’objets simplifiée<br />Syntaxesimplifiée<br />Mot clé “ With ”<br />Initialisation d’objet avec un type nullable engendrera un compile time error !<br />http://blogs.developpeur.org/redo/archive/2008/01/28/nouveaut-s-vb-2008-vb-9-0-initialisation-d-objets-simplifi-e.aspx<br />
    24. 24. Types Anonymes<br />Création d’objets sans écrire de définition de classe pour le type de données<br />le compilateur se charge de générer une classe<br />Repose sur <br />l’initialisation d’objets<br />inférence de Types<br />IntelliSense© disponible<br />Exploitée dans les projections de LINQ (Select)<br />http://blogs.developpeur.org/redo/archive/2008/01/29/nouveaut-s-vb-2008-vb-9-0-types-anonymes.aspx<br />
    25. 25. Types Anonymes : « Key »<br />Le mot clé Key vous permet de spécifier le comportement des propriétés des types anonymes. <br />Les propriétés « Key » participent aux tests d&apos;égalité et aux calculs de valeurs de code de hachage. <br />Les valeurs des propriétés de clé ne peuvent pas être modifiées<br />http://blogs.developpeur.org/redo/archive/2008/01/29/nouveaut-s-vb-2008-vb-9-0-types-anonymes.aspx<br />
    26. 26. Méthodes d’Extension<br />Permettent l’ajout de fonctionnalité personnalisées aux types de données déjà définis sans créer de type dérivé<br />Permet d’étendre<br />Les Types du .NET Framework<br />Vos propres Types<br />Uniquement : Sub ou Function<br />Doit être marqué de &lt;Extension()&gt;<br />System.Runtime.CompilerServices<br />http://blogs.developpeur.org/redo/archive/2008/01/30/nouveaut-s-vb-2008-vb-9-0-les-m-thodes-d-extension.aspx<br />
    27. 27. Conversion simplifiée des déléguées<br />Permet d&apos;assigner des méthodes (subs, fonctions) aux délégués ou aux gestionnaires lorsque les signatures (paramètres) ne sont pas identiques<br />Encore appelé : <br />Délégués Non Stricts<br />RelaxedDelegates<br />Vraie relaxation : les paramètres ne sont pas obligatoires, vous pouvez ne pas les utiliser !<br />http://blogs.developpeur.org/redo/archive/2008/01/31/nouveaute-vb-2008-vb-9-0-conversion-simplifiee-des-delegues-non-stricts-relaxed-delegates.aspx<br />
    28. 28. Types Valeur Nullables<br />Types Valeur peuvent être étendus afin d&apos;accepter une valeur normale ou une valeur « Null »<br />Syntaxe : « T? »<br />Uniquement pour les Types Valeur<br />HasValue / Value<br />Lèveuneexception Nothing”<br />http://blogs.developpeur.org/redo/archive/2008/02/01/nouveaut-s-vb-2008-vb-9-0-types-valeur-nullables.aspx<br />
    29. 29. Expressions Lambda<br />Une fonction ne possédant pas de nom permettant de calculer et retourner une valeur unique. <br />Lambda opérateur « Function »<br />Se lit « Function(myNum As Integer) conduit à myNum + 1 »<br />Utilisable chaque fois qu&apos;un type délégué est valide.<br />Simplifications les entêtes d&apos;une méthode anonyme<br />Fonction dans une expression récupérant le pointeur vers cette fonction (Possibilité de récupérer un arbre d’expression)<br />http://blogs.developpeur.org/redo/archive/2008/02/04/nouveaut-s-vb-2008-vb-9-0-expressions-lambda.aspx<br />
    30. 30. Support étendu d’XML (1/3)<br />Visual Basic, au travers de LINQ to XML, permet un support étendu de l&apos;XML grâce aux Littéraux XML et aux Propriétés d’Axes XML<br />Littéraux XML <br />d&apos;incorporer directement du XML à votre code VB<br />Objets LINQ to XML<br />Namespace : «System.Xml.Linq»<br />Similaire à la syntaxe XML 1.0 mais pas identique<br />Expressions Littérales XML <br />http://blogs.developpeur.org/redo/archive/2008/02/04/nouveaut-s-vb-2008-vb-9-0-expressions-lambda.aspx<br />
    31. 31. Support étendu d’XML (2/3)<br />Propriétés d&apos;Axe XML : <br />permettant d&apos;accéder aux structures LINQ to XML et les parcourir.  <br />Permet d&apos;accéder aux nœuds enfants, nœuds descendants et attributs d&apos;un littéral XML<br />Types d’Axes :<br />axe enfant :  xml.&lt;phone&gt;<br />axe d&apos;attribut : xml.@NomAttribut<br />axe descendant : xml...&lt;NomElement&gt;<br />indexeur d&apos;extension : xml...&lt;NomElement&gt;(0) <br />valeur : xml...&lt;NomElement&gt;.Value<br />
    32. 32. Support étendu d’XML (3/3)<br />Gestion des Espaces de Noms XML : <br />Spécifier un &quot;Alias&quot; afin d&apos;identifier un espace de noms XML <br />Permet d&apos;accéder :<br />aux nœuds enfants, <br />nœuds descendants, <br />attributs d&apos;un littéral XML<br />
    33. 33. Arbres d’expression (1/3)<br />Représente une expression sous forme d’arbre<br />AST : Abstract SyntaxTree<br />ASG : Abstract Semantic Graph<br />Un arbre syntaxique est la représentation en mémoire d&apos;un ensemble d&apos;éléments de notre langage<br />res = n * (n - 1);<br />Sources : http://www.dotnetguru.org/articles/dossiers/creercompilo/compilateurdnet2.htm<br />
    34. 34. Arbres d’expression (2/3)<br />Traduction des expressions lambda :<br />Code IL<br />Abres d’expression (= code as data)<br />Peut être analysé au Runtime<br />Utilisé dans les LINQ query providers (LINQ to SQL)<br />Dim sq As Func(Of Integer, Integer) = Function(i) i * iDim four = sq (2)Dim e As Expression(Of Func(Of Integer, Integer)) _ = Function(i) i * i<br />λ<br />*<br />i<br />i<br />i<br />
    35. 35. Arbres d’expression (3/3)<br />Une expression représente l’arbre d’objets qui représente l’expression passée en argument<br />
    36. 36. Autres améliorations VB v 9.0<br />Friend assemblies<br />Attribut “VisibleTo”<br />Agilité du Runtime<br />Compile sans Microsoft.VisualBasic.dll<br />Origine de CF et Silverlight<br />Nouveau /vbruntime switch<br />Inférence de types générics améliorés<br />
    37. 37. Vos questions ?<br />http://blogs.developpeur.org/redo/archive/2008/02/04/nouveaut-s-vb-2008-vb-9-0-expressions-lambda.aspx<br />
    38. 38. Resources<br />Visual Basic Dev Center & Content:<br />http://msdn.com/vbasic/<br />VB Team Blog<br />http://blogs.msdn.com/vbteam/<br />Refactor! for Visual Basic & Web developers<br />http://msdn2.microsoft.com/en-us/vbasic/ms789083.aspx<br />Nous contacter :<br />Pascal.belaud@microsoft.com<br />Gregory@wygwam.com<br />
    39. 39. L’engagement Microsoft<br />pour les développeurs:<br />msdn.microsoft.com<br />La référence technique<br /> pour les IT Pros :<br />technet.microsoft.com<br />Visual Studio 2008 +<br />Abonnement MSDN Premium <br />Abonnement TechNet Plus :<br />Versions d’éval + 2 incidents support<br />S’informer- Un portail d’informations, des événements, une newsletter bimensuelle personnalisée<br />Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs<br />Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique<br />
    40. 40. Votre potentiel, notre passion TM <br />© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.<br />The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />

    ×