Récemment, j’ai discuté avec un collègue entrepreneur sur les technologies de développement Web proposées par Microsoft. Nous avons donc échangé sur ASP.NET.
Je lui ai parlé d’ASP.NET MVC et après quelque secondes, je me suis rendu compte que mon interlocuteur pensait que MVC était une surcouche qui s’ajoute à ASP.NET « classique ».
Durant les échanges, j’ai donc expliqué la différence entre ASP.NET « classique » et ASP.NET MVC.
Le problème vient d’un nommage ambigu.
ASP.NET est une technologie ancienne qui existe depuis 2002 (d’après Wikipedia). Depuis sa sortie, ASP.NET utilise le moteur Webforms comme moteur de rendu (les pages .aspx avec les fameux tags <% et %>).
Le framework ASP.NET MVC permet de développer autrement en utilisant également le moteur de rendu Webforms (les pages .aspx). Par contre, MVC ne permet pas d’utiliser les composants Webforms. C’est donc là une différence énorme entre les deux technologies.
Et pour moi, ASP.NET devrait se dire « ASP.NET Webforms » en comparaison avec « ASP.NET MVC ». Et croyez-moi, il s’agit bien de deux technologies différentes.
Elles reposent certes sur les mêmes briques de base Microsoft mais le fonctionnement interne est totalement différent.
Je vous parlerais de manière plus précise des différences entre les deux frameworks, dans un prochain article sur ce blog.
Article intéressant, car ce débat est assez récurrent. J’ai tendance à nommer MVC.NET et ASP.NET afin de différencier les 2 lors de mes discussions.
Merci pour votre retour. L’idée est intéressante: MVC.NET.
Effectivement, ce sont des fonctionnement différents.
ASP.Net a principalement pour origine le développement d’application sous WinForm mais reporté au Web.
Pour ne pas perdre ces développeurs en cours de route, Microsoft a gardé cette logique évènementielle, c’est à dire, un clic = un évènement, une sélection d’évènement dans une liste = un évènement, etc..
Quant à ASP.Net MVC, c’est basé sur le patron de conception Modèle Vue Contrôleur. Il n’y a plus de notion d’évènement, mais d’action.
Outre le fait que ça soit radicalement différent en terme de fonctionnement, ASP.Net MVC apporte de nombreux avantages, comme le contrôle complet du rendu, plus de viewstate (une page beaucoup plus light en terme de poids), et la facilité à coupler aux Test Unitaires (ce qui est un casse tête sans nom en ASP.Net).
En contrepartie, il faut quasiment tout refaire (la pagination des tableaux par exemple, le tri, etc.).
Ce n’est pas un moindre mal, car cela permet de contrôler ce qui est fait, et d’avoir un code propre. Par contre, il est clair que ça demande plus de temps à coder.
Pour faire de l’AJAX, il faut couper avec une librairie Javascript, comme jQuery par exemple. Lorsque l’on crée un nouveau projet MVC > 3.0 sous Visual Studio, magique, ces librairies sont déjà inclues !
Pour conclure, ce sont deux façons différentes de développer une application web, chacun ont leurs avantages et inconvénients.
J’ai commencé par l’ASP.Net (WebForms) et depuis que je suis passé à l’ASP.Net MVC, plus jamais je reviendrais en arrière (après j’ai pas trop le choix selon les projets). Je préfère de très très loin ASP.Net MVC.
Attention cela dit, pour quelqu’un qui vient de ASP.Net, la courbe d’apprentissage est grande. Mais une fois en haut de la pente, je trouve cette techno bien plus propre et plus intuitive.
Merci Florian, vous avez bien résumé les différences avec vos mots.
Effectivement, il y a un temps d’adaptation pour passer à ASP.NET MVC mais franchement, après avoir sauté le pas, je peux vous dire que ça en vaut la peine ! 🙂
Le développement est beaucoup plus propre, vous avez plus de maîtrise sur le code généré, la testabilité, la maintenance…