Я недавно переключился на MVC, и у меня был смешанный опыт, но я рад, что сделал переход.
Самым большим препятствием было то, что, хотя новый проект MVC якобы готов к запуску, и вы можете начать строить поверх него итеративно, на самом деле мне пришлось создать множество строительных лесов для реального приложения и много читать / обучения.
Я выбрал Entity Framework (EF), который поначалу вызывал много горя, пока я не получил EFPocoAdapter , чтобы делать многое из того, что я хотел (что не рекомендуется, потому что это переходный и обнаружит, что сливается с EF 4.0). В процессе я должен был узнать о Невосприимчивость к постоянству , Инверсия управления , освоить принципы SOLID и затем узнать об архитектуре MVC сам. В настоящее время я перечитываю Head First Шаблоны проектирования , потому что до сих пор никогда не использовал эти шаблоны полностью.
Я столкнулся с сериализацией проблем с циклическими ссылками в графах объектов, объектами против POCO объектов и сохранением данных от клиента и обратно в базу данных. Я действительно начинаю понимать, что такое REST , начинаю понимать HTTP и болеть за HTML5 (поддержка PUT / DELETE).
Я также познакомился с ORM , которые я никогда раньше не использовал. Я изучил и все еще изучаю Linq (выражения запросов) и о деревьях выражений . Я получил опыт из первых рук со множеством C # 3.0 функций, о которых я только читал (инициализаторы объектов, анонимные типы, неявная типизация и большинство других).
В самом ASP.NET MVC я с удовольствием писал фильтры действий и настраиваемые ограничения маршрутизации , устанавливая баланс между моделью и контроллерами, размышляя над объектами домена, борясь с POCO и персистентностью Невежество и много писать AJAX код.
Мне как веб-разработчику это очень понравилось. В ходе этого процесса я также получил большое уважение к сообществам Ruby on Rails и Java, поскольку я осознал их мастерство в MVC, DDD и ORM (не говоря уже о некоторых замечательных инициативах с открытым исходным кодом).
Пока вы не испачкаете руки, вы по-настоящему не поймете, что это такое. Сделай это как хобби и дай месяц. Я могу обещать вам, что вы будете намного лучшим разработчиком, чем сейчас, и вы по-настоящему оцените большинство, если не все вещи. Это действительно изменение парадигмы, которое уже происходит в сообществах RoR / Java, и .NET только догоняет его.