Accueil > Uncategorized > Les nouveautés du .NET Franework 4.5 First part

Les nouveautés du .NET Franework 4.5 First part

Voici un schéma qui résume les fonctionnalités du .NET Framework 4.5:


(de Heikniemi)

Bonjour et bienvenue sur ce nouveau billet.

Nous essayerons de vous présenter quelques grandes nouveautés du .NET Framework 4.5.

À ce jour voici en gros ce qu’est l’évolution du .NET Framework (de la version 2.0 à  la version 4.0):

Les nouveautés de la version 4.5

Voici quelques grandes nouveautés de la 4.5 :

  • Support pour Windows 8
  • Support pour HTML 5 (Web Forms)
  • Support pour l’implémentation des WebSocket receivers (ASP.NET, WCF)
  • DataFlow (BCL)
  • Support pour les types de données spatiales (SQL Server 2012, EF 4.5)

Par ailleurs des ajouts de nouvelles fonctionnalités sont apparente dans l’ensemble des couches jadis, existante.

Il est bon de savoir qu’à l’installation de la version 4.5, certaines classes de la version 4.0 disparaitrons pour donner place à de nouvelles.

Dans cette première partie nous allons nous attarder sur le modèle asynchrone dans .NET

Asynchrone

1 – Depuis .NET Framework 1.0 : Model de Programmation Asynchrone (MPA ou Asynchronous Programming Model (APM))

Dans ce type de model, on fait un BeginRead sur l’objet qu’on passe à  un délégué qui fait un appel asynchrone. Le résultat est  récupéré en utilisant un EndRead.

File.BeginRead(buffer, 0, maxLength, asyncResult =>){

Int numBytesRead = file.EndRead(asyncResult);

// Faire ce que l’on veut avec le contenu du buffer

}

A noter que les expressions lambda n’existaient pas au dépar… 🙂

2 –  Depuis .NET Framework 2.0 : Programmation Asynchrone basée sur les évènements (Event Based Asynchronous  Programming (EAP))

Modèle basé sur les évents (utilisation de completions…)

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

String html = args.Result;

// Traitement avec le contenu de html

}
webClient = DownloadStringAsync ( new Uri("http://test.com") )

Petite précision on n’est pas rappelé dans le contexte du premier thread (celui qui à déclencher l’appel), dont on n’est pas sur le Thread UI.  Ce qui pose un petit problème pour le rafraichissement des IHMs. Car pour mettre à jour une IHM il faut être dans le thread UI

3 –  Depuis .NET Framework 4.0 : Programmation Asynchrone basée sur les Tack (Task based Asynchronous Programming (TAP))

Task à vue le jour dans la version 4.0 du .NET Framework.

Un Task représente un traitement qui est cours et que l’on pourra contrôler.

Task<String> htmlTask = webClient. DownloadStringTaskAsync(myUrl)

// Façon!

String html = htmlTask.Result; // Pas asynchrone. Bloquant

// Façon 2; Syntaxe C# 4

htmlTask.ContinueWith(task =>; {
     Task htmlTask = webClient. DownloadStringTaskAsync(myUrl)
});

// Syntaxe C# 5

String html = await htmlTask; // Async; Ici on récupère le résultat sans bloqué.... Simplifie l’écriture de l’appel des méthodes asynchrones

Exemple d’utilisation async / await

Public async Task CopyStreamToStreamAsync(Stream src, Stream dest)
{
    Byte[] buff = new Byte[0x1000];
    Int numRead;

   While((numRead = await src.ReadAsync(buff, 0, buff.Lenght)) ! = 0)
   {
       Await dest.WriteAsync(buff, 0, numRead);
   }
}
<>

 

A bientôt pour la Second Part

 2,031 total views,  1 views today

Categories: Uncategorized Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks


7 − = un