【问题标题】:Same business logic for web app and mobile client using Azure App Service使用 Azure 应用服务的 Web 应用和移动客户端的业务逻辑相同
【发布时间】:2016-09-24 08:30:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请告诉我们更多关于您要创建什么样的应用程序:该应用程序是仅在客户端设备上运行,还是有服务器端组件?您需要华丽的图形还是只需几个按钮和文本字段?是否涉及网络?多线程?
  • 是的,应用程序在客户端设备上运行。该应用程序可以从 Web 应用程序和移动应用程序中使用。
  • 介意告诉我们更多应用程序的全部内容吗?是不是很简单,比如计算器?复杂的东西,比如微软的Outlook?像俄罗斯方块这样的游戏? 3D射击游戏?办公应用?像记事本这样的文本编辑器?请相信我——这完全取决于你想要达到的目标。
  • 这是一个数据驱动的应用程序,用户输入他们的日常活动并创建公共论坛,管理员可以在其中管理论坛,任何用户都可以提问和回答问题,用户上传图片等。
  • 对于数据驱动的应用程序,Russell Young 的回答是一个很好的答案。我推荐一种分层架构,将表示(UI)和业务逻辑(服务)分离。

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


【解决方案1】:

你已经得到了答案,即。使用 API。如果您在解耦架构中构建您的解决方案,您将能够编写任意数量的前端,重用相同的后端服务。将 Web 应用程序和移动应用程序视为前端 - 它们应该是表示层,仅具有用于控制 UI 的最少逻辑,而没有业务逻辑。以这种方式解耦的典型解决方案如下所示。使用接口来描述 API,这样您就可以轻松地模拟、重构或重做后端服务,而不会影响使用 API 的应用程序。

  • 网络应用
  • 移动应用
  • API 项目(推荐使用 WebAPI/REST)
  • 服务接口
  • 业务服务(可重复使用、持久、强大且经过良好测试/可测试)
  • 存储库(用于抽象数据库连接)
  • 其他抽象(Web 服务、其他服务/系统)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-08
    • 2016-09-09
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2012-07-22
    • 2010-09-20
    相关资源
    最近更新 更多