Question

J'ai quelques expériences sur l'application de génération avec Asp.Net, mais les frameworks MVC sont de plus en plus populaires. Je voudrais essayer de construire une nouvelle application Web multilingue avec Asp.Net MVC ou Castle MonoRail, mais je ne sais pas laquelle est la bonne pour moi. Je n’aime pas le moteur d’affichage de formulaire Web, mais j’aime la fonctionnalité de routage dans Asp.Net MVC.

  • Quelqu'un pourrait-il parler du pour et du contre entre ces personnes?
  • Quel ViewEngine est le meilleur moyen de remplacer le modèle principal?
Était-ce utile?

La solution

En tant que défenseur du monorail, je dois dire que vous devriez probablement opter pour ASP.NET MVC. Pour être honnête, le simple fait qu’ASP.NET MVC devienne l’architecture par défaut d’ici trois ans devrait probablement faire pencher la balance. Cette équation était différente il y a un an, tout simplement parce que l'architecture par défaut présentait de graves problèmes de productivité par rapport à MonoRail.

Si vous souhaitez parler des avantages et des inconvénients techniques:

  • ASP.NET AJAX est un désordre (à éviter), mais ils ont maintenant jQuery. En fait, le support jQuery est meilleur que tout autre environnement. Bien entendu, vous ne l'obtenez que grâce à l'intégration IDE avec le moteur de vue standard.
  • Des améliorations esthétiques ont été apportées (par exemple, la manière dont les informations de modèle sont transmises est beaucoup plus nette et plus évidente que celle de Monorail).

Ne rejetez pas non plus le moteur de vue standard. Vous n’avez pas à lancer de contrôles comme avec ASP.NET, vous pouvez le coder d’une manière assez similaire à Brail, en utilisant seulement C # au lieu de Boo.

Il y a des choses tout simplement laides  * le nombre de méthodes qui prennent objet pour un paramètre. Bonne chance pour trouver la documentation sur ce qu’ils attendent exactement.  * Le goût de Microsoft pour les classes abstraites sur les interfaces. Ils ont leurs raisons, mais je n’aime toujours pas cela.

De plus, à de nombreux égards, MonoRail reste la plate-forme la plus complète. Il n'y a pas d'abstraction pour la validation ou la pagination dans ASP.NET, par exemple. En outre, il n’ya pas vraiment d’aide pour la liaison à un modèle. Les aides ont très peu de fonctionnalités comparées à leurs équivalents Monorail.

Dans l’ensemble, cependant, je pense que ASP.NET MVC est un gagnant.

Autres conseils

MonoRail et ASP.NET MVC sont fondamentalement très similaires, vous devriez être à l'aise avec l'un ou l'autre. MonoRail existe depuis beaucoup plus longtemps et présente donc des fonctionnalités de niveau supérieur.

La principale force d'ASP.NET MVC réside dans son moteur de routage. Pour être juste, MonoRail a à peu près un moteur de routage équivalent et, moyennant certaines modifications, vous pouvez utiliser le moteur de routage ASP.NET MVC avec MonoRail, car ce dernier n'est pas compatible. vraiment dans ASP.NET MVC mais dans System.Web.Routing (publié dans .NET 3.5 SP1). ASP.NET MVC et l’intégration avec Visual studio sont également un atout, et s’amélioreront probablement à mesure que nous approcherons RTM v1.

Le projet MvcContrib contient d’excellents moteurs de visualisation, tels que Spark, NHaml et Brail. Personne ne pouvait être considéré comme le "meilleur", un favori personnel est Spark. Pour plus d'informations sur spark: http://dev.dejardin.org/documentation/syntax

Le moteur WebForms possède intellisense, ce qui est un avantage considérable qui, à ma connaissance, manque à tous les moteurs de vue alternatifs.

Hormis la popularité perçue et le soutien de Microsoft, ASP.NET MVC n’a toujours pas les fonctionnalités essentielles que Monorail possède depuis longtemps, telles que l’organisation du contrôleur (Areas), les composants ViewComponents et les filtres natifs qui peuvent utiliser IoC pour nommer les plus importants. .

J'ai de grandes applications qui utilisent toutes ces fonctionnalités et j'ai eu du mal à les porter sur ASP.NET MVC.

Je travaille avec Monorail depuis quelques années maintenant et bien que MVC semble prometteur et que sa flexibilité soit impressionnante, je trouve toujours embarrassant que pour chaque chose que j'essaie de faire, il s'avère que ce n'est pas là et que je dois soit branchez un petit morceau de MvcContrib, un autre morceau de SharpArchitecture, construisez-le moi-même, vous obtenez l'image. Le monorail est tellement plus facile à utiliser (en ce moment).

Je m'attends à ce que les choses s'améliorent au cours des prochains mois, à mesure que certaines des solutions proposées commencent à s'élever et à se généraliser. Hé, la diversité des options est bonne, mais croyez-moi, vous ne voulez pas être dans Java-land il y a 3 ans, où il y avait tellement de cadres Web que vous pouviez construire votre site en utilisant un pour chaque page différente!

En attendant, je vais continuer à porter lentement mes applications MR sur MVC, juste au cas où.

  1. Je pense que MVC gagne haut la main. Son ensemble de fonctionnalités est très similaire, mais va être le plus "populaire" des deux (et donc généralement plus largement supporté, documenté et étendu à la communauté de développement). En outre, les nouvelles améliorations apportées par ViewEngine (Razor) .. et IDE tiennent compte de mon intérêt et renforcent la valeur du choix de MVC sur monorail, à mon avis.

  2. J'ai utilisé à peu près tous les ViewEngines courants, mais j'ai fini par rouler le mien ( a créé un projet OpenSource à l’aide du formidable moteur de template StringTemplate. ST est une véritable séparation des préoccupations, IMO. En conséquence, je me retrouve à écrire de meilleures applications, avec BEAUCOUP moins de soupe d'étiquettes. J'ai également jeté un guide d'introduction et de référence rapide si vous choisissez de cogner les pneus sur le moteur. J'ai eu beaucoup de chance avec les projets que j'ai déployés jusqu'à présent en l'utilisant. Cela étant dit, Razor (MVC 3) est plutôt impressionnant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top