使用Azure App Service的Web应用程序和移动客户端的相同业务逻辑

时间:2016-09-24 08:30:28

标签: c# azure mobile azure-mobile-services

我正在研究需要Web应用程序和移动应用程序的应用程序,并且我正在考虑使用Azure App Service。

在当前的实现中,我们需要在移动应用程序和Web应用程序中编写相同的逻辑。我想为两个端点使用相同的存储库和数据库。但我不想在两个不同的地方为业务逻辑编写相同的代码。

如何使用相同的存储库,数据库和业务逻辑混合Web应用程序和移动应用程序?

如果使用Web API,我可以创建一个可以在Web API和MVC 5应用程序中使用的服务层。我想要一个类似的系统。

1 个答案:

答案 0 :(得分:5)

你已经得到了答案,即。使用API​​。如果您在解耦架构中构建解决方案,您将能够根据需要编写尽可能多的前端,重用相同的后端服务。将Web应用程序和移动应用程序视为前端 - 它们应该只是用于控制UI的最小逻辑的表示层,而不是业务逻辑。以这种方式解耦的典型解决方案如下所示。使用接口来描述API,因此您可以轻松地模拟,重构或重新处理最终服务,而不会影响使用API​​的应用程序。

sketch of decoupled architecture

  • 网络应用
  • 移动应用
  • API项目(建议使用WebAPI / REST)
  • 服务接口
  • 商业服务(可重复使用,持久耐用,经过充分测试/可测试)
  • 存储库(用于抽象数据库连接)
  • 其他抽象(网络服务,其他服务/系统)

因此,您的业务逻辑可以编写一次,并由接口和/或REST api编写,后者由您的单独的Web应用程序/移动应用程序调用。如果您使用web api作为将应用程序加入服务的机制,那么您将拥有一个业务服务的物理部署;如果您只使用接口,则需要将二进制文件部署到每个实例(Web应用程序,移动应用程序等)