我正在尝试使用单个代码库运行多个站点,代码库由以下模块组成(即类)
并且每个类都适用于MVC模式,即它由
组成假设我有2个网站 site1.com 和 site2.com 。我正在努力实现以下功能
我是否会在每个页面上引入一个标志位并控制属于该模块的控件?它更像CMS,你可以打开/关闭不同的功能。我试图了解它,请提供一个例子,或指出我是否采取了错误的方法。
答案 0 :(得分:2)
您可能需要查看Portable areas。您可以设计代码库,以便每个模块都是一个区域,然后将它们部署到需要它们的站点中。
答案 1 :(得分:2)
在看了一些例子和广泛的研究之后,我得出结论,它取决于两种情况:
场景1: 如果只有十个可能的模块被写入一次并需要整个更新整个应用程序(如果需要更新),那么您可以轻松地使用将通过模型传播并由视图使用的检查。调整用户界面(例如,通过显示或不显示Web应用程序菜单中的相应链接)。
场景2: 相反,如果有许多开发人员开发了许多模块的情况,并且要求更新整个Web应用程序以更新任何此类模块是不可接受的,那么请查找插件模型,例如用于FogBugz
为了做出选择,请考虑按重要性排序的以下元素:
可维护性:是否可以修改Web应用程序的公共代码以更改任何模块?
依赖关系:是否依赖其他模块?
性能:因为我们不知道确切的上下文,所以很难尝试预测每个解决方案的影响。也许会有 没有,如果你使用沉重,巧妙设计的缓存。
总体架构:如果有理由做单一的事情(因为相互依赖),第一个解决方案 似乎更合适;如果每个模块都不是这样的话 严格地与他人分开。