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 :

Choix de technos pour une meilleure productivité


Sujet :

.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Choix de technos pour une meilleure productivité
    Bonjour à tous,

    J'arrive dans le monde .net depuis peu, avec l'objectif de porter une application multi-tiers écrite en Delphi. Bases C# et .NET2.0 assimilées il me semble, mais je reste un peu (beaucoup) perdu face à la multitude de technos introduites à partir du framework 3.0, dont certaines sont déjà déclarées depréciées (ADO.NET, Linq to Sql).


    Mon souci majeur étant la productivité et simplicité d'utilisation avant les possibilités techniques, quelles seraient selon vous les meilleures combinaisons de technos afin de réaliser une appli respectant ces quatres exigences:
    - n-tiers, avec client WinForm évolutif vers WPF
    - re-hosting de workflow WF
    - fortement orientée gestion: nombreux accés base de donnée et nombreuses entités à gérer
    - indépendance du SGBD
    et quels sont les efforts d'apprentissage face au gain de productivité espérés?


    Autre questionnement... les technos poussées par MS sont elles vraiment toutes intégrables facilement à ce jour (avec .NET 3.5SP1, voir .NET 4.0)?
    Par exemple:
    - Entity Framework en modèle n-tiers? compatible ObjectDataSource?
    - Entity Framework indépendant du SGBD (utilisation des DbProviderFactories plutot que les classes typées Oracle, etc. ?)
    - Workflow re-hostable sous WPF?
    - Workflow persistent via Entity Framework?

    Merci d'avance pour vos avis éclairés sur ces deux sujets
    Tout retour d'expérience sur ce type de projet (gestion, multi-tiers) serait également le bienvenu!

  2. #2
    Membre averti

    Inscrit en
    Septembre 2004
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 105
    Points : 339
    Points
    339
    Par défaut
    Pas évident de répondre à ta question. En fait, il semble que le principal choix que tu ai soit entre WPF et WinForm.

    Je pense que tu devrais choisir WPF plutôt que WinForm parce que sur le long terme, je pense que Microsoft se concentrera plus pour développer WPF.

    Pour l'ndépendance du SGBD, regarde aussi NHibernate (commence avec cet article). Avant Entity Framework, c'était la solution la plus populaire (et techniquement, ça reste la plus avancée).

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Oui question peut être un peu trop large, je précise:

    J'essaie en fait d'évaluer si l'utilisation de .NET reste viable pour l'édition de logiciel de gestion en individuel ou petit groupe 2/3 pers., et quels sont les choix recommendés dans cette configuration:

    - utilisation ou pas d'un ORM, en prenant en compte le cout d'apprentissage (NHibernate), de débug/optimisation (stabilité de EF)

    - utilisation des wizards ou code manuel, en particulier pour le dataset: 1 table = 2500 lignes de code générées (!) c'est du code à comprendre et à maintenir: l'utilisation du wizard a aussi un coût...

    - utilisation ou pas d'une couche de services, utilisation de WCF ou remoting directement?

    Un retour d'expérience du type "j'ai utilisé xy pour le GUI, dataset créés par code, pas d'ORM, et .NET remoting plutot que WCF pour telles raisons" serait super

    Merci

  4. #4
    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
    ok

    Un retour d'expérience du type "j'ai utilisé xy pour le GUI, dataset créés par code, pas d'ORM, et .NET remoting plutot que WCF pour telles raisons" serait super
    Sur mes derniers projets j'ai utilise :
    - Subsonic comme mapper de bases de donnees (projet en 2.0, et pas le temps de faire monter l'equipe en competence sur NHibernate)
    - StructureMap et une couche de DTO pour rendre l'appli la plus ignorante de la persistance possible
    - cote winform, le controle NicePanel de PureComponents pour le mapping de l'UI et pour avoir une UI sympa
    - surtout pas de wizard ou de datasets fortement types, c'est la mort de l'equipe de maintenance

    Cote ORM, mon coeur balance, en open-source, pour des projets "complexes", je dirais NHibernate, pour des projets plus "simples", Subsonic, cote Microsoft, la derniere version d'EF est sortie et semble prometteuse, cote vendeurs, lightspeed ORM semble nickel...

    Je pense que tu devrais choisir WPF plutôt que WinForm parce que sur le long terme, je pense que Microsoft se concentrera plus pour développer WPF.
    Pas d'accord...Winform reste le produit le plus repandu cote UI bureau pour le moment, si on parle de long terme, toujours prendre en compte l'aspect maintenance, et, pour le moment, il est plus facile de faire maintenir une appli winform que WPF.
    A la limite, implementer une jolie separation MVC, pour passer facilement a WPF le jour ou la majorite des developpeurs peut supporter WPF, je dis pas non (en plus, c'est plus propre )

    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.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    ok, je commence à mieux me figurer quels choix conviendraient:

    DAL: Subsonic pour générer les classes (ça reste une approche dataset typé il me semble, mais indépendant du sgbd)

    Couche objet: Existe-il un outil complémentaire à subsonic facilitant la création des classes correspondantes?

    GUI: Utilisation des interfaces et factory afin de rendre la GUI le plus indépendante possible de la couche objet, et permettre par exemple le passage de WinForm à WPF - (MVC comme recommandé par Philippe)

    Je fuis définitivement les wizards, car pas adepte de l'approche 'génération de code' sans que:
    1) ce code soit encapsulé (i.e. le code généré peut être modifié, ce qui pose des problèmes de maintenance et robustesse) et
    2) paramétrable (utilisation de propriétés ou techniques plus évoluées, pour modifier le comportement du code généré, plutot que d'aller directement modifier le code généré)
    C'est vraiment LE point qui me perturbe dans visual studio, tout le reste (framework) étant vraiment trés bon! Avis bienvenus

    Merci pour votre aide

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2009, 11h56
  2. Réponses: 4
    Dernier message: 02/05/2007, 13h40
  3. Pertinence du choix de javascript pour une application
    Par deudtens dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/04/2006, 10h54
  4. Réponses: 5
    Dernier message: 20/05/2005, 11h33
  5. Quel langage pour une meilleure portabilité Win/Linux
    Par darkervein dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/04/2005, 14h59

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