c# - 我应该如何构建我的应用程序以支持移动应用程序

标签 c# wcf mobile architecture asp.net-web-api

我正在寻求有关我的系统架构的帮助。让我概述一下:

我有一个通过一组 wcf 服务访问的 sql server 和 oracle 数据库。

这些 wcf 服务端点被大量 Web 应用程序使用。

所有应用程序均使用 .net c# 4.0 编写。

现在移动应用程序(iphone 应用程序、android 应用程序)需要访问数据库提供的数据。

我的第一个问题是,向移动应用程序提供数据的最佳媒介是什么?我认为选项包括通过我已有的 wcf 服务或公开移动应用程序可以访问的 WebApi 或 MVC Controller 的包装器项目(调用现有 wcf 服务)。关于移动应用程序消费的最佳方法的建议。请记住,移动应用程序需要较小的有效载荷,并且还需要采取安全措施来防止未经授权的移动应用程序访问服务/包装项目。

我的下一个问题是关于 WCF 服务的版本控制。我希望能够无缝更新 wcf 服务而不影响潜在的包装器项目,反之亦然。由于第三方移动应用程序将处于不同的发布周期,因此需要支持多个版本。我预计这可能涉及部署多个版本的应用程序,但想知道通常如何处理这种做法?

所有应用程序都部署在 IIS 7.0 的 Windows 服务器上。

最佳答案

嗯...我很想听听其他答案,但这是我对你的问题的看法。

首先,我认为您应该将业务逻辑与 WCF 服务分离,如果您还没有的话。这使您能够同时设置 ASP.NET Web Api 服务和 WCF 服务。与其让一些 MVC 或 Web Api 调用您的 WCF,不如将其并排作为替代方案。

您也可以只在 WCF 服务中创建 Json 端点,尽管我更喜欢同时拥有 WCF 和 Web Api 的想法,因为最新的更具互操作性。如果您将所有逻辑与服务分离,它们应该变得相当简单,共享所有业务逻辑。

对于您的移动 iphone 和 android 应用程序,使用 Web Api 服务可能更容易。我在维护 Api 服务的多个版本方面经验不足,但如果您将移动应用程序连接到 Web Api 服务,则可以通过为每个 api 版本创建多个文件夹来进行版本控制。这样会造成业务逻辑的重复...

正如我所说,我对其他意见非常感兴趣。

关于c# - 我应该如何构建我的应用程序以支持移动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542462/

相关文章:

c# - Presenter 是否在 MVP 模式中执行 GUI 逻辑?

c# - 如何在 Controller 的构造函数中获取当前用户的数据?

c# - 向 WCF RequestSecurityToken 消息添加 header

html - 移动 CSS 页面宽度

c# - 如何在 web api 中显示文件中的所有日志

C# SSL 基本访问认证

wcf - Windows 手机 : Upload Progress

c# - 在 MSMQ 终结点上使用消息检查器记录 WCF 请求和响应

ruby-on-rails - 检测通过应用程序(即 Twitter)浏览 Rails 站点的 iOS 设备

javascript - 完全加载完整页面后发生移动站点重定向