-
ASP.NET ou ASP.NET MVC
Bonjour à tous.
Je dois démarrer un nouveau projet web avec asp.net (j'utilise VS2010) mais les discussions récentes concernant la technologie asp.net invoquent l'abandon d'asp.net pour asp.net mvc. Il s'agit d'un projet assez simple.
Quels sont les avantages/inconvénients d'utiliser MVC ? Pour moi, d'après quelques tests avec les 2 je ne vois pas de différences au niveau performance, de plus avec MVC on perds le mode design sous visual studio et celui ci génère beaucoup de fichier.
Merci pour vos retours d'expériences.
-
Salut,
Avant toute chose, il faut être précis dans les termes.
Tu supposes qu'ASP.Net sera abandonné. En fait, tu parles d'ASP.Net Webforms et non, ce ne sera pas abandonné, du moins pas tout de suite.
Par contre, il y a de moins en moins de mises à jour pour cette techno.
Maintenant, si tu ne vois pas de différence de performance entre Webforms et MVC, c'est parce que tu n'as pas poussé tes tests.
Webforms est adapté à du RAD (Rapid Application Dev) de back office. Avoir recours à webforms pour du front est envisageable mais pour obtenir des performances comparables à MVC, il te faudra abandonner les contrôles serveurs ASP, désactiver le viewstate et tirer un trait sur des horreurs telles que l'AjaxControlToolkit pour les remplacer par du jQuery par exemple (d'autre bibliothèques/framework JS peuvent faire l'affaire, j'ai choisi la plus répandue).
Quant à MVC, tu auras compris que cette techno est bien plus adaptée à du front. Fini les contrôles serveurs, fini le viewstate, place aux vraies technos web (HTML/CSS/Javascript).
En outre, comme l'indique son nom, MVC s'inspire du design pattern éponyme. A ce titre, il nous force à découper notre application en Modèles, Vues et Controleurs.
Les contrôleurs gèrent la logique, les modèles les données et les vues l'affichage. En respectant ça, le code devient bien plus lisible et maintenable.
A titre d'exemple, je suis actuellement sur une appli webforms faites par des gens qui ne sont pas vraiment des passionnés.
Résultat, ne serait-ce que pour les styles (CSS), j'en trouve dans des fichiers CSS, dans les ASPX/ASCX sous forme de balises style, mais aussi dans des skins (une autre horreur mise en place par MS) et aussi dans le code behind. T'as juste envie de te pendre quand tu dois te pencher dessus.
En résumé, si tu suis à la lettre les recommandations de MS, MVC sera bien plus performant. Si tu veux faire l'effort de contourner les recommandations de MS concernant webforms (en priorisant HTML/CSS/JS et en ne te servant de C# que pour gérer les appels en base et le business), tu obtiendras également un résultat satisfaisant. Autant dire que si tu débutes, MVC semble être le meilleur choix car tu trouveras toutes les infos/tutoriaux au même endroit (MSDN) et cette techno ne cesse d'évoluer dans le bon sens.
Bon courage
-
Merci Arno_94 pour ta réponse claire et précise. Je ne voyais pas très l'avantage d'utiliser MVC mais en parcourant MSDN ce matin je me suis rendu compte de l'importance de cette techno. Comme je dois créer un site depuis le début, je vais repenser mon architecture en utilisant MVC.
-
Je suis globalement d'accord avec Ano_94, je voulais juste rajouter que si tu te lances sur MVC, il va y avoir un énorme fossé entre MVC 5 (la version stable actuelle) et la prochaine version MVC 6 inclue dans ASP.NET 5.
Il n'y a pas encore de date de sortie officielle de MVC 6, mais quitte à t'y mettre je t'encourage à suivre les nouveautés de près. Pour ma part je bosse actuellement dans une startup, et nous avons démarré le développement de notre portail Web sous MVC 6 avec VS 2015 il y a environ 1 mois 1/2. Même si pour le moment c'est en Bêta, comme on a encore besoin de quelques mois pour finir les développements, on pourra directement sortir notre projet sur cette nouvelle techno lorsqu'elle sera dispo en RTM. Après je ne dis pas que c'est forcément la voie à suivre, mais ca peut être intéressant selon tes contraintes.