【问题标题】:Multi Client Architecture using Azure Api使用 Azure Api 的多客户端架构
【发布时间】:2015-05-09 04:04:15
【问题描述】:

我想构建一个新的移动应用后端。该后端可能最终支持其他类型的客户端,例如桌面或传统 Web 应用程序。

过去,对于多客户端应用程序,我会使用这种技术堆栈。 SQL Server -> 实体框架 -> TCP WCF 服务端点 -> MVC Web 应用程序或 WPF Windows 应用程序

我知道我希望我的移动客户端使用 Restful Http Web API,就像您将在新的 Azure API 产品中托管的类型一样。但我不确定我是否还应该做 WCF 层。

现在我的所有客户不能只使用 Web API 吗?或者在此基础上开发 WCF 服务和层 Web API 是否仍然是明智之举?

同时使用两种不同的序列化技术似乎不太合适。

【问题讨论】:

  • 您应该能够将 TCP WCF 端点替换为 Web API,但请注意,您将仅限于使用 Web API 的 HTTP。

标签: wcf azure-api-apps


【解决方案1】:

是的,您可以将其替换为 Web API 并创建一个 REST API,但正如 Tim 在他的评论中已经提到的那样,这显然只是 HTTP,而不是 WCF 支持的所有协议。

话虽如此,API 应用程序具有 Swagger 元数据来描述 REST URI(端点)可以做什么(例如方法、内容类型、描述等)。有很多 Swagger SDK 生成器可以读取 Swagger 元数据并生成您在应用程序中使用 REST API 所需的代码,以支持几乎任何语言。对于带有最新 Azure SDK 的 Visual Studio 2013,您也内置了此功能。这是纯代码生成,没有紧密耦合或其他任何东西,我们只是生成您应该编写的代码来使用 API。

【讨论】:

  • 我之前使用 TCP 的原因是因为有人告诉我它为防火墙后面的客户端提供了更高的性能。关于 WCF SOAP 服务,我不喜欢的一件事是您必须将所有内容命名为 GetObject() GetObjectByKey() GetObjectByName()、SaveObject() 等。您不能重载方法名称。但在 Web API 中,您只能使用 HTTP 动词来帮助描述您的方法。我认为这使眼睛更容易。因此,如果可能的话,我想将它用于所有客户。 SOAP over TCP 的速度有多快?
  • 我认为我们无法真正量化速度,但通常 HTTP 成本更高且开销更高。这真的取决于你想做什么。我们不能轻易回答这个问题。
最近更新 更多