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-диск, но я просто очень доволен этим!