我正在尝试为我的多设备项目组成一个“核心”。
该项目是关于一个Web应用程序,它通过facebook登录验证用户,然后公开他们可以做的一系列新操作 - 例如。获取与其facebook id等相关的数据库中的所有记录。
核心应该通过以下设备来理解:
现在你将如何弥补核心?
您是否可以将其作为WCF服务 返回JSON?
你会成功吗? 返回JSON的控制器?
你怎么能确保 用户是他/她在查询时所说的人 核心?我应该通过 每次都是由facebook生成的accessToken?
你可能已经注意到了,我完全不知道如何做到这一点。
提前致谢。
答案 0 :(得分:4)
不确定我是否正确理解了您的问题,但是......
首先,你必须定义或者决定,“核心”是什么?或者应该的内容 - Core
将执行的功能是什么。理想情况下,当我们说Core时,它实质上意味着一个层执行基本或原子操作。
通过该Core,您可以生成设备包装器(IPhone,PC等),例如,构建要发送到核心的查询。
您可以使用WCF数据服务构成数据层。您的核心可以执行业务操作/等,并与数据服务进行通信。
例如,我立即想到的是:
DeviceWrapper
( DeviceAndriod,DeviceIPhone,DeviceWeb等),包装不同的设备。例如,Factory / Builder模式的混合。考虑Device
s的工厂和视图类型的构建器。TextRenderer
,根据设备设置,呈现文字。一种方法是,让我们决定:
Core
将成为执行基本操作的“库”:
因此,
第1步:编写一个提供身份验证/授权的控制器;例如,请致电Core.Authenticate()
和Authorize()
;
第2步:基于user agent调用ICore.RenderView(agentType),这可能会返回要呈现的视图/ html。
用户可以执行操作,您的控制器可以致电Core.PerformAction()
;例如,它可以返回指向要重定向的页面的链接。
<强> - 更新 - 强>
此更新是对您的评论的回应。
现在,在此(您的评论)案例中,您谈论的是客户端结束。
让我们清理一下。有服务器,并且有客户端方。
到目前为止,我们讨论的是服务器方面,主要关注的是:
客户端可能是:
决定这个“客户端应用”会做什么。例如,在您的情况下:
请注意,您可能需要考虑智能客户端(使用Web服务,而不是asp.net网页)。
此外,WCF中的type hinting可能会在JSON响应中为大型集合添加大量不必要的开销。因此,如果您甚至远程认为可能想要在某个时间点使用多种类型的端点(SOAP等),那么WCF就是您的选择。