Я почав працювати в 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-адресами. Це як якщо б у вас були статично набрані ресурси, а також статично набрані об'єкти. Статично набраний веб-додаток? Це я хочу!
Я б закликав більше людей спробувати це.