J'ai commencé à travailler chez MVC il y a environ un an, j'étais inspiré mais pas impressionné.
Je déteste l'état d'affichage et le considère comme la racine de tout mal en termes d'ASP.NET. C'est pourquoi je ne l'utilise tout simplement pas et pour être parfaitement honnête, pourquoi le feriez-vous?
J'ai essentiellement pris le concept ASP.NET MVC Framework et l'ai construit à ma manière. J'ai cependant changé deux ou trois choses. J'ai construit mon code de wrapping de contrôleur ou code de routage d'URL autour de la recompilation dynamique.
Maintenant, j'irais jusqu'à dire que les applications ASP.NET MVC seront plus rapides en fonction de la façon dont vous les utilisez. Si vous abandonnez complètement WebForms, vous serez plus rapide car le cycle de vie ASP.NET et le modèle objet sont énormes.
Lorsque vous écrivez vous instanciez une armée ... pas d'attente, une légion d'objets qui participeront au rendu de votre vue. Cela sera plus lent que si vous exprimiez le minimum de comportement dans la page ASPX elle-même. (Je ne me soucie pas de l'abstraction du moteur d'affichage car la prise en charge des pages ASPX dans Visual Studio est décente, mais j'ai complètement abandonné WebForms en tant que concept et fondamentalement tout framework ASP.NET en raison de la surcharge du code ou de l'impossibilité de modifier le choses qui filent ma candidature).
J'ai trouvé des moyens de s'appuyer sur la recompilation dynamique (System.Reflection.Emit) pour émettre des objets et du code à usage spécial chaque fois que nécessaire. L'exécution de ce code est plus rapide que la réflexion mais initialement construite via le service de réflexion. Cela a donné à mon framework MVC d'excellentes performances, mais aussi très typé statiquement. Je n'utilise pas de chaînes et de collections de paires nom / valeur. Au lieu de cela, mes services de compilateur personnalisés vont dans une réécriture d'une publication de formulaire à une action de contrôleur en passant un type de référence. Derrière la scène, il se passe beaucoup de choses mais ce code est rapide, beaucoup plus rapide que WebForms ou MVC Framework.
De plus, je n'écris pas d'URL, j'écris des expressions lambda qui sont traduites en URL qui indiquent plus tard quelle action de contrôleur appeler. Ce n'est pas particulièrement rapide, mais il vaut mieux avoir des URL cassées. C'est comme si vous aviez des ressources typées statiquement ainsi que des objets typés statiquement. Une application Web de type statique? C'est ce que je veux!
J'encouragerais plus de gens à essayer ceci.