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

Dotnet Discussion :

architecture application .net


Sujet :

Dotnet

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut architecture application .net
    J'ai besoins de conseils et d'avis concertant l'architecture de ma future application. L'objectif est de créer une application windows qui enverra des données par webservice dans une base oracle.
    J'ai pensé à un modèle en plusieurs couches :

    Présentation(wpf?) -> Webservice -> NHibernate -> Database(oracle)

    Nhibernate est il un bon choix ou y a t'il mieux ?

  2. #2
    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
    Nhibernate est un bon choix si tu as vraiment besoin d'un ORM.

    Quel que soit l'ORM, si tu utilises des Web services, tu seras confronté à la problèmatique du graph et des proxys.

    C'est plus la façon dont tu t'en serviras qui en fera un bon outil.

  3. #3
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Pour NHibernate, je dis un peu pareil, il faut voir ce que tu veux faire avec...

    Si ton idee, c'est de faire un service web qui va faire du CRUD sur ta base de donnees, autant utiliser un autre mappeur ou un outil de generation de code...

    Tu auras de vrais gains avec NHibernate si tu dois faire des mappings un rien complexes, ou si tu as des transactions longues, des choses comme ca

    Apres, si tu connais deja NHibernate, fonce

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Hydre Voir le message
    J'ai besoins de conseils et d'avis concertant l'architecture de ma future application. L'objectif est de créer une application windows qui enverra des données par webservice dans une base oracle.
    J'ai pensé à un modèle en plusieurs couches :

    Présentation(wpf?) -> Webservice -> NHibernate -> Database(oracle)

    Nhibernate est il un bon choix ou y a t'il mieux ?
    Heu... Personnellement, je pense que faire transiter tous les accès à la base par un service web n'est pas un bon choix, à moins d'y être contraint (interop avec des environnements hétérogènes comme Java).
    Les accès à la base vont être plus lents (à cause des appels SOAP) et tu vas ajouter une complexité (celle du WS) dont tu n'as pas besoin (visiblement...).
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    Pour NHibernate, je dis un peu pareil, il faut voir ce que tu veux faire avec...

    Si ton idee, c'est de faire un service web qui va faire du CRUD sur ta base de donnees, autant utiliser un autre mappeur ou un outil de generation de code...

    Tu auras de vrais gains avec NHibernate si tu dois faire des mappings un rien complexes, ou si tu as des transactions longues, des choses comme ca

    Apres, si tu connais deja NHibernate, fonce
    bon à savoir, tu conseillerais quel outil ?

  6. #6
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Gold Bug Voir le message
    Heu... Personnellement, je pense que faire transiter tous les accès à la base par un service web n'est pas un bon choix, à moins d'y être contraint (interop avec des environnements hétérogènes comme Java).
    en fait c'est le cas, puisque je dois pouvoir accéder à ce service par mobile également

  7. #7
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Hydre Voir le message
    bon à savoir, tu conseillerais quel outil ?
    Pour du CRUD, j'aime assez subsonic, sinon, tu peux aussi passer par codesmith, qui va te generer des classes de mapping a partir de ta base de donnees...

    sinon, tu peux aussi prendre MyGeneration, si tu veux maitriser tes templates

    enfin, si c'est pour faire du CRUD ....

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  8. #8
    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
    subsonic utilise des classes particuliéres qui vont faulter en sérialization.

    Pour minimiser les effets de bords, il faut réduire le plus possible les chances de problèmes de sérialisation XML.

    Et déjà rien qu'avec une IList c'est un problème.

    Tu peux plutôt maintenant que j'y pense regarder spring adotemplate qui te permet de faire du mapping simple sur des objets à moindre coût ?

  9. #9
    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
    Bonjour

    Je pense que la première question à se poser avant de savoir si il faut ou pas sortir l'artillerie lourde et de quel calibre c'est :

    combien de classes et de tables tu as à gérér ? quel est le degré de compléxité des objets ? quel est leur degré de couplage ?

    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

  10. #10
    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
    Moi le conseil que je peux te donner ayant utilisé Nh pour des web services; voilà ce que j'en ai fait :

    - Je me suis assuré que le graph était contrôlé (pas de time out, pas 300 sous objets)
    - Je me suis assuré qu'il n'y avait pas de jointures
    - J'ai dissocié les entités d'ajouts des entités de consultation (et oui! on peut faire ça!)

    Pour ton cas; la vraie question est :
    - Utiliser les web services va t'empêcher d'utiliser le lazy loading; donc as tu un modèle très relationnel ou au contraire très lache ?
    - Combien d'entités as tu dans la base existante ?
    - Est-ce que tu vas pouvoir faire des traitements atomiques ?

    Je te dis ça parce que beaucoup utilisent Nh, mais très peu savent vraiment s'en servir.
    Donc forcèmment, beaucoup pensent que c'est compliqué.

    Moi, je l'ai choisi au milieu de beaucoup (linqToS, Ef, llbl, EB, Xpo...) pour une raison principale :
    C'est le seule avec lequel je maitrise complêtement le graph.

    Si tu as besoin d'un exemple, j'en ai, je t'en donne volontiers.

  11. #11
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Bonjour

    Je pense que la première question à se poser avant de savoir si il faut ou pas sortir l'artillerie lourde et de quel calibre c'est :

    combien de classes et de tables tu as à gérér ? quel est le degré de compléxité des objets ? quel est leur degré de couplage ?
    en fait c'est très léger, j'ai un peu moins de 20 tables à gérer et les objets contiennent relativement peu de paramètres. Sinon d'après ce que j'ai vu nhibernate a l'air un peu compliqué. Subsonic serait donc un bon choix ?

  12. #12
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    sinon j'ai vu linq qui a l'air pas mal

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    LINQ ce n'est pas un framework et encore moins un ORM, c'est une nouveauté du langage C# ...

    Tu parle certainement d'Entity Framework ?

    Pour un projet de moins de 20 tables, tu n'as pas besoin de nHibernate je pense ...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  14. #14
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    codesmith donc ?

  15. #15
    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
    20 tables, moins ou plus, ça ne change rien à la choucroute, il y a des générateurs de code Nh qui font le job.

    Là où aucun ne sera prévalent sur un autre c'est dans la récursivité du modèle généré.

    Or la récursivité d'un graph, ça n'a rien à voir avec l'outil
    Si un graph est récursif sur EF, il le sera sur Nh où sur Subsonic.

    C'est une erreur courante d'utilisation d'un orm :
    Ce n'est pas le nombre d'entité qui compte, mais les relations et la profondeur des relations.

    On peut avoir un graph complêtement récursif et improductif avec 2 tables.

Discussions similaires

  1. [EJB3] Architecture application client lourd
    Par kristof_machin dans le forum Java EE
    Réponses: 3
    Dernier message: 19/04/2006, 13h36
  2. Temps de chargement des applications .NET
    Par kamal101 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 17/11/2005, 09h11
  3. [JDBC][ARCHITECTURE] application swing
    Par benssj5 dans le forum JDBC
    Réponses: 6
    Dernier message: 31/08/2004, 19h25

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