在多个MVC应用程序之间共享代码和部署不同版本的最佳方法

时间:2014-06-16 20:28:23

标签: c# asp.net-mvc architecture

我们目前拥有一个数据库,其中包含按模式逻辑分隔的用户,客户,产品和订单。然后我们有几个MVC.net应用程序通过自己的BLL访问数据库。这些应用程序中的每一个都有自己的功能,并与部分/全部其他应用程序共享某些方面。

目前,某些代码在这些BLL中重复,维护起来有点混乱。但是,它允许我们快速开发功能并独立部署每个应用程序(假设主要数据库工作在这里)。

我们已经开始开发一个单一的访问层,它正确地分离出来,位于数据库之上,并被我们所有的MVC.net应用程序使用。从逻辑上讲,这是有意义的,因为我们现在可以在我们的应用程例如,应用程序A可以像应用程序B一样检索客户记录。问题出现在我们想要部署应用程序时,我们无法部署一个应用程序,我们需要全部部署它们。 / p>

我们可以考虑采用哪些其他架构方法,以便我们在应用程序之间共享代码并独立部署这些应用程序?

1 个答案:

答案 0 :(得分:2)

一个常见的解决方案是分解服务(基于任意通信层REST,WCF,消息总线,您选择的版本控制),并将这些服务作为独立服务部署到您的基础架构。

现在,您可以独立于消费者进化,扩展和部署服务。您现在只需部署已更改的服务(与旧服务并排)和新应用程序,而不是部署所有应用程序。

这增加了很多关于服务版本控制,配置管理,集成测试,一点通信开销等的复杂性。所以你必须平衡利弊。网上有很多文章如何构建这样的架构。