IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Quel ORM chosir ?


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Quel ORM chosir ?
    Bonjour à tous,

    Je vais me lancer dans la création d'une application Web ASP.NET.
    Comme dans la plupart des projets, je dois concevoir une base de données.
    Ma base de données comporte une dizaine de tables.

    Cependant, j'ai cherché les ORM à utiliser en .NET et je suis donc tombé sur plusieurs technologies : Linq to SQL, Linq to Entities, Entity Framework, ADO.NET.

    J'aimerais bien savoir les différences entres toutes ces technologies. J'ai commencé à faire des exemples avec Linq to SQL et Linq to Entities, je ne vois pas de grande différence...
    Après je me suis aperçu de l'existence de l'Entity Framework, qu'apporte-il concrètement ?
    Concernant ADO.NET, j'ai l'impression que c'est un peu come JDBC en Java.

    Venant plus du monde Java, j'aimerais savoir si il est possible de générer des sessions beans et entities bean comme en Java ?

    Ça serait sympa si des personnes pouvaient m'éclairer en quelques lignes.

    Merci d'avance pour votre aide

    Flo62

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439

  3. #3
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Linq to Entities, Entity Framework
    Idem...

    Partez sur du Entities... LINQ TO SQL est dépassé, sorte de 'coup d'essais' avant LTE...

    Votre base est déjà modélisée?
    Mieu elle le sera, plus facile et efficace sera votre MAPPING côté code client.
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Idem...

    LINQ TO SQL est dépassé,.
    Il n'est pas seulement dépassé, il est (et a toujours été) surtout inutilisable : en effet, il crée des entités pour les tables de liaisons [M,N] ce qui aboutit à un modèle objet exposé absurde.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos réponses

    Effectivement, je me suis penché sur Entity Framework et Linq to Entities. Je trouve ça vraiment pas mal. J'arrive assez facilement à faire toutes les opérations de CRUD.

    Cependant j'ai une question : Dans la plupart des exemples sur le net, les requêtes ont lieu dans le code behind. Est-ce vraiment une bonne pratique ?
    Ne faudrait-il pas créer une couche purement métier ?

    Si quelqu'un pourrait m'éclairer sur la structuration d'un projet Web avec Entity Framework.

    Encore merci de votre aide

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    il crée des entités pour les tables de liaisons [M,N] ce qui aboutit à un modèle objet exposé absurde

    +1
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par flo62 Voir le message
    Merci pour vos réponses

    Effectivement, je me suis penché sur Entity Framework et Linq to Entities. Je trouve ça vraiment pas mal. J'arrive assez facilement à faire toutes les opérations de CRUD.

    Cependant j'ai une question : Dans la plupart des exemples sur le net, les requêtes ont lieu dans le code behind. Est-ce vraiment une bonne pratique ?
    Ne faudrait-il pas créer une couche purement métier ?

    Si quelqu'un pourrait m'éclairer sur la structuration d'un projet Web avec Entity Framework.

    Encore merci de votre aide
    Dans l'idéal il faudrait en effet créer une couche d'accès aux données et une couche métier.

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Désolé, squattage de topic

    Je suis en train de loucher sur EntityFramework.
    Je pense l'utiliser pour un projet perso nécessitant une bdd contenant 5 à 10 tables, pas vraiment de contraintes en terme de performances et un stockage de données a priori peu lourd.
    EntityFramework me semble adapté mais j'avoue ne pas vraiment savoir par où commencer.

    Avec les quelques informations que je donne, EF vous semble-t-il approprié ?
    Si oui (et même si non à vrai dire), pouvez-vous me conseiller un "tutoriel" en ligne qui décrive son utilisation par la pratique ?

    D'avance merci

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    Citation Envoyé par flo62 Voir le message
    Bonjour à tous,
    Venant plus du monde Java, j'aimerais savoir si il est possible de générer des sessions beans et entities bean comme en Java ?

    Ça serait sympa si des personnes pouvaient m'éclairer en quelques lignes.

    Merci d'avance pour votre aide

    Flo62
    Le plus proche restera bien sur NHibernate. Il n'existe pas de spécification comme JPA en .Net. En revanche, l'équivalent est WCF qui va avoir deux grands principes :
    - L'operation contract qui est l'équivalent du session bean
    - le data contract qui est l'équivalent de l'entities bean

    Dans tous les cas, il n'existe pas d'encaspulation ou d'injection native en WCF.
    - WCF ne spécifie pas l'appel d'un service par un service
    - L'instanciation des singletons
    - La mise à disposition de l'entity manager
    Tout ça est à gérer à la mano..
    Un data contract signifie juste que l'objet est serialisable et transportable. L'operation contract ne jouera aucun rôle dans sa persistence.

    Concernant la session, par défaut WCF est stateless, en revanche, il est beaucoup plus ouvert qu'ejb et permet de nombreux mode de gestion de session.
    Le mode par défaut (sans session) est le plus proche du stateless EJB. Chaque appel crée une instance du service.
    Il existe aussi des modes ou une session est requise, avec des modes qui permet d'initier un dialogue, similaire à l'ejb statefull, là encore avec moins d'encapsulation et plus de paramètrage à faire.
    Enfin le singleton existe soit en service (instance unique partagée), soit directement dans le framework (static).

    La logique est relativement similaire, puisque les attributs [attributs] en .Net sont équivalents aux annotations @annot en Java.

    Globalement, le framework est plus riche qu'ejb3, mais moins mature et avec des usages moins normés.

    Quoi qu'en dise les "experts" avec des exemples à 3 tables, le choix d'un ORM est structurant en .Net du fait justement de l'absence d'une spécification commune. Attention aussi à la sérialisation qui peut être un sujet complexe.
    La serialisation native est ...lente, peu souple. Il y a des alternatives, mais là encore, il faut faire de la plomberie.

Discussions similaires

  1. quel orm choisir.. ?
    Par champomy62 dans le forum Général Dotnet
    Réponses: 14
    Dernier message: 27/02/2012, 14h12
  2. quels frameworks chosir ?
    Par Colonel-Essaid dans le forum Java EE
    Réponses: 5
    Dernier message: 10/04/2011, 23h42
  3. Arboresence audio : quel langage chosir ?
    Par Imadus dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 18/11/2010, 13h07
  4. Quel ORM Java se rapproche le plus d'ActiveRecord (ruby) ?
    Par jlandrei dans le forum Persistance des données
    Réponses: 1
    Dernier message: 23/09/2010, 07h06
  5. Quel ORM utiliser?
    Par Thomas.NET dans le forum Accès aux données
    Réponses: 22
    Dernier message: 13/04/2010, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo