【问题标题】:ASP.NET MVC 1 and 2 on Mono 2.4 with Fluent NHibernate带有 Fluent NHibernate 的 Mono 2.4 上的 ASP.NET MVC 1 和 2
【发布时间】:2009-06-13 13:24:46
【问题描述】:

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

  1. 单声道上的 ASP.NET MVC,不支持任何持久性模型,并使用 naml 作为视图引擎
  2. S#aml 架构,恕我直言,这是一个相当不错的框架,但它过于依赖于在单声道下无法正常工作的东西(如 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/

【问题讨论】:

    标签: asp.net-mvc nhibernate mono shaml


    【解决方案1】:

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

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

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

    可用性,嗯,它是一个完全不同的平台,所以你需要以开放的心态来使用它,并准备好摆脱 Windows 的方式。好消息是,一旦你这样做了,事情就会变得更容易。 Apache 比 IIS 好很多,配置和管理 linux 机器也比 windows 简单。

    我很高兴我选择了单声道。抱歉,这听起来像是 PR 驱动器 - 但我真的很满意!!

    【讨论】:

    • 您对 AntiForgeryTokens 有任何问题吗?对我来说,辅助方法在序列化 System.Web.UI 命名空间中的某些内容时会引发 NullPointerException ...顺便说一句。目前这是我遇到的唯一错误。
    • 不能说我试过了!我不接受很多用户输入,所以根本没有考虑使用它们。
    • 您是否尝试在您的应用程序中使用 NHibernate.Linq(2.1 中的新功能)?它似乎需要不在 Mono 中的 System.Data.Serviecs 和 System.Data.Entity。我似乎无法让它运行。我正在 Visual Studio 上构建我的 MVC 站点并部署到 Apache。
    【解决方案2】:

    好的。我开始了一个新项目,它将 S#arp 架构中最好的东西与单声道工作相结合。它使用 ruby​​ 脚本代替 T4Toolkit 来完成生成工作,就像使用 rails 或 merb 一样。

    要使用从 github 安装 shaml gem:

    gem install shaml
    

    然后创建一个新的应用程序:

    shaml generate app AppName
    

    并创建资源:

    shaml generate resource NewRes "name:string;date:DateTime"
    

    S#aml Architecture 项目主页:http://shaml.sztupy.hu/

    GitHub 项目:http://github.com/sztupy/shaml/tree/master

    【讨论】:

    • 刚刚测试:在mono下编译
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多