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

ASP.NET Discussion :

Compréhension MVC avec C#


Sujet :

ASP.NET

  1. #1
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut Compréhension MVC avec C#
    J'essaye d'apprendre à utiliser le Pattern MVC pour une appli web mais j'ai du mal à bien comprendre comment l'utiliser, même après avoir vu un tas de tutos et de schémas. Voilà ce que j'ai compris :
    • Séparation de la présentation de l'application - et des données qu'elle manipule, que ce soit sur une base de données et des fichiers ou un "modèle métier"


    C'est là que je comprend la théorie, enfin je crois, mais pour la pratique... Comment séparer les contrôles utilisateur (interface graphique) de leur traitement ? Il y a bien un moment ou, par exemple on doit récupérer une donnée d'un TextBox, l'utiliser, et renvoyer un résultat dans un autre contrôle.

    Sur ce que j'ai lu, il est dit que l'on peut avoir plusieurs vues pour un même modèle. Cela signifie qu'on présente exactement les mêmes données dans un rendu graphique différent ? Par exemple dans un tableau ou dans une liste déroulante ? C'est qu'une question de rendu alors, comme changer la déco mais pas le contenu.

    J'ai besoin de savoir comment ça s'articule et ce que ça pourrait donner sur le langage que je maitrise le mieux.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    MVC n'a rien à voir avec C# vu que c'est un concept. Il faudrait peut-être d'ailleurs déplacer la discussion dans le forum conception.
    J'appréhende assez mal MVC aussi. A mon avis ce qu'il faut retenir c'est les flux d'informations dans le modèle. Je viens de regarder sur Wikipedia

    Qu'est-ce exactement que ce contôleur? On visualise à peu près la vue et le modèle, mais le contrôleur?
    Le contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour la vue ou le modèle et les synchroniser
    Une couche métier (BLL) améliorée? Apparement puisque ce serait dans le modèle. Le modèle serait en même temps la BLL et la couche d'accès aux données (DAL)?
    Le modèle représente le comportement de l'application : traitements des données, interactions avec la base de données, etc.
    MVC serait-il du 3-Tiers "laxiste"?
    La vue, l'IHM, peut s'adresser directement au modèle pour récupérer des données. Ceci n'est pas possible dans le cas d'une architecture 3-Tiers.
    Il y a bien un moment ou, par exemple on doit récupérer une donnée d'un TextBox, l'utiliser, et renvoyer un résultat dans un autre contrôle.
    Tout à fait et à mon avis cela n'a pas de rapport. La donnée de la textbox passera par le contrôleur qui se chargera si nécessaire de l'envoyer au modèle pour une mise à jour de la base.

    MVC vs 3-Tiers? Y a-t-il un meilleur modèle? Je dirai mieu vaut un 3-Tiers maîtrisé qu'un mauvais MVC.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Sinon je te conseil le pattern MVP :
    http://msdn.microsoft.com/en-us/magazine/cc188690.aspx

  4. #4
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    J'ai mis volontairement ce post ici comme c'est une question de préférence de langage sur un Design Pattern. Ce post aurait pu être mis dans conception mais j'avais besoin d'avoir des infos dessus sur un autre langage que Java ou PHP.

    Je vais jeter un oeil au MVP.

    Sinon, c'est hors sujet mais j'ai besoin d'un projet pour améliorer mes aptitudes niveau prog. associés à des Design Patterns, SQL n'est pas une priorité absolue mais peut faire faire partie de l'équation. Une idée pour ne pas perdre la main ? Ça fait 6 mois que j'ai eu le BTS et plus de taf dans l'informatique depuis, plus de temps je passe à ne pas en faire, plus il va être difficile de justifier ce vide. Une idée ?

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    Ça fait 6 mois que j'ai eu le BTS et plus de taf dans l'informatique depuis, plus de temps je passe à ne pas en faire, plus il va être difficile de justifier ce vide. Une idée ?
    Monter sur Paris?
    Si BTS => t'es jeune. Monte à Paris galère un peu (beaucoup même) et monte en compétence. Il me semble qu'en informatique le boulot manque pas.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Trouver un boulot avec le BTS ? Mouais, sans expérience c'est tendu actuellement, même sur Paris, j'ai passé pas mal d'entretiens ces derniers temps, ça se passe toujours bien en théorie, après pour une vraie embauche, c'est autre chose. Ce diplome à très peu de valeur, la preuve à cette heure ci je fais un boulot que je faisait quand j'avais 16 ans et que j'avais aucun diplome.

  7. #7
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Tu as cherché dans quelle SSII? Tu as déposé ton CV sur lesjeudis?
    "Winter is coming" (ma nouvelle page d'accueil)

  8. #8
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Non, pas sur lesjeudis. Des SSII j'en ai vu quelques unes et elles étaient pas particulièrement motivées à embaucher quelqu'un sans expérience avec un BTS, et je te parle même pas de ses joueurs de flute dans les cabinets de recrutement. C'est pas sans raison que j'ai aussi cherché un travail n'ayant rien à voir avec l'informatique.

    Bon allez... je vais me consacrer à autre chose que le PC, j'ai déjà passé trop de temps devant ce foutu écran.

    Heu... sinon j'ai partiellement regardé le code du tuto de Microsoft, c'est quoi l'intérêt de mettre des interfaces partout ?

  9. #9
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Ben essayes les offres d'emploi développeur http://emploi.developpez.com. Soigne ton CV avant de le mettre en ligne.
    Y'a aussi dans une moindre mesure Viadéo.

    Se trouver un projet c dur, faut tenir. T'as pas une belle mère qui veut un site sur la sophrologie toi? Ou bien ton club de sport, ou de philatélie? Réponds à un appel d'offre du forum emploi de DVPZ

    J'ai trouvé du taf en Provence grâce à qqn du forum.

    Ouvre ton blog sur developpez et deviens une référence

    Bon courage.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Bonjour,

    Tu pourrais t'inspirer de ce tuto qui decrit l'impelmentation du patron MVC

    http://msdn.microsoft.com/fr-fr/libr...40(en-us).aspx


    Bonne lecture

  11. #11
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Le MVP me parait pas mal. Mais j'ai besoin d'indications, je comprends pas trop certaines choses au niveau du code : Lien pour télécharger l'ensemble du code source

    C'est quoi le MVP.DTO ? Par exemple dans SimpleLookupDTO, ça sert à quoi les expressions "get" ? C'est un attribut en lecture seule ?
    Pareil dans l'interface IViewCustomerView :

    string Fax{set;}

    Le "set" sert à quoi ?

    J'ai du mal à comprendre l'ensemble, même si le code n'a pas l'air bien compliqué, je fais aussi abstraction du truc avec la base de données.

    Y a quoi de si interessant à utiliser des interfaces partout ? Après tout, ça reste seulement un "corps" de classe avec seulement des signatures d'attributs et de méthodes. Elles doivent forcément être réécrites comme pour l'héritage. Ca me fait penser au Pattern "Strategy" ou on peut appliquer à volonté des traitements possibles à une classe sans les contraintes que générerai l'héritage. Si quelqu'un veut bien m'expliquer tout ça, de l'aide serait la bienvenue.

  12. #12
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Aizen64 Voir le message
    Y a quoi de si interessant à utiliser des interfaces partout ?
    L'utilisation d'interface est extrêmement pratique.
    Ex 1: en ce qui concerne l'accès aux données, il existe la "DbProviderFactory". Il s'agit d'une classe qui génère les objets nécessaires à l'accès aux données uniquement par des interfaces. L'utilisation d'un tel code permet de changer de base de données sans revoir aucune ligne de code. Au contraire, si tu accèdes à ta base de données en utilisant uniquement des objets SQL, tu auras toutes les peines du monde le jour où tu souhaitera passer sous MySQL ou Oracle.
    Ex 2: Je travaille sur un projet de passerelle permettant à ma boite de récupérer des informations à propos de quantité de produits disponibles ainsi que de leurs tarifs.
    J'ai fait en sorte que mes classe implémentent toutes la même interface. Ainsi, je peux ne coder qu'une seule page web pour gérer les produits de tous mes fournisseurs. Il suffit que je passe le nom de mon fournisseur à ma fabrique pour récupérer les types associés.
    Citation Envoyé par g_tarik0010 Voir le message
    Tu pourrais t'inspirer de ce tuto qui decrit l'impelmentation du patron MVC
    Euh, y'a un débat ouvert à propos des différences entre MVC et 3-Tiers, parce que là... Je vois plus trop de différences hormis les méthodes de communications entre les couches...

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  13. #13
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Par manque de temps, pour l'instant je ne peux m'etendre sur le pattern MVP, mais je te donne un lien bien fait sur developpez.com : http://jab.developpez.com/tutoriels/dotnet/mvppattern/

    Il explique de facon clair ce pattern.

    En gros tu as une Interface qui relate tous tes cas d'utilisations, qui elle sera partagée par ta page aspx et inplementé par ton controller (presenter).

    Ce n'est plus la page aspx qui va chercher les données mais c'est le presenter qui lui push les informations. L'avantage c'est que l'interface graphique (UI) reste independante du developpement.

    Que ce soit du winform, webform..... tu n'auras que la couche presentation a changer .

  14. #14
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Que ce soit du winform, webform..... tu n'auras que la couche presentation a changer .
    Ca se fait très bien en 3-Tiers. Qu'ajoute le controleur?
    "Winter is coming" (ma nouvelle page d'accueil)

  15. #15
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Il pilote l'interface graphique.

    C'est pour cela que l'ui peut etre facilement changé. Il fait la relation entre ce que veux l'ui et ce que lui transmets la BLL

  16. #16
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par topolino Voir le message
    Il pilote l'interface graphique.
    Ca veut dire quoi? Franchement j'ai du mal a visualiser. Merci de tes eclaircissements.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  17. #17
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    l'interface graphique se contente d'émettre des événements lorsqu'une action est démandée.
    Elle implement l'interface.

    C'est à la charge du controller de communiquer avec les autres couches afin de recuperer les données. Et c'est lui qui les transmets et les valides avant de les donner à l'interface graphique.

  18. #18
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Pourtant, en MVC on ne parle pas de couche.
    "Winter is coming" (ma nouvelle page d'accueil)

  19. #19
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Je ne comprends pas ta reponse.

    C'est de l'ironie ?

  20. #20
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    C'est de l'ironie ?
    Bah non, loin de moi. Je veux dire que je n'arrive pas à definir la/les différences entre 3-Tiers et MVC. Mise à part le fait que l'UI peut s'adresser au modèle en court circuitant le controleur. Ou alors, je fais du MVC dans mon archi 3-Tiers....
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Débugger une application MVC avec Zend Studio
    Par StefC30 dans le forum Zend Studio
    Réponses: 5
    Dernier message: 16/04/2008, 22h47
  2. Réponses: 27
    Dernier message: 30/10/2007, 10h12
  3. MVC avec PHP : Sessions
    Par adrien357 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2007, 10h08
  4. Comprendre MVC avec les JSF
    Par nighma dans le forum JSF
    Réponses: 2
    Dernier message: 18/04/2007, 16h45
  5. [debutante]MVC avec JSF
    Par solawe dans le forum JSF
    Réponses: 13
    Dernier message: 15/11/2006, 01h43

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