Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[Article] C# 3 et Linq

Au jourd'aujourd'hui, on entent de plus en plus souvent parler de C# 3, de Linq for SQL, Linq for Entities, etc... mais qu'est-ce que cela signifie réellement ?

Que représente ces nouveaux concepts ? Qu'impliquent-ils pour nos développements futurs ?

Au travers de mon nouvel article sur le sujet, j'ai tenter de répondre à ces questions (et bien d'autres encore) en essayant de rester le plus clair possible.

L'article n'est pas aussi bien que je l'aurai voulu, il est peut-être un peu trop "didactique".
J'aurai aimé rentré plus dans les détails de certaines parties, en expliquer un peu mieux d'autre, etc...

Mais je dois admettre que je suis un peu court niveau temps, en ce moment alors j'ai fait au mieux, en espérant que cela vous plaise Smile [:)]

Je tiens à remercier mes 3 relecteurs pour leur participation: j'ai tenté de suivre au mieux leurs conseils même si, comme je l'ai dit plus haut, plus de temps m'aurait été utile Wink [;)]


L'article peut-être télécharger à cette adresse: http://morpheus.developpez.com/linq/


N'hésitez pas à poster vos critiques, remarques, commentaires, etc.... à la suite de ce message


A+


PS: Désolé Renaud, pas de Sharepoint/WSS cette fois ci Wink [;)]

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 8 août 2006 09:11 par Thomas LEBRUN
Classé sous :

Commentaires

.NET in the pocket ! a dit :

Aprs cette lecture en diagonale, je m'interroge sur l'avenir du C# et sur ce qui pourrait tre apparent  des drives... Notamment  propos de la notion "d'initialisateur d'objets". Etait-ce vraiment une fonctionnalit ncessaire?
# août 8, 2006 14:17

Thomas LEBRUN a dit :

Comme toutes les fonctionnalités proposées par les langages, certaines ne sont pas, à première vue, nécessaires.

Cependant, il peut arriver qu'à un moment, tu ais besoin de cette fonction et tu es bien content de la trouver.

Je reconnais cependant qu'utilisés comme dans mon exemple, l'intérêt n'est pas forcément flagrant, mais je voulais essayer de rester simple.

Si tu reprends mon exemple, tu as vu que j'ai ecrit:
var u3 = new User { FirstName = "Thomas", LastName = "LEBRUN", Age = 24 };

Mais je pouvais également me passer d'une des propriétés et mettre:

var u3 = new User { FirstName = "Thomas", LastName = "LEBRUN"};

Quel serait l'avantage ? Imagine par exemple que tu ais besoin d'instancier des objets grâce à un  constructeurs qui ne prend que 3 paramètres (pas un de plus, pas un de moins). Actuellement, tu ne peux rien faire sauf passer une valeur bidon en troisième paramètre.

Avec ce concept, tu pourras instancier ton objet, avec 1 ou 2 (ou 3) propriétés. Si tu ne spécifies pas la valeur de la dernière propriété, celle-ci sera null, ce qui est plus propre que de mettre un truc bidon :)


J'espère que c'est un peu plus clair :)


A+
# août 8, 2006 14:38

Simon a dit :

A propos de ce système d'initialisation, il est très utile pour les types anonymes (c'est d'ailleurs la seule façon d'écrire un type anonyme).
Ces types anonymes sont la plupart du temps utilisés dans des requêtes Linq afin de ne récuérer que certains champs.
Par exemple
var prodDescr = from p in productList
               where ...
               select new {Name = p.Name, Description = p.Description};

# août 8, 2006 14:55

Simon a dit :

# août 8, 2006 14:56

Bidou a dit :

Merci pour ce bon article ! (je dois avouer ne pas avoir lu jusqu'à la fin).

Ce qui me dérange dans ces concepts, c'est principalement cette histoire de déclaration "anonyme" en utilisant le mot clef var.
J'ai l'impression de retomber un peu dans du VB6 avec son célèbre type "Variant" et il me semble à priori (puisque je n'ai pas encore testé) que ça porte plus à confusion qu'à autre chose : on ne sait plus à que type de variable (object) on a à faire pour finir, s'il y en a plusieurs de déclarée...

Pour finir, je serais presque tenté de dire qu'on perd un peu la richesse de la programmation object (en exagérent un peu évidemment...)
# août 8, 2006 18:20

Thomas LEBRUN a dit :

En effet, pour savoir quel type d'objet est déclaré avec un var, il ne faut pas regarder la déclaration mais l'initialisation de cet objet.

Cependant, il y a un grande différence avec le "Variant" de VB6: var n'est pas un type !
C'est simplement le moyen de déclarer un objet sans en connaitre le type de départ. Celui-ci sera déduit lors de la compilation de votre programme.

Cela peut paraitre déroutant mais il s'avère que c'est très pratique :)


A+
# août 8, 2006 19:49
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- ASP.NET AJAX 4.0 par Le blog technique de Loïc Bar le il y a 8 minutes

- [WPF] Comment déclencher un évènement sur un contrôle ? par Thomas Lebrun le il y a 1 heure et 39 minutes

- [Expression Web] Astuce de la Semaine : Utilisation et Configuration des Extraits de Code par Chronos, Blog d'un Intégrateur .NET le il y a 16 heures et 58 minutes

- Faire de l'AJAX sans restrictions de domaine par Kévin Gosse le il y a 19 heures et 26 minutes

- [IronPython] : IronPython & Silverlight 2 - Part II par Kim's Blog le 07-22-2008, 14:50

- [WPF] Des requêtes NDepend pour analyser vos projets WPF par Thomas Lebrun le 07-21-2008, 09:27

- Liste de jeux pour Silverlight par Pierrick's Blog le 07-20-2008, 14:37

- T_PAAMAYIM_NEKUDOTAYIM par MadMatt le 07-19-2008, 16:16

- Et je mets le son.... par Pierrick's Blog le 07-19-2008, 12:09

- SharePoint : Comment interdire l’accès à un utilisateur pour tous les sites d’une Web Application par Blog Technique de Romelard Fabrice le 07-18-2008, 19:05