1 / 40

LAN303 Ce qu’il ne fallait pas rater depuis .Net 2.0

LAN303 Ce qu’il ne fallait pas rater depuis .Net 2.0. Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF. Idée générale de la session. Donner des outils aux développeurs en mode projet applicables sans changer de technologie applicative Gagner en productivité

hector
Download Presentation

LAN303 Ce qu’il ne fallait pas rater depuis .Net 2.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LAN303Ce qu’il ne fallait pas rater depuis .Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

  2. Idée générale de la session • Donner des outils aux développeurs en mode projet applicables sans changer de technologie applicative • Gagner en productivité • Liste totalement arbitraire (et non exhaustive) de sujets choisis par nous • 1h c’est peu !!

  3. Déroulement de chaque sujet • Cas d’application (Où et Quand) • Comment vous faites aujourd’hui (Quoi) • Comment ça s’utilise ? Démo (Comment) • Pourquoi c’est mieux (Pourquoi)

  4. Liste des sujets Code • Méthodes anonymes, lambdas • Les méthodes d’extension Requêtage et accès aux données • LINQ • Entity Framework Injection de dépendances • MEF (ManagedExtensibility Framework) Parallélisme et asynchronisme • TPL (TaskParallel Library) • Async / Await Outils de Dev / ALM • Le diagramme de couche (Explorateur d’architecture) • L’Extension Manager Maquettage d’applications • SketchFlow

  5. Les méthodes anonymes et expressions lambda Où et Quand ? • Ecriture et utilisation de delegués • Sur la gestion de mes évènements Comment je faisais avant: • Création d’une méthode qui correspond a la signature de l’événement • Abonnement

  6. Démo Méthodes anonymes et expressions lambda

  7. Les méthodes anonymes et expressions lambda Pourquoi c’est mieux: • Simplification de l’utilisation des délégués • Moins de code • Meilleure lisibilité • Utilisation de variables dans la portée de la méthode appelante

  8. Méthodes d’extension Où et Quand: Je veux ajouter du comportement à une classe Foo ou une interface IFoo que: • Je ne peux pas modifier car je n’ai pas les sources (ex : la classe String) • J’ai les sources, mais je ne veux pas sortir une nouvelle version de l’assemblie (ex: appli. déjà installée chez les clients, problématique de versionnement)

  9. Méthodes d’Extension Comment je faisais avant ? • Je créais une méthode statique qui prenait en paramètre une instance de Foo • Je crée une nouvelle classe qui hérite de Foo (si pas sealed !) • Je complète Foo si déclaré en partial • Avec une méthode d’extension ? • Méthode statique dans une classe statique qui étend Foo/IFoo

  10. Démo Méthodes d’extension : Etendre le type int Etendre l’interface IList<T>

  11. Méthodes d’Extension Pourquoi c’est mieux ? • Intellisense sur Foo • Permet de compléter une classe dont je n’ai pas les sources, qu’elle soit partial ou non, sealed ou non • Fonctionne sur les interfaces • Permet de se créer une bibliothèque perso qui étend les types système qu’on réutilise régulièrement dans les projets : Caisse à Outils

  12. LINQ Où et Quand: • Lorsque je manipule des collections de données au sens large (Objets, Base de données, XML…) Comment je faisais avant: • 1 type de source de données = 1 syntaxe (SQL, XPath, Listes d’objets…)

  13. LINQ var q = from x in y where x > nselect x Providers Objets SQL XML Entities …

  14. Démo LINQ

  15. LINQ Pourquoi c’est mieux : • Langage de requêtageunifié • 1 seule syntaxe pour requêter différentes sources • Objets, SQL, Entityou tout autre « provider » • Filtrage des données à la source

  16. Entity Framework Où et Quand ? • Conception d’une couche d’accès aux données • Mappeur Objet / Relationnel (ORM) Comment je faisais avant: • Utilisation de provider d’accès aux données • Ecriture des requêtes SQL depuis .NET (mappingObjet / base de données)

  17. Entity Framework Base de données Entitées Mapping A A B B C C

  18. Entity Framework Base de données Entitées Mapping A A B D C C

  19. Démo Entity Framework

  20. Entity Framework Pourquoi c’est mieux : • Plus de SQL à écrire !!! • Abstraction par rapport au provider de BD et par rapport au schéma de la base • Basé sur LINQ • Meilleur lisibilité / maintenabilité • Meilleur productivité (intellisense) • Modification du mapping possible sans recompilation • Très bien intégré dans Visual Studio: clic, clic, clic 

  21. ManagedExtensibility Framework : La théorie Quand ? • Développement par composant (plug-in) • Quand je veux pouvoir compléter mon application a posteriori sans la recompiler Comment je faisais avant ? • Instanciation dynamique : Assembly.Load, CreateInstance, Activator,…

  22. MEF : Compléter les actions d’un robot IRobot.dll • IAction • string Nom • Action DoIt() Robot.dll MyRobot Reculer Avancer AddOn2.dll AddOn.dll Tourner Faire le café Serrer le main

  23. Démo MEF : compléter les actions possibles pour un robot

  24. MEF • Pourquoi c’est mieux ? • Mécanisme d’Injection de dépendances • Développement Orienté plug-in • Couplage faible • Détermine les classes à instancier manuellement, par configuration ou automatiquement • Permet de compléter une application existante sans la recompiler, par simple apport de dll

  25. TaskParallel Library • Où Quand ? • Exécuter du code en parallèle • Pour répartir la charge sur plusieurs processeurs • Pour libérer le thread du dispatcher : UI réactive • Comme je faisais avant : • Threads, synchronisation • Avec la TPL : • Mécanisme de gestion et de synchronisation de tâches

  26. Démo TPL : Exécuter 3 tâches en //

  27. TPL • Pourquoi c’est mieux ? • On exploite au maximum les machines multi-cores • Libère le thread de l’UI : interface plus réactive • Mécanisme de gestion et de synchronisation de tâches • Extensions parallèles et synchrones avec PLinq, Parallel.ForEach, …

  28. Diagramme de couche Où et Quand ? • Comprendre rapidement une architecture • Maintient d’une architecture cohérente Comment je faisais avant ? • Création de document d’architecture sur outils tiers • Revue de code pour validation le bon respect Quoi et pourquoi ? • Explorateur d’architecture: comprendre • Diagramme de couche: garantir

  29. Démo Analyse de l’architecture d’une application

  30. Diagramme de couche Pourquoi c’est mieux : • Complétement intégré dans Visual Studio 2010 Ultimate • Validation en continue à la compilation et lors de l’intégration continue

  31. Extensions Manager Où et Quand ? • Adapter l’utilisation de l’IDE à mes besoins • Utilisation de modèles et composants tiers Comment je faisais avant ? • Recherche sur forum / blogs pour trouver les meilleurs Addin • Veille technologique pour les mises à jour de chacun Quoi et pourquoi ? • Le gestionnaire d’extensions de Visual Studio 2010 • Trouver simplement les Addins pertinents • Installation / mise à jour / suppression rapide d’addins

  32. Démo Visual Studio 2010 Productivity Tools

  33. SketchFlow : Théorie 1/2 • Quand : Maquettage pour validation avec le client (ou marketing) • Comment je faisais avant : • Je commence à coder l’application en mode jetable pour avoir qq chose de montrable rapidement (mais je ne la jette jamais et ça devient la base de mon projet ) • Je m’arrête aux diagrammes UML (use cases, diagrammes de séquence, d’activité) dans le meilleur des cas : pas parlant pour le client ou le marketing • J’utilise Powerpoint, Paint, …

  34. Démo SketchFlow (Blend 3, 4)

  35. SketchFlow : Théorie 2/2 • Pourquoi c’est mieux ? • Outil dédié au maquettage : résultat rapide, mock pour les jeux de données • Pas de branding : le client se concentre sur le déroulement des écrans et l’aspect fonctionnel • Annotations et Versionnement • Interaction avec TFS et Sharepoint • Pensé pour WPF, Silverlight mais pas que…

  36. Récapitulatif

  37. Les liens utiles • EntityFramework : http://bit.ly/dWiKro • MEF : http://mef.codeplex.com/ • TPL : http://parallelpatterns.codeplex.com/ Nos Blogs : http://blogs.msdn.com/stephe http://blogs.developpeurs.org/azra

  38. MSDN et TechNet: l’essentiel des ressources techniques à portée de clic • Portail administration et infrastructure pour informaticiens • Portail de ressources technique pour développeurs http://technet.com http://msdn.com

More Related