LINQ to SQL (Partie 3 : Interroger notre base de données)

by Fabien Lavocat 4. août 2008 06:23

[L’article ci-dessous est la traduction de l’article de Scott Guthrie]

[Attention : Cet article est rédigé pour Visual Studio 2008 Bêta 2]

[Version RTM] Les lignes en rouge comme celle-ci, correspondent aux mises à jour pour la version RTM de Visual Studio 2008 et du .NET Framework 3.5.

Le mois dernier, j’ai commencé cette série d’articles sur LINQ to SQL. LINQ to SQL est un Framework O/RM (Object Relational Mapping) intégré dans le .NET Framework 3.5, et qui vous permet de modéliser facilement des bases de données relationnelles en utilisant des classes .NET. Vous pouvez utiliser les expressions LINQ pour requêter la base de données avec elles, mais également mettre à jour/insérer/supprimer des données depuis celle-ci.

Ci-dessous, vous trouverez les deux premières parties de ma série LINQ to SQL :

Dans l’article d’aujourd’hui, nous allons entrer dans les détails sur comment utiliser le modèle de données que nous avons créé dans la partie 2, et montrer comment l’utiliser pour récupérer des données dans un projet ASP .NET.

[Suite de l'article]

Tags: , ,

Tutoriaux .NET

Webcast TechDays 2008 Paris - 11, 12 et 13 Février 2008

by Fabien Lavocat 22. mars 2008 14:07

Techdays 2008Si vous avez loupé une conférence, ou tout simplement que vous n’avez pas tout retenu, Microsoft a filmé chaque sessions afin de vous faire revivre cet événement qui a fait venir plus de 16 000 personnes. Ces Webcasts sont disponibles sur le site Vision de Microsoft.

 

Accès direct au parcours Visual Studio 2008. Voilà une petite liste de Webcasts que je peux vous conseiller de visionner :

Télécharger la version Express, gratuite, de Visual Studio 2008 ici.

Mots clés Technorati : ,,

Tags: , ,

Evenements Microsoft

Exemple de code : LINQ to XML (C#)

by Fabien Lavocat 20. mars 2008 08:59

linq.jpgLINQ to XML (anciennement XLINQ) est une technologie permettant de manipuler des fichiers XML plus simplement et plus intuitivement qu’en utilisant les techniques de C#2.0 et précédemment.

Commençons par créer le document XML en mémoire par un code C# :

XElement cars = new XElement(“cars”,
  new XElement(“car”,
    new XAttribute(“Immatriculation”, “1234AB33″),
    new XElement(“Marque”, “Aston Martin”),
    new XElement(“Modèle”, “Vantage V8 Coupé”),
    new XElement(“Puissance”, “557cv”),
    new XElement(“Prix”, “110.000,00€”)
  ),
  new XElement(“car”,
    new XAttribute(“Immatriculation”, “5678CD33″),
    new XElement(“Marque”, “Aston Martin”),
    new XElement(“Modèle”, “DB9 V12″),
    new XElement(“Puissance”, “450cv”),
    new XElement(“Prix”, “118.000,00€”)
  ),
  new XElement(“car”,
    new XAttribute(“Immatriculation”, “9012EF33″),
    new XElement(“Marque”, “Ferrari”),
    new XElement(“Modèle”, “F430 Scuderia”),
    new XElement(“Puissance”, “510cv”),
    new XElement(“Prix”, “207.900,00€”)
  ),
  new XElement(“car”,
    new XAttribute(“Immatriculation”, “3456GH33″),
    new XElement(“Marque”, “Ferrari”),
    new XElement(“Modèle”, “360 Modena”),
    new XElement(“Puissance”, “400cv”),
    new XElement(“Prix”, “138.000,00€”)
  )
);

Les classes XDocument, XElement et XAttribute se trouvent dans le namespace : System.Xml.Linq. Utiliser ces classes est quand même plus simple que l’ancienne méthode et plus lisible surtout. Enfin il ne s’agit que de mon point de vue.

Passons maintenant à requête LINQ :

// Récupération de toutes les voitures dont la puissance est supérieure à 500cv
// Vous remarquerez l’utilisation de la méthode d’extention GetPower()

var search = from car in cars.Descendants(“car”) // Tous les éléments “car”
             where car.Element(“Puissance”).Value.GetPower() > 500
             select car.Attribute(“Immatriculation”).Value + ” est une ” +
                    car.Element(“Marque”).Value + ” “ +
                    car.Element(“Modèle”).Value + ” puissance “ +
                    car.Element(“Puissance”).Value + ” prix : “ +
                    car.Element(“Prix”).Value + “€”;

Si vous avez essayé l’exemple de code LINQ to Object, vous ne serez pas dépaysé par l’écriture de la requête. Donc ici je cherche dans tous les éléments “car” dont la puissance est supérieure à 500 cv. Pour cela, j’ai créé une méthode d’extention de la classe String, nommée GetPower. Voilà son implémentation :

public static class ExtendMethods
{
 ///
 /// Méthode d’extention permettant de récupérer la puissance
 /// d’une voiture à partir d’une chaîne de caractère
 ///

 public static Int32 GetPower(this String entry)
 {
  String power = entry.Replace(“cv”, “”);
  Int32 result;
  if (Int32.TryParse(power, out result))
    return result;
  else
    return
0;
 }
}

Cette méthode d’extention, retire “cv” de la chaîne de caractère et fait une convertion en Int32.

Maintenant, on affiche le résultat :

foreach (var item in search)
  Console.WriteLine(item);

Et voilà ce que l’on a dans la console :

1234AB33 est une Aston Martin Vantage V8 Coupé puissance 557cv prix : 110.000,00€
9012EF33 est une Ferrari F430 Scuderia puissance 510cv prix : 207.900,00€
Appuyez sur une touche pour continuer…

Lien MSDN : http://msdn2.microsoft.com/fr-fr/library/bb387098.aspx

Mots clés Technorati : , ,, ,

Tags: , , ,

Exemples de code

Exemple de code : LINQ to Object (C#)

by Fabien Lavocat 18. mars 2008 07:50

linq.jpgLINQ (Language-Integrated Query) est une technologie incluse dans le Framework 3.5 permettant d’écrire des requêtes directement dans les langages C#, VB.NET, ou tout autre langage .NET. Il existe de multiples tournures de LINQ, pour des sources de données différentes (LINQ to Object, LINQ to XML, LINQ to SQL…)

Dans cet exemple nous allons voir comment faire des requêtes sur des collections d’objets.

   1: // Collection de départ
   2: List<Int32> lst = new List<Int32>() { 1, 1, 2, 5, 5, 6, 7, 7, 9, 10, 10 }; 
   3: // Création d’une nouvelle collection
   4: // . Nous souhaitons récupérer uniquement les valeurs
   5: // . distinctes de la collection de départ supérieures à 5
   6: // . dans l’ordre décroissant
   7: IEnumerable<Int32> tmp = from i in lst.Distinct<int32>()
   8:                      where i > 5
   9:                      orderby i descending
  10:                      select i; 
  11:  
  12: // On affiche les résultats
  13: foreach (Int32 i in tmp)
  14:       Console.WriteLine(i); 
  15:  
  16: // Résultat :
  17: // . 10
  18: // . 9
  19: // . 7
  20: // . 6 

Lien MSDN : http://msdn2.microsoft.com/fr-fr/library/bb397676.aspx

Mots clés Technorati : ,,,

Tags: , , ,

Exemples de code

Code source Framework .NET disponible !

by Fabien Lavocat 17. janvier 2008 10:57

Nous vous l’annoncions le 9 Octobre 2007, Microsoft devait donner l’accès au code source de son Framework .NET, c’est désormais le cas, Scott Guthrie sur son blog vient de l’annoncer au monde entier.

Voici la liste des librairies qui sont disponibles :

  • Librairies de base du framework (System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc…),
  • ASP.NET (System.Web, System.Web.Extensions)
  • Windows Forms (System.Windows.Forms)
  • Windows Presentation Foundation (WPF) (System.Windows)
  • ADO.NET et XML (System.Data and System.Xml)

Pour pouvoir débugger vos applications en entrant au coeur du Framework, il vous faudra utiliser Visual Studio 2008 et suivre le tutoriel donné par Shawn Burke sur son blog (Anglais). Son article vous présentera la façon dont vous devez procéder pour pouvoir utiliser ces sources avec vos solutions. Un article sera préparé afin de vous présenter en français comment procéder.

Nous devrions voir prochainement les sources des classes de la technologie LINQ disponibles.

Tags: , ,

Actualite Microsoft | Visual Studio

Ebooks Gratuits !

by Julien Dollon 3. janvier 2008 09:20

LINQ, Silverlight et ASP.NET

Microsoft fournis en ce début d’année 2008 trois ebooks gratuits qui vous permettront de vous initiez aux technologies Silverlight, LINQ et ASP.NET.

Le lien pour les telecharger

Mots clés Technorati : ,,,

Tags: , , ,

Actualite Microsoft

Publication du code source du Framework .NET

by Fabien Lavocat 9. octobre 2007 10:28

Au travers de son blog, Scott Guthrie, directeur général de la division développement chez Microsoft, nous apprend la prochaine publication du code source d’une grande partie du Framework .NET.

Utilisable sous la licence MS-RL (Microsoft Reference Licence), il sera possible de débugger vos applications, d’étudier le fonctionnement plus en profondeur dans vos applications pour les namespaces suivant :

  • System
  • System.IO
  • System.Collections
  • System.Configuration
  • System.Threading
  • System.Net
  • System.Security
  • System.Runtime
  • System.Text
  • System.Web (ASP.NET)
  • System.Windows.Forms (WinForm)
  • System.Data (ADO.NET)
  • System.Xml
  • System.Windows (WPF)

Cette licence ne nous accordera pas le droit de modifier ou de redistribuer le code source du Framework. Il était déjà  possible de visualiser ce code en utilisant des outils tels que Reflector mais il était impossible à ce jour de pouvoir débugger le code à ce niveau là . Par la suite Microsoft publiera le code des librairies suivantes : WCF, Workflow et LINQ. Vous pourrez profiter de cette nouveauté dans Visual Studio 2008 avec le Framework 3.5 dans une release du courant de l’année.

Vous trouverez ici l’article sur le blog de Scott Guthrie : http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx

Tags: , , , ,

Actualite Microsoft

A propos de l'auteur

Fabien Lavocat

Lavocat Fabien
Ingénieur Multimédia - TMM Communication



"Blog-Microsoft.fr is an independent blog and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation."

Contactez-moi Send mail

MVP
Microsoft Most Valuable Professional
Client Application Development