使用Fluent NHibernate的Mono 2.4上的ASP.NET MVC 1和2

时间:2009-06-13 13:24:46

标签: asp.net-mvc nhibernate mono shaml

我想使用ASP.NET MVC创建一个应用程序,它应该在mono 2.4下运行(编译将在Windows机器上完成)。有人有运气吗?这是我已经尝试过的:

  1. 没有任何持久性模型支持的单声道ASP.NET MVC,并使用nhaml作为视图引擎
  2. S#aml架构,这是一个非常好的框架imho,但它太依赖于东西,在单声道下工作不好(如windsor)
  3. 第一部分工作正常,我没有遇到任何重大问题。但我无法让第二部分工作。它似乎依赖于Castle.Windsor打破了整个单声道支持(但也可能有其他部分)。

    因此,我决定创建一个替代框架,借用s#arp-architecture的一些想法,但设计为在mono下工作(如果我能够这样做,我将为社区发布它当然)。控制器和视图部分工作正常(虽然这里没有多大的魔力,它们一直在工作),但在我开始执行持久性部分之前我有一些问题:

    • 什么NHibernate版本在单声道下工作?我听说1.2工作正常。 2.0.1 / 2.1 beta是否在mono下工作?
    • Fluent.NHibernate和NHibernate.Linq是否在单声道下工作? (对于后者,它似乎需要一些单声道不具备的依赖性)
    • 在mono下对NHibernate的持久性支持有什么好的选择吗?

    替代问题:

    • 是否有任何框架已经支持mono + persistence + asp.net mvc,或者我是第一个考虑这个问题的框架?
    • 如果您已经这样做了:您对稳定性/可用性有何看法?

    感谢您的回答

    编辑:更新了支持ASP.NET MVC 2的框架:http://shaml.sztupy.hu/

2 个答案:

答案 0 :(得分:9)

我使用mono 2.4来运行asp.net mvc app + windows服务。 兼容性非常好。有一些错误和差异,而不是与Windows,但一旦你了解它们是什么它变得更容易(一开始可能会有痛苦!)

我正在使用NHibernate(2.1)FluentNhibernate,StructureMap,NBehave,Moq和open id lib,它们似乎都按预期工作。

至于稳定性,因为我已经解决了我的代码中的主要错误,所以我没有遇到任何问题。

可用性,这是一个完全不同的平台,所以你需要以开放的心态来到它并准备好留下窗户的方式......好消息是,一旦你这样做,事情变得更容易。 Apache比IIS好很多,配置和管理linux盒子比windows更容易。

我很高兴我选择单声道......对不起,这听起来像公关车 - 但我真的很高兴!!

答案 1 :(得分:4)

好。我开始了一个新项目,它结合了S#arp架构中最好的东西,可以用于单声道。而不是T4Toolkit,它使用ruby脚本来执行生成作业,就像使用rails或merb一样。

使用从github安装shaml gem:

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