ASP.NET MVC - 合并多个小应用程序

ASP.NET MVC - Merge Multiple Small Apps

我们有许多小型 ASP.NET MVC 应用程序。所有基本上都是一堆捕获数据并将它们存储在 SQL 服务器数据库中的表单,通常这些表单随后会加载到我们的数据仓库并用于报告。

我们正在寻求重写所有小型应用程序,并为每个应用程序应用一定程度的一致性和良好实践。所有的应用程序都非常相似,我认为从用户的角度来看,如果它们似乎是同一个大型应用程序的一部分会更好,因此我们正在考虑以某种方式将它们合并在一起作为重写的一部分。

我们目前首选的两个选项似乎是:

  1. 创建一个单独的门户应用程序,它将成为用户访问应用程序的入口点。这可能在主页上有 'tiles',每个应用程序(将在此父应用程序中注册)一个,并且可以 link 它们通向所有应用程序。在这种情况下,所有应用程序都将保留在不同的项目中,并且 compiled/deployed 独立。这似乎具有保持独立的优势,因此我们可以在不影响其他应用程序的情况下对应用程序进行更改和部署。我可以将通用代码提取到 class 库中吗?让我烦恼的一件事是,父应用程序基本上必须对每个应用程序使用硬编码 links 到 link。

  2. 我研究了在 ASP.NET MVC 中使用 'areas',并将所有小应用程序作为一个大项目中的不同区域。这在我看来有点 cleaner 因为它们都在一个地方,但是它的缺点是当任何一个单独的应用程序发生变化时需要部署整个应用程序,我有一种感觉我们将 运行 添加了一些应用程序到组合中后会遇到麻烦。

  3. 我们安装了 SharePoint,有人建议在 SharePoint 中创建门户类型的应用程序...这对我来说听起来不是最好的主意,但我愿意考虑是否有人可以指出优势到这个方法。

对这个架构有什么建议吗?有没有人在过去完成过类似的项目并且工作得很好well/not?

我们有 4 名开发人员,我们不希望应用程序在开发后有太大变化(除了修复潜在的错误等)。但是,随着时间的推移,我们将计划向解决方案中添加新的应用程序。

谢谢

MVC 领域的优势是允许代码共享,通过重构每个应用程序的重复冗余部分以使用相同的基础结构代码(安全、日志记录、数据访问等)

但这也意味着在最初合并代码时会产生更多的冲突。

部署问题可以通过持续部署工具(市场上有很多)来缓解,或者如果您部署到 Azure WebApp,则部署槽可以为您提供零停机时间部署。