ASP.NET MVC 1 и 2 на Mono 2.4 с Fluent NHibernate
Я хотел бы создать приложение с использованием ASP.NET MVC, которое должно работать под mono 2.4 (компиляция будет выполнена в окне Windows). Кто-нибудь получает удачу с этим? Вот что я уже пробовал:
- ASP.NET MVC на моно без поддержки модели сохранения и использование nhaml в качестве механизма просмотра
- S # aml архитектура, которая является неплохой структурой imho, но она слишком сильно зависит от материала, который не работает хорошо под моно (например, windsor).
Первая часть работала нормально, я не сталкивался с какими-либо серьезными проблемами. Но я не мог заставить вторую часть работать. Похоже, что зависимость от Castle.Windsor
ломает всю моно поддержку (но могут быть и другие части).
Поэтому я решил создать альтернативную структуру, которая заимствует некоторые идеи s # arp-архитектуры, но предназначена для работы под моно (и если я смогу это сделать, я выпущу ее для сообщества конечно). Контроллер и часть обзора работают нормально (не так много волшебства, хотя они всегда работали), но у меня есть некоторые вопросы, прежде чем я начну работу над частью упорства:
- Какие версии NHibernate работают под моно? Я слышал, что 1.2 работает нормально. Работает ли версия 2.0.1/2.1 в моно?
- Работает ли Fluent.NHibernate и NHibernate.Linq в моно? (для последнего кажется, что ему нужны некоторые зависимости, которые не допускаются в моно)
- Есть ли хорошие альтернативы для поддержки поддержки NHibernate в моно?
Альтернативные вопросы:
- Есть ли какие-либо фреймворки с поддержкой mono + persistence + asp.net mvc или я первый, кто об этом подумал?
- Если вы уже это сделали: каковы ваши мнения относительно стабильности/удобства использования?
Спасибо за ответы
EDIT: Обновлена структура для поддержки ASP.NET MVC 2: http://shaml.sztupy.hu/
Ответы
Ответ 1
Хорошо. Я начал работу над новым проектом, который включает в себя лучшее из архитектуры S # arp Architecture с материалом, работающим над моно. Вместо T4Toolkit он использует ruby script для выполнения задания генерации, как и для рельсов или merb.
Чтобы использовать установку шамл-гема из github:
gem install shaml
Затем создайте новое приложение:
shaml generate app AppName
И создайте ресурсы:
shaml generate resource NewRes "name:string;date:DateTime"
S # aml Главная страница проекта архитектуры: http://shaml.sztupy.hu/
Проект GitHub: http://github.com/sztupy/shaml/tree/master
Ответ 2
Я использую mono 2.4 для запуска приложения asp.net mvc app + windows.
Совместимость очень хорошая. Есть некоторые ошибки и отличия, чем с окнами, но как только вы узнаете, что им становится легче (может быть боль с самого начала!)
Я использую NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq и open id lib, и все они работают как ожидалось.
Что касается стабильности, так как я сгладил основные ошибки в моем коде, у меня не было никаких проблем.
Юзабилити, ну, это совершенно другая платформа, поэтому вам нужно прийти к ней с открытым умом и быть готовым оставить позади путь к окнам. Хорошей новостью является то, что как только вы сделаете это, вам станет легче. Apache намного приятнее, чем IIS, а настройка и управление Linux-модулем проще, чем Windows.
Я очень рад, что выбираю моно... жаль, что это начинает звучать как PR-диск, но я просто очень доволен этим!