SlideShare une entreprise Scribd logo
1  sur  36
palais des
congrès
Paris




7, 8 et 9
février 2012
Vous êtes dans l’AMPHI BLEU
LAN208: Les nouveautés
du Framework .NET 4.5

7/02/2012 – 11H-12H
Roch BADUEL
Architecte
MCNEXT
MCNEXT

  Depuis 2007 - 150 Collaborateurs – Paris-Lyon-
                     Genève

   100 % Microsoft - 4 pôles d’expertises

      Dot Share
     NET Point
    Business
    Intelligence
                    Biz
    Microsoft      Talk
Objectifs



                                                 WCF, WPF, WF,
     Qu’est ce que      L’asynchrone au sein       ASP.NET
 Framework .NET 4.5 ?      du Framework




                                                     Pointeurs
           Démos, Démos, Démos                 Questions / Réponses
Le framework .NET 4.5
Rappel – Le framework .NET



    Entity
              ASP.                            Win     Work      And
   Frame-                  WCF      WPF
              NET                            Forms    Flow      more!
    work




             BCL
                                 CLR                   Profiling&
                                                     Debugging APIs

     JIT &         Garbage       Modèle de     Gestion       Loader &
     NGEN          Collector      sécurité    Exception       Binder
Versions de .NET

  .NET 4.5 est une mise à jour au dessus de .NET
  4
    Actuellement en preview

    Peut être inclus dans vos installeurs sur Win7,

     Win2K8, etc.
    Sera inclus dans les prochaines versions de

     Windows
    Pourra être installé avec Windows Update
                                 3.5

                                 3.0
                                             4.5
    .NET 1.0     .NET 1.1      .NET 2.0    .NET 4.0

     2002        2003       2005 - 2008    2010
L’asynchrone au sein du
framework
Modifications et
nouveautés
 Intégration dans le langage de async/await
 (Ex CTP)
 Extension des fonctionnalités sur les Tasks
 Introduction des DataFlow
 (Ex CTP)
 Rajout de méthodes Asynchrones (Renvoyant des Tasks)
Asynchrone ?

  Une tendance et une nécessité
  Eviter de bloquer le thread (notamment UI)
  Présent depuis le framework 1.0
  (BeginMethod, EndMethod)
  A évolué :
    Asynchronous Programming Model (APM)

    Event based Asynchronous Programming (EAP)

    Task based Asynchronous Programming (TAP : .NET

     4)
Asynchronous Programming
Model (APM)


  // Modèle .NET 1

  file.BeginRead(buffer, 0, maxLength, asyncResult => {

     int numBytesRead = file.EndRead(asyncResult);
     // faire quelque chose avec buffer

  }, null);
Event-based Asynchronous
Programming (EAP)

 //Modèle .NET 2

 webClient.DownloadStringCompleted += (sender,
 args) => {

      string html = args.Result;
      // Faire quelque chose avec html
 };

 webClient.DownloadStringAsync(new
 Uri("http://example.com"));
Task-based Asynchronous
Programming (TAP)
 Task<string> htmlTask =
 webClient.DownloadStringTaskAsync(url);


      string html = htmlTask.Result; // Sync
      (bloquant)

        htmlTask.ContinueWith(task => {
             string html = task.Result; // Async,
        C# 4
        });

         string html = await htmlTask; // Async,
         C# 5
Utilisation de async / await

 public
 Task CopyStreamToStream             (Stream source,
                                Stream destination)
 {
     byte[] buffer = new byte[0x1000];
     int numRead;

     while ((numRead =

        source.Read         (buffer, 0, buffer.Length)) != 0)
          {

 destination.Write        (buffer, 0, numRead);
         }
 }
DEMO

TAP / Async / Await
Les méthodes asynchrones

  Sont marquées avec le mot clé async
  Elles retournent soit void soit Task<T>
  Elles utilisent l’opérateur await
  Elles reprennent quand la méthode appelée par await a
  finie
  Elles s’executent dans le contexte de synchronisation de
  l’appelant
  Elles permettent d’écrire du code asynchrone de la même
  manière que du code synchrone
Méthodes rajoutées à Task
  Task.Run
  var result = await Task.Run(() => { … });

  Task.Delay
      await Task.Delay(5000);

  Task.WhenAll / WhenAny
      Composition

  Task.Yield
      await Task.Yield()

  Task.ContinueWith
DataFlow
Modèle de programmation
parallèle
  .NET 4
    On part des données et on met en place le traitement.

    Typiquement combinaison de Tasks



  Dans l’autre sens?
    On développe une chaine de traitement,

     puis on injecte des données
    Application typique : traitement en mode « pipeline »
TPL Dataflow

  System.Threading.Tasks.Dataflow.dll
  Les DataFlow sont constitués de Blocks
    Un block est un élément qui traite des messages

     depuis une file
    Les blocks peuvent être chainés pour effectuer des

     traitements complexes
       Réseau de Block
TPL Dataflow
Exemple de traitement simple


    var ab = new ActionBlock<int>(i =>
    {
                                       ActionBlock<int>
        Process(i);              Message Queue

    });
                                               Process(4);
                                               Process(3);
                                               Process(2);
                                               Process(1);
                                               Process(0);
    for(int i = 0; i < 5; i++)
    {
        ab.Post(i);
             4
             3
             2
             1
             0
    }
TPL Dataflow
Interconnecter les Blocks
       Les blocks peuvent être chainés pour implémenter des
        réseaux
       Exemple de Block :
          ActionBlock<T> : exécute un délégué

          TransformBlock<T1,T2>: convertie T1 vers T2

          BroadcastBlock<T> : permet de diffuser vers plusieurs blocks
           un message
          JoinBlock<T1,T2> : attend un élément de chaque entrée pour

           créer un message en sortie
DEMO

DataFlow
Plus d’infos sur TPL /
Parallélisme / DataFlow
  Articles d’Eric Vernie (Microsoft France DPE)
    Introduction à TPL DataFlow (VB ou C#)

        http://msdn.microsoft.com/fr-fr/vbasic/hh301105

        http://msdn.microsoft.com/fr-fr/vcsharp/hh301085




  Blog développement parallèle
    http://blogs.msdn.com/b/devpara/
Autres nouveautés “core”
+ de nouveautés
    Nouvelle API pour les applications consommant des
    service http
        System.Net.Http (HttpClient, HttpRequestMessage…)
    MEF (Managed Extensibility Framework)
        Support des types géneric
        La composition peut être basée sur des règles:
           Les attributs ne sont plus obligatoire

           Utilise RegistrationBuilder pour injecter des attributs
               ReflectionContext : expose des types « altérés »


 [Import(typeof(ICalculator))]            [Export(typeof(ICalculator))]
 public ICalculator calculator;           class MySimpleCalculator : ICalculator

    Portable library : Subset commun à .NET / WP /
    XBOX / SL
    Compatibilité binaire
WCF

 Contract First :
   Génération du service depuis le WSDL

    (svcutil /serviceContract)
 WSDL en un seul fichier : ?singleWSDL
     suppression des xsd:import
 Support des WebSocket : NetHttp(s)Binding
 Fichiers de configuration client simplifiés (pas les valeurs
 par défaut)
 Support d’UDP
 Paste XML as classes (VS)
 Add Service Reference pour les portable library
DEMO

WCF
Workflow

  Expressions C#
  State machines
  Service Contract First
  Performance
ASP.NET

  HTML5
  Démarrage plus rapide (multi-core JIT)
  WebSocket
  Asynchrone (HttpRequest / HttpResponse, Module /
  Handler)
  Externalisation du code de validation client dans un seul js
  externe.
  Javascript Bundling / minification
  Librairie Anti – Cross-Site-Scripting intégrée
WPF
 Ruban inclus dans .NET 4.5

 « NotifyPropertyChanged » sur les propriétés statiques
 (convention de nommage)
 Possibilité de modifier les collections « bindées » depuis un
 thread autre que UI
 Introduction de INotifyDataErrorInfo (SL) – validation synchrone
 / asynchrone
 Introduction de ICustomTypeProvider (SL5) – Binding sur des
 propriétés définies par code (ex: execution)
 Binding: Delay pour mise à jour de la source
 ItemsControl : performance en mode virtualisé sur des
 collections avec groupage
DEMO

WPF
Quelques sessions sur
VS11/NET 4.5
  Construire des applications parallèles avec Visual
  Studio 11 quoi de neuf ? (LAN210)

  WPF 4.5 : Quoi de neuf pour les développeurs ?
  (RDA105)

  Quoi de neuf dans ASP.NET 4.5 (RIA219)
Vous êtes dans l’AMPHI BLEU
Microsoft France
39, quai du président Roosevelt
  92130 Issy-Les-Moulineaux

 www.microsoft.com/france

Contenu connexe

Tendances

Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatiséJérémie Campari
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Ippon
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsAntoine Rey
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementMicrosoft
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Eric SIBER
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec SeleniumSOAT
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches SeleniumGreenIvory
 

Tendances (20)

Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
JavaFX et le JDK9
JavaFX et le JDK9JavaFX et le JDK9
JavaFX et le JDK9
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Maven
MavenMaven
Maven
 
Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)Spring Meetup Paris - Back to the basics of Spring (Boot)
Spring Meetup Paris - Back to the basics of Spring (Boot)
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 
20091008 Tests Interaces Web Riches Selenium
20091008   Tests Interaces Web Riches Selenium20091008   Tests Interaces Web Riches Selenium
20091008 Tests Interaces Web Riches Selenium
 
Spring & SpringBatch FR
Spring & SpringBatch FRSpring & SpringBatch FR
Spring & SpringBatch FR
 

Similaire à Les nouveautés du Framework .NET 4.5

Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlinangeeLee
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfHamdaneAbdelAzizHagg
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableChristophe Villeneuve
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 

Similaire à Les nouveautés du Framework .NET 4.5 (20)

Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Tour Horizont.Net
Tour Horizont.NetTour Horizont.Net
Tour Horizont.Net
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 
Alt.net spring.net
Alt.net spring.netAlt.net spring.net
Alt.net spring.net
 
Spring.NET
Spring.NETSpring.NET
Spring.NET
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Petals DSB - Current Status
Petals DSB - Current StatusPetals DSB - Current Status
Petals DSB - Current Status
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenable
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Les nouveautés du Framework .NET 4.5

  • 1. palais des congrès Paris 7, 8 et 9 février 2012
  • 2. Vous êtes dans l’AMPHI BLEU
  • 3. LAN208: Les nouveautés du Framework .NET 4.5 7/02/2012 – 11H-12H Roch BADUEL Architecte MCNEXT
  • 4. MCNEXT Depuis 2007 - 150 Collaborateurs – Paris-Lyon- Genève 100 % Microsoft - 4 pôles d’expertises Dot Share NET Point Business Intelligence Biz Microsoft Talk
  • 5. Objectifs WCF, WPF, WF, Qu’est ce que L’asynchrone au sein ASP.NET Framework .NET 4.5 ? du Framework Pointeurs Démos, Démos, Démos Questions / Réponses
  • 7. Rappel – Le framework .NET Entity ASP. Win Work And Frame- WCF WPF NET Forms Flow more! work BCL CLR Profiling& Debugging APIs JIT & Garbage Modèle de Gestion Loader & NGEN Collector sécurité Exception Binder
  • 8. Versions de .NET .NET 4.5 est une mise à jour au dessus de .NET 4  Actuellement en preview  Peut être inclus dans vos installeurs sur Win7, Win2K8, etc.  Sera inclus dans les prochaines versions de Windows  Pourra être installé avec Windows Update 3.5 3.0 4.5 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4.0 2002 2003 2005 - 2008 2010
  • 9. L’asynchrone au sein du framework
  • 10. Modifications et nouveautés Intégration dans le langage de async/await (Ex CTP) Extension des fonctionnalités sur les Tasks Introduction des DataFlow (Ex CTP) Rajout de méthodes Asynchrones (Renvoyant des Tasks)
  • 11. Asynchrone ? Une tendance et une nécessité Eviter de bloquer le thread (notamment UI) Présent depuis le framework 1.0 (BeginMethod, EndMethod) A évolué :  Asynchronous Programming Model (APM)  Event based Asynchronous Programming (EAP)  Task based Asynchronous Programming (TAP : .NET 4)
  • 12. Asynchronous Programming Model (APM) // Modèle .NET 1 file.BeginRead(buffer, 0, maxLength, asyncResult => { int numBytesRead = file.EndRead(asyncResult); // faire quelque chose avec buffer }, null);
  • 13. Event-based Asynchronous Programming (EAP) //Modèle .NET 2 webClient.DownloadStringCompleted += (sender, args) => { string html = args.Result; // Faire quelque chose avec html }; webClient.DownloadStringAsync(new Uri("http://example.com"));
  • 14. Task-based Asynchronous Programming (TAP) Task<string> htmlTask = webClient.DownloadStringTaskAsync(url); string html = htmlTask.Result; // Sync (bloquant) htmlTask.ContinueWith(task => { string html = task.Result; // Async, C# 4 }); string html = await htmlTask; // Async, C# 5
  • 15. Utilisation de async / await public Task CopyStreamToStream (Stream source, Stream destination) { byte[] buffer = new byte[0x1000]; int numRead; while ((numRead = source.Read (buffer, 0, buffer.Length)) != 0) { destination.Write (buffer, 0, numRead); } }
  • 16. DEMO TAP / Async / Await
  • 17. Les méthodes asynchrones Sont marquées avec le mot clé async Elles retournent soit void soit Task<T> Elles utilisent l’opérateur await Elles reprennent quand la méthode appelée par await a finie Elles s’executent dans le contexte de synchronisation de l’appelant Elles permettent d’écrire du code asynchrone de la même manière que du code synchrone
  • 18. Méthodes rajoutées à Task Task.Run var result = await Task.Run(() => { … }); Task.Delay  await Task.Delay(5000); Task.WhenAll / WhenAny  Composition Task.Yield  await Task.Yield() Task.ContinueWith
  • 20. Modèle de programmation parallèle .NET 4  On part des données et on met en place le traitement.  Typiquement combinaison de Tasks Dans l’autre sens?  On développe une chaine de traitement, puis on injecte des données  Application typique : traitement en mode « pipeline »
  • 21. TPL Dataflow System.Threading.Tasks.Dataflow.dll Les DataFlow sont constitués de Blocks  Un block est un élément qui traite des messages depuis une file  Les blocks peuvent être chainés pour effectuer des traitements complexes  Réseau de Block
  • 22. TPL Dataflow Exemple de traitement simple var ab = new ActionBlock<int>(i => { ActionBlock<int> Process(i); Message Queue }); Process(4); Process(3); Process(2); Process(1); Process(0); for(int i = 0; i < 5; i++) { ab.Post(i); 4 3 2 1 0 }
  • 23. TPL Dataflow Interconnecter les Blocks  Les blocks peuvent être chainés pour implémenter des réseaux  Exemple de Block :  ActionBlock<T> : exécute un délégué  TransformBlock<T1,T2>: convertie T1 vers T2  BroadcastBlock<T> : permet de diffuser vers plusieurs blocks un message  JoinBlock<T1,T2> : attend un élément de chaque entrée pour créer un message en sortie
  • 25. Plus d’infos sur TPL / Parallélisme / DataFlow Articles d’Eric Vernie (Microsoft France DPE)  Introduction à TPL DataFlow (VB ou C#)  http://msdn.microsoft.com/fr-fr/vbasic/hh301105  http://msdn.microsoft.com/fr-fr/vcsharp/hh301085 Blog développement parallèle  http://blogs.msdn.com/b/devpara/
  • 27. + de nouveautés Nouvelle API pour les applications consommant des service http  System.Net.Http (HttpClient, HttpRequestMessage…) MEF (Managed Extensibility Framework)  Support des types géneric  La composition peut être basée sur des règles:  Les attributs ne sont plus obligatoire  Utilise RegistrationBuilder pour injecter des attributs  ReflectionContext : expose des types « altérés » [Import(typeof(ICalculator))] [Export(typeof(ICalculator))] public ICalculator calculator; class MySimpleCalculator : ICalculator Portable library : Subset commun à .NET / WP / XBOX / SL Compatibilité binaire
  • 28. WCF Contract First :  Génération du service depuis le WSDL (svcutil /serviceContract) WSDL en un seul fichier : ?singleWSDL suppression des xsd:import Support des WebSocket : NetHttp(s)Binding Fichiers de configuration client simplifiés (pas les valeurs par défaut) Support d’UDP Paste XML as classes (VS) Add Service Reference pour les portable library
  • 30. Workflow Expressions C# State machines Service Contract First Performance
  • 31. ASP.NET HTML5 Démarrage plus rapide (multi-core JIT) WebSocket Asynchrone (HttpRequest / HttpResponse, Module / Handler) Externalisation du code de validation client dans un seul js externe. Javascript Bundling / minification Librairie Anti – Cross-Site-Scripting intégrée
  • 32. WPF Ruban inclus dans .NET 4.5 « NotifyPropertyChanged » sur les propriétés statiques (convention de nommage) Possibilité de modifier les collections « bindées » depuis un thread autre que UI Introduction de INotifyDataErrorInfo (SL) – validation synchrone / asynchrone Introduction de ICustomTypeProvider (SL5) – Binding sur des propriétés définies par code (ex: execution) Binding: Delay pour mise à jour de la source ItemsControl : performance en mode virtualisé sur des collections avec groupage
  • 34. Quelques sessions sur VS11/NET 4.5 Construire des applications parallèles avec Visual Studio 11 quoi de neuf ? (LAN210) WPF 4.5 : Quoi de neuf pour les développeurs ? (RDA105) Quoi de neuf dans ASP.NET 4.5 (RIA219)
  • 35. Vous êtes dans l’AMPHI BLEU
  • 36. Microsoft France 39, quai du président Roosevelt 92130 Issy-Les-Moulineaux www.microsoft.com/france