【发布时间】:2012-05-10 21:32:37
【问题描述】:
我正在寻求有关我的系统架构的帮助。让我概述一下:
我有一个通过一组 wcf 服务访问的 sql server 和 oracle 数据库。
这些 wcf 服务端点被众多 Web 应用程序使用。
所有应用程序都是用 .net c# 4.0 编写的。
现在需要移动应用程序(iphone 应用程序、android 应用程序)访问数据库提供的数据。
我的第一个问题是,向移动应用程序提供数据的最佳媒介是什么?我相信的选项包括通过我现有的 wcf 服务或一个包装器项目(调用现有的 wcf 服务)公开移动应用程序可以访问的 WebApi 或 MVC 控制器。针对移动应用程序消费的最佳方法的建议。牢记移动应用程序需要小负载,并且还需要采取安全措施来防止未经授权的移动应用程序访问服务/包装器项目。
我的下一个问题是关于 WCF 服务的版本控制。我希望能够在不影响潜在包装项目的情况下无缝更新 wcf 服务,反之亦然。由于第三方移动应用程序将处于不同的发布周期,因此需要支持多个版本。我预计这可能涉及部署应用程序的多个版本,但想知道通常如何处理这种做法?
所有应用程序都部署在 IIS 7.0 中的 Windows 服务器上。
【问题讨论】:
-
@Aliostad 提出了一个很好的观点,我建议您阅读他的博客文章。如果您只关心 RPC,那么 WCF WebHTTP 对您来说应该没问题...否则请查看 Web API
-
对于 WCF 版本控制,可能最简单的方法是基于路径的(
https://host/service/1.0或http://host/service/2012-05-11)。另外 - 可能你不应该将 Web api 包裹在 WCF 周围,两者都应该是包裹业务逻辑的“服务层”。
标签: c# wcf mobile architecture asp.net-web-api