Альтернативы ASP.NET MVC?

Итак, я потратил достаточно времени на использование веб-форм ASP.NET, чтобы знать, что я почти вернусь к классическому ASP, чем использовать их. Но я не решаюсь перейти на ASP.NET MVC, пока он не станет более зрелым. Существуют ли альтернативы с открытым исходным кодом?

Главное, что я ищу, - это то, что легко учиться и готовить прототип. Если это поможет, моим основным предпочтением является подход "смешивать и сопоставлять" на питоне (например, web.py/SQLAlchemy/, какой бы ни был шаблонный движок в то время, когда он подходит).

Ответ 1

Мы использовали MonoRail RC2 для нашего интернет-магазина малого бизнеса в течение последних 18 месяцев. Он заменил 7-летнюю катастрофу классических страниц ASP. MonoRail RC2 хорошо зарекомендовал себя, обслуживая в среднем ~ 14 000 запросов страниц в день. Это позволило мне очень быстро разработать сайт, был бесплатным и хорошо держится. Для этого я благодарен команде MonoRail.

Я просто использовал бит MonoRail. Я выбрал iBATIS.NET над ActiveRecord, так как мне пришлось писать творческий SQL, чтобы поддерживать совместимость с 7-летней версией базы данных. Поэтому я не могу говорить за некоторые из других библиотек замка.

Некоторые преимущества MonoRail включают следующее:

  • Довольно легко попасть туда и изменить вещи. Например, реализация маршрутизации по умолчанию не сохраняла строку запроса при перенаправлении (мне нужно было это, чтобы сохранить обратную совместимость со старыми форматами URL, используемыми ныне несуществующим классическим сайтом ASP для SEO-причин), и он не поддерживал выпуск HTTP 301 Перманентные заголовки перенаправления для этого сценария. Поэтому я реализовал все, что было для интерфейса MonoRail, подключился к нему в файл конфигурации, и я пошел.
  • Это все еще ASP.NET, поэтому вы все равно можете использовать Autodesk Forms, полностью потрясающий HTTP/HTTPS Switcher в Codeproject и кеширование.
  • Относительно мало сюрпризов. После работы с ним в течение года у меня не было слишком много дней, когда я проклинал MonoRail. Это довольно хороший экзамен лакмусовой бумажки. Некоторые из вспомогательных классов (FormHelper) могут вести себя немного странно, структура wizard совершенно странная, а привязка параметров иногда может вызывать вас за цикл, но это происходит нечасто.
  • Выбор механизмов просмотра (шаблоны). Я положил это здесь, потому что большинство людей, кажется, думают, что выбор здесь - хорошая вещь, хотя я обычно думаю, что это не так.

MonoRail, однако, не без проблем:

  • Отсутствие направления в разработке. Количество изменений между RC2 и RC3 было смехотворным; многие защищенные виртуальные методы исчезли, многие помощники изменились (что очень важно, когда ваш механизм просмотра не статически типизирован), даже механизм для контроллеров модульных тестов и представлений изменился. По этой причине мы, вероятно, просто останемся на RC2 навсегда. Теперь, когда ASP.NET MVC отсутствует, неясно, насколько здорово сообщество MonoRail останется (хотя ayende и hammett так же активны и активны, как и раньше).
  • NVelocity, "де-факто" механизм просмотра для MonoRail (по крайней мере, в то время, когда мы начали разработку), является перспективным языком шаблонов с нездоровой реализацией и перспективами обслуживания. (Хорошо ли это работает.Но будучи CTRL + C CTRL + V порт из версии Java, не читайте источник для этой библиотеки, потому что ваши глаза будут кровоточить.)
  • NVelocity и RC2 поставляются с чрезвычайно серьезной ошибкой потоковой передачи, когда несколько пользователей, обращающихся к сайту в одно и то же время, могут получать обслуживаемые страницы, предназначенные для другого. Он исправлен в последнем выпуске (который из-за особенностей релиза проектов Castle очень трудно обновить), и нам удалось обойти его. Но это была очень тревожная и неожиданная проблема, с которой вам вряд ли удастся столкнуться в среде Microsoft. Предостережение emptor.

MonoRail предоставила нам прекрасную возможность в июне 2007 года, предоставив нам способ перенести существующий сайт в стек Microsoft на платформу .NET таким образом, чтобы избежать использования WebForms (что отлично подходит для сайтов интрасети, но не настолько велико когда вам нужен тонко контролируемый вывод HTML на общедоступном веб-сайте, на мой взгляд). (Прекрасно, реальная причина в том, что я просто презираю модель обратной передачи WebForms.) ASP.NET MVC даже не был проблеском в глазах Microsoft в этот момент.

Теперь, когда ASP.NET MVC существует, и, учитывая, что Microsoft позиционирует его как альтернативу WebForms, я знаю, что лично я решительно буду рассматривать его для любого будущего проекта. MonoRail - отличный проект, он нам очень понравился, и я благодарен сообществу разработчиков с открытым исходным кодом, но я думаю об этом с удовольствием, как сильно используемый, изношенный инструмент, который уходит в нижний ящик на моем рабочем столе. Без него ASP.NET MVC может не существовать сегодня.

Ответ 2

Лично я пробовал как ASP.NET MVC, так и MonoRail от CastleProject. Хотя мне действительно нравятся другие библиотеки CastleProject, я обнаружил, что мне нравится модель реализации ASP.NET MVC лучше, чем модель CastleProject MonoRail. Теперь, когда ASP.NET MVC выпустил, что они будут включать jQuery в выпуски, я действительно взволнован. В конечном счете, я думаю, это зависит от того, какие другие библиотеки вы используете. Если вы используете NHibernate, ActiveRecord и Castle Windsor, то вам, вероятно, понравятся библиотеки MonoRail. Если вы не используете ни одну из этих библиотек или предпочитаете библиотеки Microsoft Enterprise (в настоящее время стандарт компании, где я работаю), вы, вероятно, найдете, что ASP.NET MVC лучше подходит для ваших нужд. Сфокусировавшись на ASP.NET MVC от самого Скотта Гатри, я сомневаюсь, что он скоро уйдет. На самом деле, чем больше людей используют его и подписывают, тем больше вероятность, что он станет стандартом дефакто.

Ответ 3

Другим вариантом, с которым у меня нет опыта, является ProMesh. Лично я перехожу к ASP.NET MVC.

Ответ 4

Одна из альтернатив, которая кажется интересной, MonoRail, хотя я не полностью ее протестировал.

Ответ 5

Я думаю, что ASP.NET MVC достаточно зрелый.

Взгляните на этот сайт, на который вы отправляете сообщение. Он построил именно это.

Также ASP.NET MVC построен таким образом, что вы можете смешивать и сопоставлять механизм просмотра, структуру ORM, Javascript (хотя я рекомендую JQuery), и что еще не понравится вам.

Ответ 6

ASP.NET MVC должен стать более восприимчивым к быстрому развитию. Теперь, когда он является бета-версией, и предположительно почти завершен, скорость, с которой люди принимают ее, будет продолжать расти и, вероятно, более резко. С выпуском RTM/RTW, обещанным в ближайшем будущем, сейчас самое подходящее время, чтобы начать принимать его, чтобы вы могли столкнуться с землей, работая с ним.

Если есть определенные недостатки, которые вы видите в ASP.NET MVC, вы обязательно должны сообщить об этом Microsoft. Скотт Гатри очень восприимчив к обратной связи и MVC Contrib проект открыт для предложений и имеет большую коллекцию улучшений, доступных через их библиотеку.