我正在研究需要Web应用程序和移动应用程序的应用程序,并且我正在考虑使用Azure App Service。
在当前的实现中,我们需要在移动应用程序和Web应用程序中编写相同的逻辑。我想为两个端点使用相同的存储库和数据库。但我不想在两个不同的地方为业务逻辑编写相同的代码。
如何使用相同的存储库,数据库和业务逻辑混合Web应用程序和移动应用程序?
如果使用Web API,我可以创建一个可以在Web API和MVC 5应用程序中使用的服务层。我想要一个类似的系统。
答案 0 :(得分:5)
你已经得到了答案,即。使用API。如果您在解耦架构中构建解决方案,您将能够根据需要编写尽可能多的前端,重用相同的后端服务。将Web应用程序和移动应用程序视为前端 - 它们应该只是用于控制UI的最小逻辑的表示层,而不是业务逻辑。以这种方式解耦的典型解决方案如下所示。使用接口来描述API,因此您可以轻松地模拟,重构或重新处理最终服务,而不会影响使用API的应用程序。
因此,您的业务逻辑可以编写一次,并由接口和/或REST api编写,后者由您的单独的Web应用程序/移动应用程序调用。如果您使用web api作为将应用程序加入服务的机制,那么您将拥有一个业务服务的物理部署;如果您只使用接口,则需要将二进制文件部署到每个实例(Web应用程序,移动应用程序等)