none
Conception DAL/DataSet/Objets métiers RRS feed

  • Question

  • Bonjour,
    Je suis en train de concevoir une application(WinForms) qui doit accéder à une base de donnée (SQL Server).
    En utilisant l’assistant, Visual Studio crée automatiquement le dataset, les tables et surtout les classes :
    Par exemple si j’ai la table Clients Une classe ClientsRow qui hérite de Global.System.Data.DataRow sera créé avec les qui correspondent aux champs.
    Dans mon application je dois implémenter d’autres méthodes et attributs pour la classe Client, est ce que je dois modifier ces classes générées automatiquement, ou créer mes propres classes et ignorer les classes générées ?
     
    Une deuxième question:
    Comment charger les données (par exemple la liste des clients?)
    Je passe par les caches du datatables/dataset et leurs methodes ou je construit ma propore couche d’accés aux données et je remplit la liste de clients dans des List(of Clients) ?
    J'ai trouvé quelques approches en cherchant sur le net mais c'est pas trés clair.
    Cordialement,
    Amine

    • Modifié AmineTn samedi 24 septembre 2011 13:16
    samedi 24 septembre 2011 13:15

Réponses

  • Bonjour,

    Le DataSet est un snapshot d'une base de données et orienté relationnel. Lorsque vous créez un objet Client qui hérite d'un DataTable vous ne manipulez pas un objet "Client", mais un objet qui contient des lignes et des colonnes.

    Si vous souhaitez manipuler des objets, je vous conseille d'utiliser un ORM comme Entity Framework qui est disponible depuis le .NET Framework 3.5 SP1. Ce framework permet de manipuler des objets sur des tables. De plus, grâce à Entity Framework vous pourrez utiliser Linq qui vous permettra d'abstraire vos requêtes SQL en requête objet.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse AmineTn dimanche 25 septembre 2011 09:13
    samedi 24 septembre 2011 21:34
    Modérateur
  • Bonjour,

    Le mécanisme de Binding est indépendant d'EntityFramework.

    • Entity Framework est un ORM qui s'occupe de mapper vos objets sur des tables.
    • Le mécanisme de Binding (Windows Forms ou WPF ou Silverlight) se base sur une implémentation de l'interface INotifyPropertyChanged sur vos objets que vous souhaitez "binder". Le Designer de Entity Framework génère par défaut des entités (objet) qui implémente l'interface INotifyPropertyChanged.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse AmineTn dimanche 25 septembre 2011 09:13
    dimanche 25 septembre 2011 09:02
    Modérateur

Toutes les réponses

  • Bonjour,

    Le DataSet est un snapshot d'une base de données et orienté relationnel. Lorsque vous créez un objet Client qui hérite d'un DataTable vous ne manipulez pas un objet "Client", mais un objet qui contient des lignes et des colonnes.

    Si vous souhaitez manipuler des objets, je vous conseille d'utiliser un ORM comme Entity Framework qui est disponible depuis le .NET Framework 3.5 SP1. Ce framework permet de manipuler des objets sur des tables. De plus, grâce à Entity Framework vous pourrez utiliser Linq qui vous permettra d'abstraire vos requêtes SQL en requête objet.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse AmineTn dimanche 25 septembre 2011 09:13
    samedi 24 septembre 2011 21:34
    Modérateur
  • Merci pour la réponse, je dois passer un peu du temps à découvrir les concepts d'ORM et Entity Framework.

    La chose que j'ai trop aimé dans les dataset c'est les mécanismes du binding, update ... Est ce que j'ai encore ces mécanismes assez pratiques avec Entity Framework?

    Cordialement

    Amine

    samedi 24 septembre 2011 22:53
  • Bonjour,

    Le mécanisme de Binding est indépendant d'EntityFramework.

    • Entity Framework est un ORM qui s'occupe de mapper vos objets sur des tables.
    • Le mécanisme de Binding (Windows Forms ou WPF ou Silverlight) se base sur une implémentation de l'interface INotifyPropertyChanged sur vos objets que vous souhaitez "binder". Le Designer de Entity Framework génère par défaut des entités (objet) qui implémente l'interface INotifyPropertyChanged.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse AmineTn dimanche 25 septembre 2011 09:13
    dimanche 25 septembre 2011 09:02
    Modérateur