簡體   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