2010-02-02 4 views
0

J'ai lu sur MVC et j'ai créé quelques projets pour animaux de compagnie à base de db avec elle et je suis très heureux avec le passage de WebForms.Comment utiliser ASP.NET MVC framework conjointement avec mon logiciel CMS?

Cependant, j'ai quelques limitations qui me retiennent avec WebForms et je me demandais si vous pouviez m'aider avec.

Je travaille pour une société Web CMS en tant que Consultant, donc tous les sites (sites publics, intranets, extranets, etc.) sont basés sur le logiciel CMS de mon entreprise (qui devrait rester anonyme).

L'une des caractéristiques que les vendeurs aiment utiliser à propos de notre logiciel est ses URL «amicales». Baiscally toutes les données sont stockées et structurées dans le CMS comme un système de fichiers. Ensuite, lorsque vous pointez votre navigateur sur http://mywebsite.com/about, le CMS renvoie le contenu de l'élément stocké sous la racine avec le nom "about".

Chaque élément a également un enregistrement de modèle (interchangeable) qui est l'emplacement physique du fichier qui va afficher le contenu de celui-ci (une page .aspx). Tout comme les "Vues" sur MVC.

Pour gérer les URL conviviales que je dois ajouter un gestionnaire HTTP comme suit:

<add verb="*" path="*" 
    type="Cms.ASPDelivery.HttpRequestHandlerFactory, CmsDelivery" /> 

qui prendra soin des URL amicales et fera la correspondance entre le contenu et les vues.

D'une manière architecturale, vous pouvez voir cela comme MVC. Les données sont stockées dans le CMS, la présentation est indépendante des données et le gestionnaire sera le contrôleur. Mais quand il s'agit de coder en soi, ce sont les mêmes vieux spagetti de Webforms. Donc, ma question est la suivante: voyez-vous d'une quelconque façon que je pourrais utiliser à la fois MVC et mon Http Handler de mon CMS?

Répondre

1

Cela dépend de la mise en œuvre concrète du HttpHandler mais dans la plupart des cas c'est possible. Vous devez ajouter le MVC UrlRoutingModule et configurer le MVC. J'utilise MVC dans un environnement CMS avec des URLs conviviales. Le CMS s'appelle EPiServer et d'après ce que vous avez décrit, il a à peu près la même fonctionnalité. J'utilise ASP.NET MVC pour les pages modèles. Le chemin vers les pages physiques est en fait géré par les actions des contrôleurs. Cela fonctionne très bien et avec quelques ajustements je peux dire que c'est beaucoup mieux que WebFroms surtout si vous développez des applications web personnalisées.

+0

J'ai ajouté un commentaire sur votre blog à http://www.abadjimarinov.net/blog/2009/10/27/AspdotNETMvcDefaultRouteProblem.xhtml – Pablo