Я начал работать в MVC около года назад, я был вдохновлен, но не впечатлен.
Я ненавижу состояние просмотра и вижу его как корень всего зла с точки зрения ASP.NET. Вот почему я просто не пользуюсь им, и, если честно, зачем вам?
Я взял концепцию ASP.NET MVC Framework и создал ее по-своему. Я изменил пару вещей, хотя. Я построил код переноса моего контроллера или код маршрутизации URL-адреса вокруг динамической перекомпиляции.
Теперь я бы сказал, что приложения ASP.NET MVC будут работать быстрее, в зависимости от того, как вы их используете. Если вы полностью откажетесь от WebForms, вы будете быстрее, потому что жизненный цикл ASP.NET и объектная модель огромны.
Когда вы пишете, вы создаете экземпляр армии ... не ждите, легион объектов, которые будут участвовать в визуализации вашего представления. Это будет медленнее, чем если бы вы выражали минимальное количество поведения на самой странице ASPX. (Меня не волнует абстракция движка представления, потому что поддержка ASPX-страниц в Visual Studio приличная, но я полностью отбросил WebForms как концепцию и практически любую фреймворк ASP.NET из-за раздувания кода или невозможности изменить вещи, которые связывают мое заявление).
Я нашел способы полагаться на динамическую перекомпиляцию (System.Reflection.Emit) для генерации объектов специального назначения и кода при необходимости. Выполнение этого кода происходит быстрее, чем отражение, но изначально создается через службу отражения. Это дало моей MVC-платформе отличную производительность, но также и очень статическую типизацию. Я не использую строки и коллекции пар имя / значение. Вместо этого мой пользовательский сервис компилятора переписывает сообщение формы в действие контроллера, которому передается ссылочный тип. За кулисами происходит много вещей, но этот код работает быстро, намного быстрее, чем WebForms или MVC Framework.
Кроме того, я не пишу URL-адреса, я пишу лямбда-выражения, которые переводятся в URL-адреса, которые позже сообщают, какое действие контроллера следует вызвать. Это не особенно быстро, но это лучше, чем битые URL. Это как если бы у вас были статически типизированные ресурсы, а также статически типизированные объекты. Статически типизированное веб-приложение? Вот чего я хочу!
Я бы посоветовал большему количеству людей попробовать это.