40

2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

Embed Size (px)

Citation preview

Page 1: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF
Page 2: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

2

LAN303

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

Stéphanie Hertrich – MicrosoftFlorent Santin – Access It IDF

Page 3: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

3

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 !!

Page 4: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

4

Déroulement de chaque sujet

1.Cas d’application (Où et Quand)

2.Comment vous faites aujourd’hui (Quoi)

3.Comment ça s’utilise ? Démo (Comment)

4.Pourquoi c’est mieux (Pourquoi)

Page 5: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

5

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 (Managed Extensibility Framework)

Parallélisme et asynchronisme• TPL (Task Parallel Library)• Async / Await

Outils de Dev / ALM• Le diagramme de couche (Explorateur d’architecture)• L’Extension Manager

Maquettage d’applications• SketchFlow

Page 6: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

6

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

Page 7: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

7

DémoMéthodes anonymes et expressions lambda

Page 8: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

8

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

Page 9: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

9

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)

Page 10: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

10

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

Page 11: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

11

DémoMéthodes d’extension : - Etendre le type int- Etendre l’interface IList<T>

Page 12: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

12

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

Page 13: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

13

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…)

Page 14: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

14

LINQ

Providers

var q = from x in ywhere x > n

select x

Objets SQL XML Entities …

Page 15: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

15

DémoLINQ

Page 16: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

16

LINQ

Pourquoi c’est mieux :• Langage de requêtage unifié• 1 seule syntaxe pour requêter différentes

sources• Objets, SQL, Entity ou tout autre « provider »• Filtrage des données à la source

Page 17: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

17

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

(mapping Objet / base de données)

Page 18: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

18

Entity Framework

Base de donnéesEntitées

A

B

C

A

B

C

Mapping

Page 19: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

19

Entity Framework

Base de donnéesEntitées

A

B

C

A

DC

Mapping

Page 20: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

20

DémoEntity Framework

Page 21: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

21

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

Page 22: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

22

Managed Extensibility 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,…

Page 23: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

23

IRobot.dll

AddOn2.dll AddOn.dll

Robot.dll

MEF : Compléter les actions d’un robot

IAction• string Nom• Action DoIt()

MyRobotReculer Avancer

Tourner

Serrer le main

Faire le café

Page 24: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

24

DémoMEF : compléter les actions possibles pour un robot

Page 25: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

25

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

Page 26: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

26

Task Parallel 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

Page 27: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

27

DémoTPL : Exécuter 3 tâches en //

Page 28: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

28

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, …

Page 29: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

29

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

Page 30: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

30

DémoAnalyse de l’architecture d’une application

Page 31: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

31

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

Page 32: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

32

Extensions ManagerOù 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

Page 33: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

33

DémoVisual Studio 2010 Productivity Tools

Page 34: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

36

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, …

Page 35: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

37

DémoSketchFlow (Blend 3, 4)

Page 36: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

38

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…

Page 37: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

39

RécapitulatifSujet Catégorie A partir de UtilisationMéthodes anonymes, lambdas

Code .Net 2.0.Net 3.0, Silverlight

C#

Les méthodes d’extension Code .Net 3.5Silverlight

C#, VB.Net

LINQ Accès aux données .Net 3.5Silverlight

C#, VB.Net

Entity Framework Accès aux données .Net 3.5 SP1Silverlight RIA

C#, VB.Net

MEF Code .Net 4, Silverlight 4(3.5)

C#, VB.Net

TPL Multi-Tâche .Net 4 (3.5)Silverlight

C#, VB.Net

Le diagramme de couche (Explorateur d’architecture)

ALM VStudio 2010 VStudio 2010

L’Extension Manager Divers VStudio 2010 VStudio 2010

SketchFlow Maquettage Blend 3 Blend

Page 38: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

40

Les liens utiles

• Entity Framework : http://bit.ly/dWiKro• MEF : http://mef.codeplex.com/• TPL : http://parallelpatterns.codeplex.com/

Nos Blogs : http://blogs.msdn.com/stephehttp://blogs.developpeurs.org/azra

Page 39: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF

41

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs

Page 40: 2 LAN303 Ce quil ne fallait pas rater depuis.Net 2.0 Stéphanie Hertrich – Microsoft Florent Santin – Access It IDF