400 likes | 561 Views
ESSI XML et .NET . Alain Vizzini ESSI - Microsoft France http://www.essisharp.ht.st. Plan. Qui suis-je ? ESSI# ? Microsoft .NET Framework XML dans .NET Conclusion. Qui suis-je ?. Alain VIZZINI ESSI 2 – groupe II1 Email : vizzini@essi.fr
E N D
ESSIXML et .NET Alain Vizzini ESSI - Microsoft France http://www.essisharp.ht.st
Plan • Qui suis-je ? ESSI# ? • Microsoft .NET Framework • XML dans .NET • Conclusion
Qui suis-je ? Alain VIZZINI ESSI 2 – groupe II1 Email : vizzini@essi.fr Student Consultant pour Microsoft France depuis décembre 2001
Qui suis-je ? • Ma mission : « promouvoir les produits et technologies Microsoft » • Ce que je veux faire : • Permettre à tout les ESSIens de connaître .NET, si possible de l’avoir pratiqué • Aider les ESSIens ayant des projets en .NET • Favoriser la communication Microsoft / ESSI
Qui suis-je ? Comment présenter .NET aux étudiants: • Cours en amphi • TP • Site web (ESSI#) • Aide personnelle • Tout autre moyens … http://www.essisharp.ht.st
ESSI# • Créé en avril 2001 • Pages composées de • Cours ou articles • TP ESSI revisités • News • Orienté .NET & C#
ESSI# • Tout est fait par mes soins • Si vous cherchez du matériel et qu’il n’y est pas, faites le moi savoir …Email : vizzini@essi.fr • Domaines couverts aujourd’hui :C# vs. Java, XML, ASP.NET, ADO.NET, WebServices, .NET Remoting
Plan • Qui suis-je ? ESSI# ? • Microsoft .NET Framework • XML dans .NET • Conclusion
Microsoft .NET Framework Qui connaît .NET dans la salle ?
Microsoft .NET Framework • Version 1 depuis début 2002 (actuellement SP2) • Nécessite WindowsXP ou 2000 SP2 ou NT4 SP6 • Existe en version SDK (pour développer) et en version runtime (pour utiliser des soft .NET) • 100% G R A T U I T !!!!!!
Microsoft .NET Framework Par analogie à l’architecture Java. PS : pardonnez moi pour la vulgarisation
Microsoft .NET Framework De quoi est composé le .NET Framework : • Outils (compilateurs, désassembleurs, générateurs de proxies, …) • Documentation • Exemples (beaucoup !) • Des classes regroupées en namespaces
Microsoft .NET Framework Pôles de talent de .NET: • Bases de données : ADO.NET • GUI : WinForms • Web : WebForms, ASP.NET, WebServices • Cryptographie : RSA, AES (Rijndael), DES, SHA, MD5, … • Utilisation facilitée des API Windows • Garbage collection • Framework TRES étendu !
Microsoft .NET FrameworkNotions de C# // fichier HelloWorld.cs using System; public class HelloCSharp{ public static void Main (String [] args){ Console.WriteLine (« Salut »); } } • import using • Classe HelloCSharp dans HelloWorld.cs : pas de problème • Point d’entrée main Main • System.out.println() Console.WriteLine() • String String oustring
Microsoft .NET FrameworkDévelopper avec .NET Solution 1 : Emacs + outils en ligne de commande (inclus dans .NET) Solution 2 : Visual Studio .NET Payant … …mais disponible à la BU !
Bilan de la première partie • Vous savez que vous avez possibilité de chercher des infos sur ESSI#http://www.essisharp.ht.st • Vous avez mon mail : vizzini@essi.fr • Vous savez ce qu’est .NET • Vous savez à quoi ressemble du C#
Plan • Qui suis-je ? ESSI# ? • Microsoft .NET Framework • XML dans .NET • Conclusion
XML dans .NET • De l’utilité de XML • Validation XSD • XPath • Sérialisation XML • WebServices
XML dans .NETDe l’utilité de XML • Formatage de données facile à utiliser, indépendant de la machine • Peut être produit par un humain • Exemple : • Fichiers de configurations (structure stricte mais évolutive et validable)
XSD Plan/schéma XML instance XML dans .NETXML et XSD Validation Conformité Oui / non
XML dans .NETXML et XSD XSD Schéma XML instance
XML dans .NETXML et XSD • Namespace System.Xml.Schema • Classe XmlValidatingReader • Idée • Lire un ou plusieurs schémas XSD • Parser un flux XML est signaler les erreurs par rapport aux schémas Disponible sur ESSI# http://www.essisharp.ht.st Cours OutilGL 1
XML dans .NETXPath • Recherche dans l’arbre DOM (Document Object Model) • Concept proche d’un SQL basic (requête de sélection exprimée dans un langage pas trop informatisé) • Utilisé dans .NET pour XSLT notamment
Plat <Pizza,non> LaCarte Royale XML dans .NETXPath Plat <Pizza,oui> Marguerite Plat <Pizza,oui> Chèvre Plat <Quiche,non> Requête simplechild::Plat[@vegetarien=‘oui’] retourne tout les éléments de type Plat enfants de la racine, avec l’attribut vegetarien valant oui
XML dans .NETXPath Programme pour tester
XML dans .NETXPath • Namespace System.Xml • Exemple XmlDocument doc = new XmlDocument(unFichier); XmlNodeList nodeCollection = doc.DocumentElement.SelectNodes (requete); foreach (XmlNode n in nodeCollection) lb.Items.Add (n); Disponible sur ESSI# http://www.essisharp.ht.st Cours 4 : XML & WebServices
XML dans .NETSérialisation XML • Alternative à la sérialisation binaire (native) • Utilise un protocole définis en XML et nommé SOAP (Simple Object Access Protocol) • SOAP permet de sauver (et de relire !) des objets complexes en XML • SOAP est indépendant du langage utilisé (il suffit d’avoir un toolkit permettant de l’utiliser) • Utilisable dans les cas où les flux binaires sont interdits (firewalls, net, …)
XML dans .NETSérialisation XML • Sérialiser des objets en SOAP en 3 lignes de C# ICollection objCollec; … SoapFormatter ser = newSoapFormatter(); FileStream fout = new FileStream(…); ser.Serialize(fout, objCollec); NB : SOAP est du XML, et un document XML ne contient qu’un seul élément racine… qui est souvent une collection !
XML dans .NETSérialisation XML • Namespace System.Runtime.Serialization.Formatters.Soap • Exemple disponible sur ESSI#http://www.essisharp.ht.st cours XML & WebServices (SOAP)
XML dans .NETWebServices • WebService ? Kesako ? • Principe : invocation de méthodes d’objets distant en mode faiblement connecté • Fonctionnement • Utilisation : envoi d’une requête au format SOAP (XML) par HTTP qui précise la méthode appelée et les paramètres fournis (idem pour l’envoi du résultat) • Découverte : chaque WebService expose ce qu’il sait faire dans un contrat WSDL (XML) • Les WebServices sont UNIVERSELS
XML dans .NETWebServices • Universalité : permettre à des programmes • sur des machines distantes • écrits dans les langages étherogenes • sur des plateformes différentes … de communiquer de manière transparente. • Solution SOAP (Simple Object Access Protocol) : converser en XML, avec un format bien défini et bien pensé.
2.1 SOAP XML SOAP XML 2.2 1.2 1.1 WSDL XML dans .NETWebServices Client … R = Ws.DoIt(…); … WebService Proxy C#, Java, C, … WSDL C#, Java, C, … 1. Générer un proxy 2. Consommer
XML dans .NETWebServices • Facilité de réalisation côté Serveur[WebMethod]public String compose (String s, int i) {…}…et un peu de glue et de clicodrome pour la mise en place. • Facilité d’utilisation côté Clientwsdl.exe http://monwebservice?WSDL /language:CSgénère la classe proxy. Il n’y a plus qu’à l’instancier et l’utiliser.
XML dans .NETWebServices • Bilan sur les WebServices • Universels • Reposent sur XML (WSDL et SOAP) • Permettent d’utiliser des objets services distribués de manière souple et indépendante des implémentations • Résolvent des problèmes de déploiement • Soutenus par Microsoft, IBM, … • Faciles à utiliser avec .NET • Cours + TP sur XML & WebServiceshttp://www.essisharp.ht.st Cours XML & WebServices
Plan • Qui suis-je ? ESSI# ? • Microsoft .NET Framework • XML dans .NET • Conclusion
N’oubliez pas de visiter le site :http://www.essisharp.ht.st
Chez Microsoft Press MICROSOFT .NET FRAMEWORK C# : 2-84082-864-2 ASP.NET : 2-84082-865-0 2-10006-520-3 2-10006-378-2 • www.microsoft.com/mspress
Au final … Merci de votre attention. Merci à M. FRANCHI.