基于ASP .NET MVC的自以为是的Web框架

时间:2010-07-10 10:40:23

标签: .net asp.net-mvc mef

通过自以为是,我的意思是该框架将锁定您遵循某些约定或技术或架构。类似于Rails或Django的东西。这将使构建深度集成的插件成为可能。

使用Rails / Django的一个主要优点是gems / plugins。如您所知,您将找到一切宝石:管理页面,身份验证,评论,丰富的帮助等...

目前,MVC可以通过使用DLL来模仿该行为。但是,据我所知,MVC没有允许深度集成插件的标准体系结构 - 例如,我们不能有注释系统,因为要保存注释需要存储库,而典型的MVC项目可以是使用L2S / EF / NHibernate / MongoDB /等。

在我看来,这样做的好方法是:

  • 建立一个采用MEF的核心“核心引擎”项目
  • 核心引擎会暴露:
    • 货柜/服务地点
    • 很少接口(如IRepository)
    • 像ApplicationStart这样的一些“钩子”以及你可以想到的所有其他钩子/事件
    • 还有什么?
  • 使用它
    • 添加对“核心引擎”二进制文件的引用
    • 设置一些配置(示例将是IRepository的实例)
  • 开发人员现在可以包含任何依赖于“核心引擎”的插件,并且这些插件可以完全访问应用程序事件和存储库
  • 显然,插件开发人员将开发针对核心引擎的插件 - 他们从不直接与应用程序对话,而引擎是两者之间的中间件。

目标不是拥有完美的企业Web框架......而是建立类似Django和Rails所具有的东西,而MVC似乎缺失:重度但流行的组件具有高度可重用性。

之前是否完成过?有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您可能想看一下MVC Turbine提供的内容。这不是你提到的一切,但它将是一个很好的起点。

答案 1 :(得分:-1)

我认为Orchard project可能与您正在寻找的相似。