2012-04-08 8 views
0

Je suis nouveau à MVP. Puis-je utiliser des tutoriels créés pour asp.net MVC pour apprendre les fondements et les bases du modèle MVP? ou les différences sont trop?Tutoriels MVC pour MVP

+0

Avec le code source à pratiquer, Unit Tests a également expliqué pour expliquer ses avantages - http://www.advertisingmarket.co.uk/MVPPattern –

Répondre

1

Les 2 modèles sont assez différents. Le modèle MVP peut être utilisé avec les WebForms classiques alors qu'ASP.NET MVC intègre déjà de nombreuses parties du modèle MVC dans le framework lui-même. La séparation des préoccupations est déjà présente. Si vous voulez utiliser MVP avec WebForms classique, vous aurez beaucoup plus de travail car le pattern est inexistant dans le framework.

+0

thanx, j'ai lu sur les concepts et les définitions MVP. mais j'ai un problème avec comment rediriger un utilisateur vers une autre page ou dans quelle couche? où implémenter la validation? en fait, comment mettre en œuvre MVP à des projets réels. il n'y a pas assez de bons tutoriels pour MVP dans la mesure où j'ai cherché –

+0

Je sais que c'est vieux mais juste pour terminer. Votre page (vue) fait la redirection car elle a accès au HttpContext. Votre présentateur ne doit pas accéder directement au HttpContext. Votre page (vue) dérive d'une interface i.e: IView qui peut avoir une méthode de redirection prenant un URI comme paramètre. Votre page (View) implémente ensuite Redirect. Ainsi, lorsque le présentateur appelle 'MyView.Redirect (MyUri)', c'est la page (View) qui effectuera la redirection et le présentateur ne lui envoie que l'emplacement. Cela rend également le test de votre présentateur tellement plus facile que vous pouvez vous moquer de votre propre vue et ne pas compter sur httpContext. – Nope

+0

Pour clarifier, votre présentateur au moment de l'exécution a accès au HttpContext mais lorsque vous écrivez des tests unitaires contre votre présentateur, vous obtenez une erreur 'Object not initialized' car le framework de test unitaire n'initialisera pas le httpcontext. Comme le HttpContext est une classe scellée qui n'hérite d'aucune interface, vous ne pouvez pas la simuler. Vous êtes mieux de vous assurer que votre httpContext n'est accessible qu'à partir de la vue (votre page) elle-même et expose l'accès à la fonctionnalité au présentateur via l'interface IView, etc. – Nope

1

MVC est bon pour les scripts côté serveur. Dans les développeurs MVC, essayez toujours de garder le contrôleur très mince. Principalement le contrôleur est juste pour sélectionner le modèle approprié et réfléchir sur la vue. Mais dans les applications Web d'aujourd'hui, la partie View a radicalement changé et est devenue suffisamment complexe pour produire un gros contrôleur, gros et malpropre. Alors maintenant, nous avons besoin d'un nouvel endroit pour mettre la logique de contrôle complexe de l'interface utilisateur. Ici, le P de entre le numéro de série MVP et le présentateur. Les présentateurs sont donc chargés de contrôler la logique d'un composant d'interface utilisateur particulier. Ne vous inquiétez pas, le contrôleur est toujours là, nommé Contrôleur d'application. Qui, en fin de compte, est responsable de la commutation entre des composants d'application relativement plus grands. Donc MVP peut également être dit MVPC (!!). BTW c'était ma façon de comprendre MVP et évidemment pas de règle de base. Mais Google a quelques documentations très cool sur MVP.