Ответ 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 может не существовать сегодня.