2009-11-12 4 views
3

Après avoir lu le livre de Steven Sanderson Pro ASP.NET MVC, je suis convaincu des avantages de l'utilisation de ASP.NET MVC sur des formulaires Web. Comme ASP.NET MVC est clairement inspiré par Ruby on Rails et les avantages de "Convention over Configuration", il me semble que le M dans MVC est complètement absent! À mon avis, la facilité d'utilisation de Rails vient également de la convention dans l'utilisation des modèles. Surtout en ce qui concerne la validation, puisque cela appartient clairement au modèle et non à la couche de présentation!Pourquoi n'existe-t-il pas de modèle dans ASP.NET MVC?

Dans Rails il est si facile d'écrire: validates_presence_of: auteur ou encore plus agréable validates_uniqueness_of: titre

Alors, pourquoi est-il pas M dans ASP.NET (M) VC?

+3

asp.net mvc n'est pas basé sur des rails. Il basé sur le modèle MVC. Tout comme Ruby on rails est basé sur MVC. Et je suppose que les deux apporteront du fromage différent à la table. –

+3

J'ai beaucoup de M dans mes sites MVC, et il est très facile d'obtenir les objets du modèle pour gérer la validation. Vous pouvez utiliser les attributs des objets du modèle et les intégrer dans les éléments de validation de la bibliothèque d'entreprise pour ne citer qu'une façon de le faire. Il y a certainement un M, et de plus, vous choisissez ce que vous appelez. –

+0

J'ai aussi lu ce livre, et c'est génial. Je ne comprends pas votre question cependant. – RichardOD

Répondre

5

Est-ce que votre question est vraiment, "pourquoi il n'y a pas ActiveRecord dans ASP.NET MVC?"

Les packages MVC n'intègrent aucune technologie ORM car les efforts de Microsoft dans ces domaines ont été plus largement orientés vers les développeurs WebForms et les logiciels de bureau .NET. Mais LINQ to SQL et Entity Framework aident clairement à remplir le créneau du «modèle». En ce qui concerne certaines fonctionnalités d'affichage et de gestion de ce modèle dans une application Web, il existe une nouvelle prise en charge de la validation dans ASP.NET MVC 2 et Dynamic Data et des aides HTML propres à MVC pour faciliter l'affichage.

+0

Non, ce n'est pas pourquoi il n'y a pas ActiveRecord. C'est l'absence d'un moyen par défaut d'accès aux données. Comparez comment il est facile de démarrer avec Rails vs Asp.Net MVC. En Asp.Net vous juste implémentez le modèle de dépôt avec un soupçon d'IoC et vous êtes prêt à partir ... – Henrik

1

Vous avez raison de dire que l'accent dans ASP.NET MVC est mis sur l'implémentation de la vue et du contrôleur - car il s'agissait d'éléments qui n'étaient pas bien supportés - Voir en particulier - dans ASP.NET. Modèle d'un autre côté, nous avons eu en abondance presque dès le début, ce qui n'est pas, pragmatiquement, un problème qui doit être abordé. Vous avez également raison de dire que la convention va un long chemin vers la réalisation d'un framework utilisable mais qu'elle impose aussi des contraintes au développeur, parfois c'est bien d'autres moins. En ce qui concerne les choses comme la validation et probablement d'autres choses basées sur des conventions - MS fait des pas dans cette direction en utilisant l'annotation, il me semble qu'il y a beaucoup de choses qui utilisent une route de méta-données/annotations pour fournir le genre de bénéfice que vous obtenez de conventions fortes d'une manière plus générique.

0

Le modèle dans MVC est fondamentalement laissé à l'implémenteur, car il y a tellement de façons de faire un modèle. MVC est axé sur la partie VC, et comment le faire bien, mais il y a certainement une attente que vous utiliserez un M.

0

Je décrirais ASP.NET MVC comme un ensemble d'outils qui vous aide implémenter le modèle MVC, ce n'est pas une implémentation complète du modèle lui-même.