ASP.NET MVC 1 и 2 на Mono 2.4 с Fluent NHibernate

Я хотел бы создать приложение с использованием ASP.NET MVC, которое должно работать в моно версии 2.4 (компиляция будет выполняться в окне Windows). Кому-нибудь повезло с этим? Вот что я уже пробовал:

  1. ASP.NET MVC в моно без какой-либо поддержки модели сохранения и с использованием nhaml в качестве механизма просмотра
  2. Архитектура S # aml, которая является неплохим фреймворком, imho, но она слишком сильно зависит от вещей, которые плохо работают в моно (например, Windsor)

Первая часть работала нормально, особых проблем не возникло. Но у меня не получалось заставить вторую часть работать. Кажется, что зависимость от Castle.Windsor нарушает всю поддержку моно (но могут быть и другие части).

Поэтому я решил создать альтернативный фреймворк, который заимствует некоторые идеи s # arp-architecture, но предназначен для работы в моно (и если я смогу это сделать, я, конечно, выпущу его для сообщества) . Контроллер и часть представления работают нормально (хотя здесь не так много магии, они всегда работали), но у меня есть несколько вопросов, прежде чем я начну работу с частью персистентности:

  • Какие версии NHibernate работают в моно? Я слышал, 1.2 работает нормально. 2.0.1 / 2.1 beta работает в моно?
  • Работают ли Fluent.NHibernate и NHibernate.Linq в монофоническом режиме? (для последнего, похоже, нужны некоторые зависимости, которые недоступны в моно)
  • Есть ли какие-нибудь хорошие альтернативы для поддержки постоянства NHibernate в моно?

Альтернативные вопросы:

  • Существуют ли какие-либо фреймворки, у которых уже есть поддержка mono + persistence + asp.net mvc, или я первый, кто об этом подумал?
  • Если вы уже это сделали: что вы думаете о стабильности / удобстве использования?

Спасибо за ответы

РЕДАКТИРОВАТЬ: обновлена ​​структура для поддержки ASP.NET MVC 2: http://shaml.sztupy.hu/


person SztupY    schedule 13.06.2009    source источник


Ответы (2)


Я использую mono 2.4 для запуска приложения asp.net mvc + службы Windows. Совместимость очень хорошая. Есть некоторые ошибки и отличия от окон, но как только вы узнаете, что они из себя представляют, все станет проще (поначалу может быть больно!)

Я использую NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq и open id lib, и все они, кажется, работают так, как ожидалось.

Что касается стабильности, так как я исправил основные ошибки в своем коде, у меня не было никаких проблем.

Удобство использования, ну, это совершенно другая платформа, поэтому вам нужно подойти к ней непредвзято и быть готовым оставить путь за окнами ... хорошая новость в том, что как только вы это сделаете, все станет проще. Apache намного лучше, чем IIS, а настройка и управление Linux-сервером проще, чем Windows.

Я очень рад, что выбрал моно ... извините, это начинает звучать как пиар-драйв - но я просто очень доволен этим !!

person Derek Ekins    schedule 14.06.2009
comment
Были ли у вас проблемы с AntiForgeryTokens? Для меня вспомогательный метод выдает исключение NullPointerException при сериализации чего-то в пространстве имен System.Web.UI ... Кстати. в настоящее время это единственная ошибка, с которой я сталкиваюсь. - person SztupY; 16.06.2009
comment
Не могу сказать, что пробовал их! Я не беру много пользовательского ввода, поэтому вообще не рассматривал их использование. - person Derek Ekins; 16.06.2009
comment
Вы пытались использовать NHibernate.Linq (новое в версии 2.1) в своем приложении? Кажется, требуются System.Data.Serviecs и System.Data.Entity, которых нет в Mono. Кажется, я не могу заставить его работать. Я создаю свой сайт MVC в Visual Studio и развертываю его в Apache. - person mbp; 03.09.2009

Хорошо. Я начал новый проект, который сочетает в себе лучшее из архитектуры S # arp и вещи, которые работают с моно. Вместо T4Toolkit он использует скрипт ruby ​​для генерации, как и в случае с rails или merb.

Чтобы использовать установку shaml gem с 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

person SztupY    schedule 18.06.2009
comment
Только что проверил: компилируется под моно - person SztupY; 19.06.2009