假设我正在创建一个我希望打破功能的应用程序,以便我可以打开/关闭功能。
我在考虑这样做:
1. breaking major functionality out using areas
2. all business logic (other than controller logic) but in a seperate assembly
3. have a 'base' assembly that is shared with all other assemblies
所以说我有一个CMS模块,一个电子商务模块等。我会在他们自己的区域有那些,然后有一个单独的CMS组装和电子商务组装。每个程序集都有模块和数据库访问代码以及业务逻辑等。
这是个好主意吗?有没有更好的办法?这有用吗?
答案 0 :(得分:1)
是的,将这样的应用程序的功能区域分开通常是一个好主意。隔离有助于测试和可维护性。寻找共性并了解它们如何结合在一起也很重要。看看SOLID principles,他们会指导您的设计。该链接中还有一组包设计原则,可以帮助为程序集分配功能。
答案 1 :(得分:0)
是的,但仅这些区域只是解决方案恕我直言的一半。
为了更好的模块化,建议对“可插拔”的Web部件使用独立的组件,这可以通过MvcContrib Portable Areas(在区域和区域上扩展)轻松实现。通过虚拟路径提供程序从嵌入式程序集资源中提供文件。