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

 .NET Discussion :

architecture multi couche avec Linq to SQL


Sujet :

.NET

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut architecture multi couche avec Linq to SQL
    Bonjour,

    j'essaye de créer mon application winform avec une architecture multi couche, ma question est comment faîtes vous dans votre couche business pour appliquer des logiques métiers à vos objets représentant votre modèle de données ? Est-ce que vous utilisez les entités générées par Linq to sql ? ou alors vous créez vos propres business objects ? Dans ce dernier cas, je trouve que c'est redondant et fastidieux de recréer les même champs que les entitées Linq, est-ce normal ?

    Et deuxième question, comment faîtes vous si on veut récupérer les données d'une requête sql qui joint deux tables ? on recrée un business object avec les champs des deux tables réunies ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Pour ta première question, pour ma part je réutilise les objets crées par Linq2Sql dans ma couche métier.

    Tu trouvera sur le forum d'autre pattern plus ou moins compliqués.

    Il me semble que Entity Framework est plus adapté pour les architectures multi-couches.

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Pour ma part, j'ai précisément éliminé Linq to Sql à cause des difficultés qu'il engendrait avec les architectures n-layer, difficultés amplifiées encore avec le n-tier.

    Si je n'utilise pas EF, je n'utilise que l'accés au proc stoc de Linq To Sql; c'est le seul cas où je trouve le rapport cout/benefice intéressant (check des paramètres à la compilation), encore qu'il soit incapable de regrouper ces typages de retour entre deux proc stoc qui retourne le même type de donnée !!!!

    MS semble clairement ne plus capitaliser sur Linq To Sql, et ça se comprend.

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Skyounet, éventuellement si tu as des noms de patterns en tête, indique les ici. J'avais lu dans un article que le pattern repository serait adapté, faut que je la retrouve.

    Je vais étudier des orm alternatives pour voir ce qui se fait ailleurs mais bon, j'aimerai bien garder linq 2 sql pour sa simplicité et réussir à avoir une architecture propre avec.

    Bluedeep, merci pour ton témoignage, et à titre de curiosité, peux tu juste indiquer quel orm tu utilises ?
    Concernant le typage de tes proc stoc, tu peux essayé de les typer avec un POCO.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    il faut noter que Microsoft a arrêté le "développement" de LinqToSQL, et qu'il est préconisé d'utiliser LinqToEntities. Cependant LinqToSQL fonctionne et continuera à être supporté.
    Le passage de l'un a l'autre est très facile (les syntaxes Linq étant identiques).
    Personnellement j'utilise donc LinqToEntities pour générer la DAL et l'aspect ORM, en surchargeant à l'aide de classe partielle les entitées générées pour incorporer la logique métier. Tout ça dans un projet de type DLL, qui sera utilisé par des projets WinForm, ASP.NET, ou encore Silverlight.

    Cordialement,
    A.M.

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par amadray Voir le message
    ou encore Silverlight.
    Euh je pense pas pour Silverlight, vu que SL ne gère pas ces choses là (sauf en passant par un WS).

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par amadray Voir le message
    Bonjour,
    il faut noter que Microsoft a arrêté le "développement" de LinqToSQL, et qu'il est préconisé d'utiliser LinqToEntities. Cependant LinqToSQL fonctionne et continuera à être supporté.
    Le passage de l'un a l'autre est très facile (les syntaxes Linq étant identiques).
    Personnellement j'utilise donc LinqToEntities pour générer la DAL et l'aspect ORM, en surchargeant à l'aide de classe partielle les entitées générées pour incorporer la logique métier. Tout ça dans un projet de type DLL, qui sera utilisé par des projets WinForm, ASP.NET, ou encore Silverlight.

    Cordialement,
    A.M.
    Le surcharge à l'aide de classe partielle, tu peux également le faire avec linq 2 sql. Je ne connais pas encore très bien linq 2 entities, mais comment fais tu pour passer les valeurs des textbox de ton UI dans ta DLL ? tu utilises les objets métiers généré par LinqToEntities ?

Discussions similaires

  1. Architecture avec LINQ to SQL
    Par Aeronia dans le forum Linq
    Réponses: 1
    Dernier message: 29/04/2011, 15h15
  2. Mauvaise performance avec Linq to sql
    Par Wasrack dans le forum Linq
    Réponses: 2
    Dernier message: 30/09/2009, 09h45
  3. Verouiller un enregistrement avec linq to sql
    Par boby62423 dans le forum Linq
    Réponses: 10
    Dernier message: 29/04/2009, 14h34
  4. Architecture en couche avec Silverlight.Net ?
    Par Invité dans le forum Silverlight
    Réponses: 7
    Dernier message: 12/02/2009, 12h08
  5. Architecture multi couches avec librairie borland?
    Par seb_asm dans le forum JBuilder
    Réponses: 4
    Dernier message: 08/06/2005, 11h14

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