繁体   English   中英

多设备架构

[英]Multi-device architecture

我目前正在尝试为我的多设备项目构建一个“核心”。

该项目是关于 web 应用程序的,该应用程序通过 facebook 登录对用户进行身份验证,然后公开他们可以执行的一组新操作 - 例如。 获取数据库中与其 facebook id 等相关的所有记录。

核心应该通过以下设备来理解:

  • 个人电脑
  • 苹果手机
  • Android
  • Windows 电话 7

现在你将如何组成核心?

  1. 您是否将其设为返回 JSON 的 WCF 服务?

  2. 你会把它变成一堆返回 JSON 的控制器吗?

  3. 在查询核心时,您如何确保用户是他/她所说的人? 我应该每次传递 facebook 生成的 accessToken 吗?

正如您可能已经注意到的那样,我完全不知道如何做到这一点。

提前致谢。

不确定我是否正确理解了您的问题,但是...

首先,您必须定义或可能决定“核心”是什么? 或者核心应该是什么—— Core将执行什么功能。 理想情况下,当我们说核心时,它本质上是指执行基本或原子操作的层

例如,通过该核心,您可以生成构建查询以发送到核心的设备包装器(iPhone、PC 等)。

您可以使用 WCF 数据服务来构成数据层。 您的核心可以执行业务操作/等,并与数据服务通信。

例如,我立即能想到的是:

  1. 一个核心,执行核心操作 - 例如与 Datalayer 交谈
  2. DeviceWrapperDeviceAndriod、DeviceIPhone、DeviceWeb 等),用于包装不同的设备。 例如,Factory/Builder 模式的混合。 想想Device的工厂,以及视图类型的 Builder。
  3. TextRenderer根据设备设置呈现文本。

一种方法可能是,让我们决定:

Core将是一个执行基本操作的“库”:

  • 验证
  • 授权
  • Select 记录
  • 执行操作 1
  • 执行操作 2

所以,

  • 第 1步:编写 Controller 以提供身份验证/授权; 例如,调用Core.Authenticate()Authorize()

  • 第 2步:基于用户代理调用 ICore.RenderView(agentType),这可能会返回要呈现的视图/html。

用户可以执行一个动作,你的 Controller 可以调用Core.PerformAction() 例如,这反过来可能会将链接返回到要重定向的页面。

- 更新 -

此更新是为了回应您的评论。

现在,在这个(您的评论)案例中,您正在谈论客户端。

让我们澄清一下。 服务器,也有客户端

到目前为止,我们讨论的是服务器端,主要涉及:

  1. 服务器如何处理来自不同用户代理的请求。
  2. 文本将如何针对不同设备呈现。

客户端可能是:

  1. 一个 web 浏览器,在这种情况下,您不需要开发任何客户端应用程序
  2. A,可以说,Silverlight 应用程序用于 Windows 电话
  3. Android 手机的 android 应用程序
  4. 以此类推。

决定这个“客户端应用程序”将做什么。 例如,在您的情况下:

  • 用户应通过 fb id 登录。
  • 用户应能够执行某些操作。

请注意,您可能需要考虑智能客户端(使用 web 服务,而不是 asp.net web 页面)。

此外,WCF 中的类型提示可能会在 JSON 响应中为大型 collections 添加大量不必要的开销。 因此,如果您甚至认为您可能在某个时间点需要多种类型的端点(SOAP 等),那么 WCF 就是通往 go 的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM