2 votes

MVC et Webforms hybrides

J'ai une application en cours d'écriture et j'envisage actuellement d'utiliser MVC pour la développer. J'ai utilisé MVC il y a quelques années sous J2EE, donc j'ai une certaine familiarité avec le framework, mais je veux revoir comment il est implémenté sous ASP.NET avant de me lancer. J'ai fait un peu de prototypage en utilisant des formulaires web et j'ai écrit une fonctionnalité assez bonne (principalement comme POC pendant le prototypage) mais je ne vois pas comment cela peut être utilisé tel quel sous le cadre MVC.

Ma question est donc la suivante : combien de personnes écrivent des applications hybrides MVC/webforms, et quels sont les pièges à éviter ? Je voudrais écrire l'application sous MVC car il y a beaucoup d'écrans communs qui sont utilisés dans différents flux de travail, donc l'architecture MVC semble idéale, mais il y a aussi un certain nombre d'écrans que je peux rapidement développer en utilisant certains des outils webforms (par exemple la grille) et il serait donc avantageux pour moi de pouvoir le faire. Je pense que j'ai la chance que les pages de style webforms soient soit autonomes (c'est-à-dire dans un flux d'écran unique qui leur est propre), soit qu'elles alimentent les écrans de flux (par exemple, je n'ai jamais utilisé le gridview pour mettre à jour/insérer/supprimer des données, mais plutôt comme un écran de recherche qui permettrait de sélectionner un enregistrement qui progresserait ensuite dans un flux de type MVC). Quelqu'un a-t-il une idée ou une expérience de ce genre de chose ?

Cheers

MH

3voto

Rick Strahl Points 4166

Je viens de passer en revue une application qui a une mise en page hybride WebForms MVC et fonctionnellement cela fonctionne très bien. Il y a quelques problèmes à surveiller, comme le fait d'avoir des formulaires Web dans des dossiers qui sont également utilisés pour les routes, ce qui peut faire échouer le routage MVC de manière étrange, mais sinon, je n'ai rencontré aucun problème en mélangeant les formulaires Web et MVC.

Cependant, une fois que vous aurez commencé, vous trouverez probablement que ce type de configuration n'est pas approprié, car vous passez d'une abstraction à l'autre. S'il peut être plus facile d'assembler certaines pages de formulaires Web en utilisant des contrôles de haut niveau, vous constaterez probablement que vous faites des économies dans d'autres parties de l'application. Pour une toute nouvelle application, en partant de zéro, je penserais sérieusement à construire l'application avec un seul type d'outil pour des raisons de cohérence et de facilité de maintenance tout au long du cycle de vie du produit, même si au départ, il peut sembler que l'un ou l'autre soit plus facile.

3voto

Robert Harvey Points 103562

Scott Hanselman a publié cet article qui devrait être utile. Il passe en revue certains des scénarios de routage et d'autres subtilités.

Les hybrides rechargeables : ASP.NET WebForms et ASP.MVC et ASP.NET Dynamic Data côte à côte

1voto

Luke Puplett Points 4971

Je viens de convertir une application ASP.NET WebForms 3.5 en une application ASP.NET MVC 4.0 et j'ai détaillé mon parcours. C'était remarquablement simple, mais comme le dit Rick (hey Rick ! [waves]), il ne s'agit pas d'une stratégie greenfield. Dans mon cas, les pages étaient rendues en XSLT et je devais trouver un moyen de les transférer vers Razor pour que notre équipe ait une chance.

En fait, vous créez un nouveau site ASP.NET MVC et copiez tout ce qui se trouve sur l'ancien site. Vous perdrez votre code-behind mais il existe une solution simple pour cela et vous devrez ignorer les routes pour vos gestionnaires personnalisés ainsi que définir une route de page pour le default.aspx - c'est remarquablement facile.

http://www.lukepuplett.com/2013/04/converting-aspnet-webforms-to-aspnet.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X