Я начал работать в 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-адресам. Это похоже на то, что у вас были статически типизированные ресурсы, а также статически типизированные объекты. Статически типизированное веб-приложение? Это то, что я хочу!
Я бы рекомендовал больше людей попробовать это.
После работы с WebForms с тех пор, как они вышли, я никогда не вернусь! MVC украл мой <3 - и этот сайт работает на Beta 5! – 2009-02-11 10:19:23
Что со всеми версиями откатов по этому вопросу ..? – Nick 2009-02-24 15:47:53
@Nick: OP откатывает любые изменения и удаляет любые комментарии, объясняющие их. – GEOCHET 2009-02-24 15:50:26