begin process at 2008 09 06 20:15:34
1 237 931 membres
313 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PATRON MVC, TUTORIAL PATRON 2


Information sur la source

Catégorie :Tutoriaux Source .NET ( DotNet ) Niveau : Expert Date de création : 14/06/2005 Date de mise à jour : 14/06/2005 07:56:26 Vu / téléchargé: 12 744 / 695

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Avant de commencer:
Ce patron est défini comme avancer, malgré qu'il soit simple. Hein ??? Oui bien que l'exemple soit très simple et qu'il est facile a comprendre, c'est un des patron les plus dur a appliquer .... par paresse. Souvent trop de paramètre a passer au model ou à la vue. Ce patron est habituellement efficace avec de la pratique, beaucoup de pratique. c'est pas une façon de concevoir une form normal a VB.net. Mais une fois maitrisé, beaucoup de temps peut-être sauver et le patron MVC est la base de beaucoup de patron qui suivront qui seront extrêment utile et même très impressionnant (comment faire un CTRL+Z et un CTRL+Y annulé ou raétablir).

Définition: Patron
Un patron est une structure de programmation en orienté objet pour faire un option spécifique dans n'importe quel programme. C'est comme un algorithme de trie. Les algo sont déjà créé et ils sont fonctionnel dans n'importe quel programme. La différence, c'est qu'un patron de conception, c'est une option spécifique a un problème récurent. Il faut avoir un très bonne connaissance en orienté objet et le UML est très vite nécessaire dans les patrons d'un certain niveau. C'est pour ça que les tutoriaux sont classé d'intermédiaire à avancer, sauf le Singleton qui est le plus facile a utiliser. Les patrons aident à la maintenance, a facilité la visualisation du code, a unifier la programation, a simplifier certain algo, rendre un code réutilisable entre diver projet et apporte des solutions logique et optimisé.

Définition: Model
Le model est une class qui fait des calculs. Il sait pas quoi faire. Il trie, compresse, fait un calcul, recherche dans une base de donnée, ... mais il sait pas pourquoi il doit le faire, mais il fait le travail. Il est commander par le controleur

Définition: Vue
La vue est la form visible par l'usager. Elle fait rien, juste afficher a l'écran. Si un évênmenet est déclancher, elle l'envoi immédiatement au controleur. Elle fait aucun calcul, elle fait juste afficher des données. Elle est toujours jumelé avec d,autre patron et le plus simple est Observer qui sera le prochain tutorial.

Définition: Controleur
Controleur est le cerveau des opérations. C'est lui qui gère tout. c'est lui qui dit au Vue de ce mettre à jours et c'est lui qui reçoi les évênements et qu'il va savoir quoi faire avec. Il fait aucun calcul, mais il conserve toutes les données utiles. c'est lui qui crée la/les vue(s) et le(s) model(s). Un controleur est utilisé dans presque 100% des patrons

Définition: MVC (Model,Vue et Controleur)
Voici la définition la plus importante. c'est ceci qui fait le patron. Un MVC est la répartition des taches sous 3 catégories de class distincte. Le model (les calculs), la Vue (la form qui fait la présentation à l'écran) et le controleur (le pont entre les 2 autres). En aucun moment la vue doit voir le model et vice versa. Certaines variantes permetre au model de voir la vue pour simplifier le code, lorsqu'il y a des changement important dasn la présentation graphique. Mais c'est a éviter le plus possible. Le mieux est de garder les 2 bien distinct.

Pourquoi le patron MVC, ça sert a quoi:
Le patron permet de diminuer le code dans les class. La raison est que s'il y a des modif a faire, on a pas tout le code a changer. Aussi, le patron aide a séparer les différente tache en méthode, puisque les, models sont totallement séparer, on a plus tendance a généraliser le code. Donc le fait de rendre le code plus générale permet de faire de la réutilisation (un autre point fort des patrons).

Exemple: votre patron vous demande de faire une form, mais une fois créé et les calcul valider, il l'aide pas. Pas de trouble. Vous changer la Vues et le tour est joué, pas besoin de revalider le model et le controleur.

Exemple: Vous avez créé une form avec des boutons pour modifier. Vous voulez rendre cette form là en lecture seule pour certian usagers. Pas de problème, une vue différente et tout le code sera pas a changer, seulement un petit tour dans l'assistance de VB.net

Exemple: Pour un programme, vous êtes plusieurs a le programmer. Une erreur dans les calcul se sont glisser et pour raison de sécurité, vous voulez pas que tout les programmeur vous tout les calculs. Ben vous séparer en plusieurs model et vous donner seulement le model qui possède l'erreur de calcul. le programmeur peut utiliser les autres models, mais il est pas obliger de les voir, tant qu'il peut les appeller et apsser les argument, il voit pas le code, donc la sécurité est augmenté

Méthaphore sur la patron: (explication du patron en touchant pas à la programmation)
Un MVC est comme une entreprise qui fait des logiciels. On a des programmeurs (Models), des représentants (Vues) et un boss (Controleurs).

Les représentants ce sont ceux que les acheteurs voient. C'est avec eux que les acheteurs vont faire affaire. Il sait pas ce qu'il a a vendre, mais il le vend. Il reçoi a certain moment des messages pour mettre a jours sa listes de ventes (Update). Il peut y avoir plusieurs représentants dans une même entreprise qui vont présenter leurs produits différenment.

Les programmeurs ce sont ceux qui fond les calculs. Certain sont spécialiser dans certain domaine bien précie (Mathématique ou compression, par exemple).

Le boss, il y en a toujours un, est celui qui fait rien. Il fait juste prendre des décisions. Il décide qui fait quoi et quel représentant est choisi. c'est lui qui peut congédier son personnel. Il y a jamais 2 boss en même temps, amis il peut avoir des suppérieurs ou des adjoints qui sont dans d'autre domaine (d'autre form). C'est lui qui envoi les demande de mise à jour et qui reçoi les questions des représentants qui sera redirigé au bon programmeur pour faire le calcul.

Ce qu'on doit regarder:
l'interface Vue, dans les autres language l'interface existe au nom d'Observer
la class controleur (controleur)
les 3 vues (seul Vue1 est commenté, les 2 autres sont très très très semblable)
les 2 models (seul model est commenté)

Conclusion

Dans le zip, vous aurez un exemple de MVC un peu modifier pour bien expliquer.
3 Vues sont affiché en même temps (en temps normal c'est juste une à la fois)
il y a 2 models, mais sont trop simple, mais pourrait très vite ce compliquer

Seul un tableau est passé en paramètre. Donc c,est très simple, masi immaginer un formulaire normal. ça fini par ce compté en dizaine de variables différentes qui seront passé, sinon plus.

Donc je le répète, bien que le patron a l'air simple, il deviens très vite compliquer et dur a appliquer dans un cas réel. Faites en un essai dans vos projets, peut de monde vont réussir du premier coup à l'appliquer, masi une fois bien compris, ça va pas plus prendre de temps a programmer, sauf beaucoup de temps sera sauver lors de la maintenance.

En entreprise, on compte qu'un programme informtique une fois terminé, il reste encore 90% des dépenses en maintenance. donc l'utilisation des patrons est très judicieuse dans ce moment là

petit truc:
utilisé un programme qui fait du UML. Je suggère Togheter de Borland qui s'intègre a Visual Basic.net. Sinon Rationnal Rose est excellent, mais trop complet pour la plus part du monde et très cher



Je sais, ça plante si on ferme une Vue, c'est normal. Le patron Observer est pas réellement implémenté.
Voir le tutorial numéro3 sur le patron Observer pour montrer comment corriger le problème.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

14 juin 2005 07:05:09 :
mini correction
14 juin 2005 07:56:26 :
petit spécification pour la raison que l'application plante si on ferme une Vue Voir le patron Observer pour corriger le problème
  • signaler à un administrateur
    Commentaire de Cyrixp le 22/06/2005 10:30:48

    Les fautes d'orthographes entachent ton texte.
    C'est pénible à lire.

  • signaler à un administrateur
    Commentaire de dragon le 22/06/2005 17:09:47

    je susi d'accord qu'il y a des fautes de français, mais de là a mettre un 1/10 pour ça. Surtout qu'il y en a pas tant que ça et c'est surtout de "s" qui manque.

    bon oki, j'aurais pus reformuler autrement à 2 ou 3 endroits, mais c'est très compréhesible, mais s'il falait donner un 1/10 pour chaque source où ill y a qquelques fautes et 1 ou 2 structures qui pourraient être reformulé, alors presque toutes les sources du sites auraient un 1/10.

    De toute façon, on est pas ici pour un cour de français, mais pour un tutorial. A moins d'être totallement ilisible, ce qui est loin d'être le cas.

    En plus, le site code source est là pour que les programmeur s'entraide avec des remarque constructives, si je regarde ça fait 1 ans que tu es sur code sources et rien. aucune source, aucune aide de ta part. Tu fais partie des profils qui pompe le site sans rien y apporter. Toutes les sources, les tutorials, les exemples, ... viennent de moi. J'ai tout programmer a 100% sasn me baser sur des sources déjà existante. si tu tape "patron observer vb.net" dans google, c'est ma source qui sort numéro 1 de la recherche. Les patrons sont très présent en Java et C++, mais pas en vb.net. Je suis DANS les premier (pas dit le premier et loin de là) a faire des exemple en vb.net et surtout en français en plus.

    Donc si tu crois crois si bon pour critiquer un tutorial qui a demander des heures a créé, essai donc de faire pareil pour le plaisir. On verra si tu vas pas faire de fautes de français.

    Et si tu es pas capapble de faire des commentaires constructifs, évite donc de voter. Fait un commentaires pour dire qu'il y a trop de fautes avec quelques exemples, je vais corriger avec plaisir. Mais donner 1/10 pis t'as des fautes, ça dit rien et rien sera corriger. c'est pas un tutorial sur le français, mais sur le patron MVC

  • signaler à un administrateur
    Commentaire de Cyrixp le 22/06/2005 18:41:53

    Excuse moi, c'est vrai ca ne vaut pas 1/10, si il y a un moyen de changer la note je suis près à annuler.
    Le problème c'est que le sujet est très intéressant mais l'orthographe n'incite pas à lire ton texte.
    D'un point de vue professionnel tu te ferais "jeter"

  • signaler à un administrateur
    Commentaire de dragon le 22/06/2005 19:17:09

    j'ai plus de 30 patrons a faire, donc plus de 30 exemples a créé et ça je compte seulement les patrons de GOF, Si j'ajoute les 5 patrons de GRASP et les quelques autres qui ont fait des patrons plus ou moins officiel, mettons que je passe pas trop de temps a corriger mes textes.

    si tu vois des corrections a faire, vas y, je vais corriger, ça va me faire plaisir ou si tu as des passages où c'est trop flou. Ça me dérange pas, c'est constructif comme remarque, je vais corriger.

    si tu comptes que faire l'exemple, ça me prend entre 2 et 10 heures de boulot, plus une bonne heure a relire tout les livres sur le sujet (pour être sur de pas dire une connerie dans le tutorials, j'ai quand même 5 références distinctes donc le livre écris par GOF). Si tu ajoute au moins 1 heure pour comenter la source et entre 30 et 1h30 écris le tutorial. ça aprait pas, mais c'est un travail immense traduire tout les patrons en vb.net. Je epux pas seulement copier un exemple écris en java ou en C++ comme les autres site web ont fait.

    D'un autre côté, les patrons viennent avec la pratique, après avoir fait tout les tutoriaux, je devrais être rendu pas pire lol. Mais présentement MVC est intéressant, Singleton est pratique, mais c'est la base des patrons.

    plus avancer dans GOF
    faire un undo er redo (command)
    permettre d'avoir pleins de composant graphiqeu semblable (Decortor) c'est le prochain tutorial, le code est terminé
    permettre de faire une form parent et qu'elle puisse appeller n'importe quel form enfant qui possède n'importe quel structure, sans devoir coder quoi que ce soit
    permettre de faire des "save as" sous différent format, sans changer le code
    permettre a un groupe de programmeur de faire un logiciel sans jamais se piller sur les pieds
    réutilisé du code dans n'importe quel application et le gardant tel quel. On code juste une fois et  c'est fait pour tout nos logiciel
    sans compté qu'il y a certain patron qui aide énormément a déboguer (le model entre autre, on a juste a faire nos test là, le restant calcul rien. On peut même donner le model a un programmeur débutant pour qu'il test, il pourra jamais détruire le restant du travail, il aura seulement une partie simple a analyser)

    les patrons de GRASP
    comment faire nos lien entre nos class dans tel ou tel situation
    est ce que c'est mieux que ce soi le plateau de jeu qui possède des dés ou le joueur qui les possède ou que ce soi un singleton ? (ex: Monopoly)

    ---------------------
    si ça fini par t'intéresser, je me pose un dilem dasn le tutorial 4 dans les commentaires. Comme exemple, je vais faire quoi comme application. J'ai déjà beaucoup de code de fait, mais je peux faire presque n'importe quoi sans rien modifier et ça va du jeu de carte, au jeu avec des dés ou encore au jeu genre Boggle. c'est ce qui est intéressant, c'est tellement générale et tellement transportable d'une aplpication a l'autre, qu'on peut programmer avant même de savoir c'est quoi qu'on va faire.

    -----------------
    en apssant, non on peut pas changer notre note. Pour ça que je préfère pas voter sur une source la première fois que je tombe dessus, s,il y a des problèmes. Si l'auteur les corriger, je donne ma note après, si l'auteur fait rien, là je cale la source. Mais je laisse toujours le temps a l'auteur de corriger.

  • signaler à un administrateur
    Commentaire de fjohn le 17/08/2005 11:10:22

    Completement conne cette note. On ne juge pas le fond à l'aune de la forme même si cela est trop souvent le cas encore de nos jours. Pour rappel, dans les copies du ba qui sont une epreuves bien plus séruieuse que de publier ici, l'orthographe n'est jugée que sur 1 ou 2 point maximums !

    En plus vu la nature du sujet et le peu de gens suceptible de l'expliquer et la bonne volonté de l'auteur, c'est completement stupide de decourager les bonnes volonté.

    Cel dis, c'est vrai que c'est toujours tres desagreable, mais c'est le mal de la methode semi-globale à la con de l' education nationnale ...

  • signaler à un administrateur
    Commentaire de BruNews le 17/08/2005 11:50:24 administrateur CS

    C'est réglé pour la note mais SVP dragon, un effort sur l'écriture pour la suite.

  • signaler à un administrateur
    Commentaire de dragon le 17/08/2005 12:25:30

    j'ai refait le tour du texte et les fautes de français (encore) sont réellement pas nombreuses

    mes "s" sont là, les mots sont bien orthographié, les "er" et les "é" ont pas mal tous l'air correct. J'ai presque que pas d'inverson de lettres. Pas de mot écrit en SMS.

    Désoler, mais mon français est peut-être pas parfait, mais cette sourcea vraiment pas beaucoup de fautes de français et si moindrement quelqu'un lit le texte, il aura aucun problème pour le lire. Oui la première version de mon texte en avait plusieurs, mais ça a été corrigé il y a 2 mois

  • signaler à un administrateur
    Commentaire de dragon le 17/08/2005 12:27:45

    j'ai encore refais le tour, il manque quelques "s", masi de là à dire que mon texte est peins de fautes. Faut pas charier

  • signaler à un administrateur
    Commentaire de BruNews le 17/08/2005 12:36:59 administrateur CS

    les 's' sont le moindre mal.
    "qui reçoi les évênements"
    deviendrait: "qui reçoit les événements", conjugaison pour "reçoit" et accentuation pour "événement".
    Passe donc ton texte au correcteur de Word, c'est simple et rapide, copier coller suffit.

  • signaler à un administrateur
    Commentaire de __fabrice le 27/08/2005 00:57:55

    bonjour à tous,

    Je suis nouveau sur ce site. Je fais surtout du PHP et je me lance dans le methode MVC. Alors, faire çà en VB, pourquoi pas, faut essayer :)
    Pour revenir sur les fautes d'othographes, c'est vrai, c'est quand même navrant que maintenant, les gens ne savent plus écrire une phrase sans faire une faute tout les 2 mots... c'est irréel.
    Que l'orthographe soit tres peu noté, c'est tout simplement une honte, çà n'incite pas les jeunes à ecrire correctement...oui, vraiment navrant et pénible, et handicapant dans la vie professionel et social bien sur, faut en etre conscient !
    Ceci dit, ont fait tous des fautes, moi le premier :), mais bon, faisont un effort svp !!!
    Fabrice

  • signaler à un administrateur
    Commentaire de dragon le 27/08/2005 04:15:30

    en vb.net, pas en vb6.0. petite différence
    vb.net a été conçu pour faire de l'orienté objet (enfin), ce qui était pas le cas de vb6.0

    c'est toujours bien de spécifier pour pas qu'une personne croit pouvoir faire pareil en vb6.0 .... bien qu'on pourrait adapter MVC en vb6.0, sauf ça donnerait plus grand chose

  • signaler à un administrateur
    Commentaire de aurelien0306 le 20/03/2006 12:59:10

    Bon tuto mais dommage effectivement que même après ta correction il reste énormément de fautes (et notamment les "é/er", les "à", les "ne" manquants et les accords (reçoiT, envoiE et les "s"..) (plus de 100)
    Au passage j'ai remplacé dans la version modifiée "model" par "modèle" car MVC = Modèle Vue Contrôleur (avec un circonflexe) ou "Model View Controller" mais il faudrait éviter le mix des deux (ce n'est pas pour toi en particulier on fait souvent l'erreur)... et form entre guillemets plutôt.

    Mais ça n'empêche que c'est un bon tuto et je te crois quand tu dis que ça prend du temps... :)

  • signaler à un administrateur
    Commentaire de TMONOD le 28/06/2006 13:41:59

    Je n'avais jamais entendu de MVC avant. Un grand merci. Ce sont des gens comme toi qui font avancer les chôses.
    En ce qui concerne les fautes français, il ne faut pas être sorcier pour s'apercevoir que tu es étranger.Je m'éstimerais trés fier de parler anglais ou lithuanien aussi bien que tu t'exprime en français (surtout dans le domaine trés technique de l'informatique). Je te souhaites de réussir.

  • signaler à un administrateur
    Commentaire de dragon le 28/06/2006 20:13:54

    non désolé, je suis juste pourri en français. Demande moi d,apprendre n'importe quoi en informatique, j'ai 0 problème, mais les langues verbales, je suis null. Je comprend pas pourquoi, pourtant ça se ressemble. Les 2 ce sont des façons de s'exprimer.

  • signaler à un administrateur
    Commentaire de TMONOD le 28/06/2006 21:32:16

    Ok désolé. Bonne chance pour toi. Fais-nous de jolies sources !

  • signaler à un administrateur
    Commentaire de dragon le 28/06/2006 21:38:34

    j'ai plus le temps
    trop de travail en même temps et très peu de monde sont intéressé par des sources haut niveau d'architecture logiciel, le monde préfère encore la programmation évênementiel avec un "je m'en fou de l'architecture"

    s'il s'y intéressait le moindrement, le programme aurait peut-être moins de bug et serait plus flexible et celui qui dit que l'orienté objet est plus lent, ça prouve juste qu'il sait pas dequoi il parle. J'ai fait, pour un de mes cours universitaire, un résulveur de Sudoku en orienté objet et programmé en Java ... j'ai battu le reccord de mon université de près de 3 milli-secondes et pourtant celui que j'ai battu était en C++.

    l'architecture c'est ce qui est le plus important dans un programme ... mais bon, il y en a peut-être que 3 ou 4 dans tout VBFrance qui le comprenne

  • signaler à un administrateur
    Commentaire de fregolo52 le 19/07/2006 11:44:06

    Salut,

    c'est vrai que c'est difficile de te lire, mais bon j'ai appris beaucoup de chose avec tes tutriels. Meme si en regardant partout personne ne dit tout à fait la même chose pour les communication entre le M, le C et le V.
    Maintenant, je suis prêt (ou presque) pour faire mon appli.

    merci

  • signaler à un administrateur
    Commentaire de dragon le 19/07/2006 14:04:27

    moi, je me suis basé sur le livre écris par les 4 gars de GoF. Et je suis très loin de ma première application qui utilise ce patron et ça a toujours très bien marché.

    Mais bon, c'est comme n'importe quoi, il y a toujours une différence en théorie et pratique

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS