none
Génération automatique de classe ? (question de paresseux) RRS feed

  • Question

  • Bonjour tout le monde,

    J'ai apprécié, dans MVC, de me voir proposer, après un clic droit sur une méthode dans un contrôleur, la génération automatique de la vue qu'elle doit gérer.

    Aussi je me demande si il n'y aurait pas en préparation, la possibilité, à partir d'un Dataset, de générer la classe correspondante telle qu'utilisée par WCF, ainsi que, pendant qu'on y est, les contrats qui vont avec.

    Oui, je sais, là mon poil commence à se voir, mais ... ça a l'air tellement dans l'esprit de .Net ...

    vendredi 5 avril 2013 13:11

Réponses

  • Bonjour,

    Il y a des technologies qui permettent de faire çà automatiquement sans générer du code : WCF Data Services. En revanche cela ne fonctionne pas avec les DataSet (ou alors faut coder le mécanisme de mapping à la main...)

    Plus d'informations : http://msdn.microsoft.com/fr-fr/library/vstudio/cc668792.aspx

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse Gloops lundi 8 avril 2013 00:24
    dimanche 7 avril 2013 22:21
    Modérateur

Toutes les réponses

  • Bonjour,

    Il y a des technologies qui permettent de faire çà automatiquement sans générer du code : WCF Data Services. En revanche cela ne fonctionne pas avec les DataSet (ou alors faut coder le mécanisme de mapping à la main...)

    Plus d'informations : http://msdn.microsoft.com/fr-fr/library/vstudio/cc668792.aspx

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse Gloops lundi 8 avril 2013 00:24
    dimanche 7 avril 2013 22:21
    Modérateur
  • Ah, je pressentais bien, aussi, que passer deux heures à coder un service à la main pour une requête sur une base de données, ça risquait bien de ne pas passer longtemps ...

    J'en étais à essayer d'implémenter quelque chose qui travaille avec le fichier de schéma du DataSet, le code SQL de la commande, et la chaîne de connexion. J'ai la liste des champs, pour lire les types dans le fichier de schéma il y a plus de boulot, à vrai dire je ne suis pas très habitué aux XPathNavigator. Je viens à peine de réaliser que je n'avais pas forcément besoin de le convertir en XmlNode. C'est la présence des préfixes de namespaces qui oblige à utiliser un XPathNavigator.

    J'ai bien fait de poser la question, on va plus vite sur les sentiers balisés.

    Merci.

    lundi 8 avril 2013 00:24
  • Au passage, j'ai sorti une énormité : SelectNodes accepte aussi un deuxième argument, et dans le fichier d'export du DataSet, on peut accéder aux tables et aux champs comme ceci :

    XmlDocument doc;
    
    XmlNamespaceManager nsm = new XmlNamespaceManager(doc.NameTable);
    nsm.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
    XmlNodeList nodTables = doc.SelectNodes("/xs:schema/xs:element/xs:complexType/xs:choice/*", nsm);
    XmlNodeList nodChamps =    
        doc.SelectNodes("/xs:schema/xs:element/xs:complexType/xs:choice/xs:element/xs:complexType/xs:sequence/*",nsm);
    

    mardi 9 avril 2013 06:28