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

Rav*_*dal 0 c# mobile azure azure-mobile-services

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

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

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

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

Rus*_*ung 5

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

解耦建筑的草图

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

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