首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC5模块化Web应用架构?

ASP.NET MVC5模块化Web应用架构?
EN

Stack Overflow用户
提问于 2015-02-04 20:47:11
回答 2查看 11.6K关注 0票数 18

我目前所在的公司正在为我们的一系列应用程序的架构决策而苦苦挣扎。目前,我们有两个具有公共部分的应用程序(就像日历模块一样)。到目前为止,我们一直在复制其他现有应用程序的代码,但在未来,我们希望将我们的应用程序发展为更模块化的设计:

正如您在上图中所看到的,每个应用程序可以有不同版本的模块。

我们正在考虑可能的解决方案:

  • 构建一个核心应用程序框架,我们可以在其中安装模块。我们正在考虑一个像Nuget这样的工具来实现这一点。
  • 构建一个应用程序,其中我们所有的模块都包含在(=一个代码库)中,但客户只获得为他激活的功能。我们在这里看到了一些版本控制方面的问题。

对此有什么建议吗?我们不可能是第一家在这个问题上苦苦挣扎的公司--我们所有的应用程序都是使用ASP.NET模板或JavaScript模板(knockout.js)构建的RazorMVC4/5 web应用程序。我们所有的应用程序都部署在Microsoft Azure上,并且我们对构建脚本(MSBuild)、CI服务器有丰富的内部知识……

EN

回答 2

Stack Overflow用户

发布于 2015-02-04 22:08:19

每个模块都有单独的项目/程序集,并以Nuget包的形式交付,这绝对是一个好策略。

优势:

  1. 可以维护和发布多个版本。不同的客户端通过Nuget获取支持的最新或具体版本的不同version.
  2. Installation。在应用程序A开发人员可以针对模块A的2.0版本,而应用程序B开发人员可以针对1.0.
  3. 单一源代码库的情况下,这有助于开发,每个版本都有单独的分支。使用1.0请求更改的客户端将从分支1.0获得代码,其中只包含所请求的修复。每个模块都可以发布或更新independently.

挑战:

  1. 在开发期间调试使用Nuget安装的汇编代码。Nuget内置支持它。我们在我们的案例中实现了这一点(框架被模块代码中需要的多个platform).
  2. Code更改使用(需要一个bug或一个新功能)。好吧,这很棘手:

选项1:相同的开发人员继续进行更改,创建新的软件包,并在其应用程序中安装新版本。必须授权更改,因为它是关键代码。

选项2:指定的团队负责修复框架代码中的问题或更改请求。

票数 8
EN

Stack Overflow用户

发布于 2015-02-04 22:37:15

您也可以尝试使用插件架构,只需将组成应用程序的不同模块构建为插件,然后将每个应用程序所需的模块构建为单个代码库。在这种情况下,为任何特定的用户安装组件,将是一个添加或取出插件的问题。许多大型项目使您可以使用这种特殊的架构,因为它减少了复制和粘贴,增加了重用,并加快了开发速度。您可以查看nopcommerce,这是一个开放源码项目,了解它是如何实现的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28321807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档