Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > C#
C# Forum d'entraide sur la programmation C#. Avant de poster -> FAQ C#, Articles C#, Sources C#
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 15/08/2012, 13h08   #1
Jérôme Lambert
Rédacteur


 
Avatar de Jérôme Lambert
 
Homme Jérôme Lambert
Développeur .NET
Inscription : novembre 2003
Messages : 4 457
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 4 457
Points : 15 491
Points : 15 491
Envoyer un message via Skype™ à Jérôme Lambert
Par défaut Les nouveautés de C# 5.0

Bonjour,

Cet article présente les deux grandes nouvelles fonctionnalités du langage C# en version 5.0.

À l'heure à laquelle j'écris cet article, les outils et composants de Microsoft cités sont au stade de la Release Candidate et c'est sur cette version-là que les exemples ont été réalisés.

L'article est accessible ici !

N'hésitez pas commenter et noter cet article

Bonne lecture à tous !
__________________
Jérôme Lambert, Développeur, Architecte, Rédacteur & Fan technologies Microsoft

Mon blog "My Microsoft Development World"
Jérôme Lambert est déconnecté   Envoyer un message privé Réponse avec citation 60
Vieux 16/08/2012, 15h07   #2
antoine.debyser
Membre éprouvé
 
Homme
Ingénieur développement logiciels
Inscription : mars 2011
Messages : 258
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 258
Points : 418
Points : 418
Bonjour,

Il y a une coquille sur le premier tableau. Les iterateurs etaient présent dès C# 1.0.

L'avant dernier bout de code du paragraphe II n'est pas coloré correctement. Et tous comme le bout de code suivant les "<" sont mal affichés
Citation:
Func&lt;Task&gt;
Sinon la partie async n'a pas du être simple à écrire, on ne peut que te féliciter pour la facilité de compréhension que tu donnes sur le sujet.

Par contre j'ai une petite question les nouveaux attributs. Si je tag un paramètre nommé toto avec CallerMemberName. La valeur de toto est elle saisie a la compilation, ou a l’exécution via un quelconque mécanisme de réflexion?
Y'a-t-il un attribut pour récupérer l'instance appelante?
Le fait que cela ne marche qu'avec Visual 2012, me laisse penser que c'est à la compilation.
antoine.debyser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2012, 17h23   #3
Jérôme Lambert
Rédacteur


 
Avatar de Jérôme Lambert
 
Homme Jérôme Lambert
Développeur .NET
Inscription : novembre 2003
Messages : 4 457
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 4 457
Points : 15 491
Points : 15 491
Envoyer un message via Skype™ à Jérôme Lambert
Bonjour,

Merci pour ces quelques remarques et compliments

Pour ce qui est des itérateurs, ils sont apparus avec C# 2.0.
(source: http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx)

Pour les deux coquilles avec le code, je vais corriger cela ce soir, merci !

Pour les nouveaux attributs, c'est bien à la compilation que les valeurs sont résolues. Si on prend mon exemple avec l'exception :

Code :
1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
{
    try
    {
        int i = int.Parse("test");
    }
    catch (Exception exc)
    {
        new LogManager().LogException(exc);
    }
}
Le code compilé ressemblera à quelque chose de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
{
    try
    {
        int i = int.Parse("test");
    }
    catch (Exception exc)
    {
        new LogManager().LogException(exc, "Main", "Program.cs", 10);
    }
}
C'est le compilateur qui s'occupe de spécifier correctement les paramètres optionnels ayant été décorés avec les nouveaux attributs.
__________________
Jérôme Lambert, Développeur, Architecte, Rédacteur & Fan technologies Microsoft

Mon blog "My Microsoft Development World"
Jérôme Lambert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2012, 10h05   #4
antoine.debyser
Membre éprouvé
 
Homme
Ingénieur développement logiciels
Inscription : mars 2011
Messages : 258
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 258
Points : 418
Points : 418
Citation:
Envoyé par Jérôme Lambert Voir le message
Pour ce qui est des itérateurs, ils sont apparus avec C# 2.0.
(source: http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx)
Ah c'est yield qui est apparu avec C# 2, toutes mes excuses je pensais à IEnumerator.
antoine.debyser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2012, 11h14   #5
alex_vino
Membre Expert
 
Homme Gilles Vino
Software Developer
Inscription : mars 2008
Messages : 1 309
Détails du profil
Informations personnelles :
Nom : Homme Gilles Vino
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Software Developer

Informations forums :
Inscription : mars 2008
Messages : 1 309
Points : 2 298
Points : 2 298
Super article

async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.

101 exemples MSDN: http://www.wischik.com/lu/AsyncSilve...ncSamples.html
alex_vino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2012, 10h10   #6
micka132
Membre Expert
 
Homme Mickael
Développeur .NET
Inscription : novembre 2009
Messages : 726
Détails du profil
Informations personnelles :
Nom : Homme Mickael
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2009
Messages : 726
Points : 1 225
Points : 1 225
Citation:
Envoyé par alex_vino Voir le message
Super article

async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.
J'imagine qu'en méttant plusieurs await à la suite ca devrait être bon non?
Bon apres si l'on offre la possibilité de déclencher les actions par divers biais...Mais bon du coup le cas ou il faut tout de même attendre les résultats d'autre action que l'on a même pas "prévu" c'est plutot étrange non?
micka132 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2012, 10h16   #7
Jérôme Lambert
Rédacteur


 
Avatar de Jérôme Lambert
 
Homme Jérôme Lambert
Développeur .NET
Inscription : novembre 2003
Messages : 4 457
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 4 457
Points : 15 491
Points : 15 491
Envoyer un message via Skype™ à Jérôme Lambert
Citation:
Envoyé par alex_vino Voir le message
Super article

async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.

101 exemples MSDN: http://www.wischik.com/lu/AsyncSilve...ncSamples.html
Les task existent depuis le .NET Framework 4.0 et il existe une multitude de méthodes (ContinueWith, Wait, WaitAny, WaitAll, etc) permettant de construire des synchronisations plus complexes :

http://msdn.microsoft.com/fr-fr/libr...asks.task.aspx

Par contre, il est vrai que la lecture/relecture n'est pas aisée et async/await n'a pas pour but de simplifier ces deux points.
__________________
Jérôme Lambert, Développeur, Architecte, Rédacteur & Fan technologies Microsoft

Mon blog "My Microsoft Development World"
Jérôme Lambert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2012, 12h33   #8
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 387
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 387
Points : 7 054
Points : 7 054
Salut,

Merci pour cet article

Des caractères sont mal affichés dans le code du paragraphe "II. Méthodes asynchrones"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
private async void buttonDownload_Click(object sender, RoutedEventArgs e)
{
    var client = new WebClient();
 
    Func&lt;Task&gt; delegateToDownloadAsString = async delegate()
        {
            var result = await client.DownloadStringTaskAsync(new Uri(textboxURL.Text));
            textboxResult.Text = result;
        };
 
    await delegateToDownloadAsString();
}
Excellent!

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 15h30   #9
jacky01
Membre éprouvé
 
Avatar de jacky01
 
Développeur .NET
Inscription : juin 2007
Messages : 533
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juin 2007
Messages : 533
Points : 494
Points : 494
Merci pour cet article très intéressant.

Quand le c# sera-t-il disponible en 5.0 ? est-il déjà en place sur VS2012 ?

Je suis déjà amoureux du async/await
__________________
Je fais ce que je dis et je dis ce que je veux .
jacky01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 15h39   #10
alex_vino
Membre Expert
 
Homme Gilles Vino
Software Developer
Inscription : mars 2008
Messages : 1 309
Détails du profil
Informations personnelles :
Nom : Homme Gilles Vino
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Software Developer

Informations forums :
Inscription : mars 2008
Messages : 1 309
Points : 2 298
Points : 2 298
Citation:
Envoyé par jacky01 Voir le message
Quand le c# sera-t-il disponible en 5.0 ? est-il déjà en place sur VS2012 ?

Je suis déjà amoureux du async/await
Oui, il te faut le Framework 4.5.
Si tu aimes bien async/await je te propose cette vidéo sur Channel 9 au Microsoft //build/ 2012.
alex_vino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 15h47   #11
benny-blanco
Membre actif
 
Homme Jerome
Développeur .NET
Inscription : octobre 2011
Messages : 255
Détails du profil
Informations personnelles :
Nom : Homme Jerome
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 255
Points : 162
Points : 162
Petite vidéo des nouveauté du framework 4.5, c#5 et en français :

http://channel9.msdn.com/Series/Tech...u-Framework-45

async/await, Task, dataFlow ...

Dans la vidéo on a droit a une petite démo sur l'utilisation de async/await.

Moi aussi j'aime déja. Tres pratique et très puisant, le tout en gardant le controle sur le Thread UI (ou plutot du Thread appelant ) = c'est pas beau ça

Par contre ca ne plaira pas au puriste car toute la mécanique est caché.
__________________
Life myLife = new Life ("eat","sleep","code");
benny-blanco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 17h33   #12
jacky01
Membre éprouvé
 
Avatar de jacky01
 
Développeur .NET
Inscription : juin 2007
Messages : 533
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juin 2007
Messages : 533
Points : 494
Points : 494
Merci pour la vidéo
je viens de la regarder et elle est vraiment claire.

Au top !
__________________
Je fais ce que je dis et je dis ce que je veux .
jacky01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h14.


 
 
 
 
Partenaires

Hébergement Web