asp.net mvc模块化应用程序howto /建议
有人建议以可插拔模块化方式构建ASP.Net MVC应用程序吗? 我的意思是一些博客帖子/教程等。我刚刚阅读Hammet的MEF和ASP.NET MVC示例blogpost,但我没有发现MEF足够成熟,可以在生产环境中使用它。 我无法在此主题上找到任何其他相关帖子...
我知道我可以实现实现自定义ControllerProvider和一些插件检查机制的模块化,但在开始重新实现轮子之前,我想研究一些更多方法/最佳实践:)
我认为这个主题的模块性应该只包括Web应用程序的观点 - 没有其他像模块化的应用程序模型/服务等。我想找到最好的方法来将一个Web应用程序分成多个程序集,这些程序集将包含额外的控制器,视图,资源,JS + CSS文件,图像等。因此,应该有一些主要的Web应用程序项目,它将寻找可用的可插入Web应用程序组件,加载它们,发布其控制器,使其视图和其他资源可用,并可能准备一些菜单与每个Web应用程序模块的条目。
我不想在这里讨论任何模型+服务可插拔架构 - 只是ASP.Net M VC部分。
模块化是一个相当广泛的概念,我认为你的问题的答案只能是主观的。 你所问的是一个架构决定,没有一个好的方法可以解决它。 根据项目的不同,您可能会有不同的优先级和系统不同部分的重要性。 我认为MVC模式提供了足够的关注点分离,这实际上是每个模块化体系结构的目的。
如果您希望能够在现有应用程序中轻松插入新模块,那么您如何定义模块? 我认为你应该缩小这个问题的范围,以获得一些非模糊和有意义的答案。
MVC完全支持对部分请求渲染第三方控制器的支持,请看这篇文章:http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc /
显然,MVC中的模块至少包含一个Controller和一个或多个Views。 但也许你想要的仅仅是少数,因此重写控制器要比传统的WebForms架构容易得多。
或者,您可能想要替换数据源,只需重写Model实体中的方法,然后启动并运行。 它是MVC中的全部核心主体,您分离不同层次的逻辑,并且您被强制执行,与WebForms不同,它仍然允许您在链接中直接在视图中执行SQL。
(MVC也支持它不是通过设计,而是通过继承。)
MVC Portable Areas可以很好地解决这个问题
链接地址: http://www.djcxy.com/p/29147.html