根据自以为是,我的意思是该框架将锁定您遵循某些约定或技术或架构.类似于Rails或Django的东西.这将使构建深度集成的插件成为可能.
使用Rails/Django的一个主要优点是gem/plugins.如您所知,您将找到一切宝石:管理页面,身份验证,评论,丰富的帮助等...
目前,MVC可以通过使用DLL来模仿该行为.但是,据我所知,MVC没有允许深度集成插件的标准体系结构 - 例如,我们不能有注释系统,因为要保存注释需要存储库,而典型的MVC项目可以是使用L2S/EF/NHibernate/MongoDB /等.
在我看来,这样做的一个好方法是:
建立一个采用MEF的核心"核心引擎"项目
核心引擎将暴露:
集装箱/服务地点
几个接口(如IRepository)
像ApplicationStart这样的一些"钩子"以及你可以想到的所有其他钩子/事件
还有什么?
要用这个
添加对"核心引擎"二进制文件的引用
设置一些配置(一个例子是IRepository的一个实例)
开发人员现在能够包含任何依赖于"核心引擎"的插件,并且这些插件可以完全访问应用程序事件和存储库
显然,插件开发人员将开发针对核心引擎的插件 - 他们从不直接与应用程序对话,而引擎是两者之间的中间件.
我们的目标不是拥有完美的企业Web框架......而是构建像Django和Rails一样的东西,MVC似乎缺失:重度但流行的组件的高可重用性.
以前做过吗?有一个更好的方法吗?