2010-01-31 151 views
5

我正在尋找我當前項目體系結構的一些輸入。有三個組件:服務器,桌面和移動設備。建築設計幫助

我有2個目標:

1)發送數據(大約不超過從桌面100 KB的文本)(在Windows XP/Vista/7的,和Mac OS X)上運行的多平臺客戶端應用程序到服務器(Windows Server 2008,IIS 7,WCF RESTful服務)以保存在數據庫(Sql Server)中。這些服務需要具有可擴展性,因爲桌面設備的數量和發送數據的頻率是未知的。

2)從數據庫(Sql Server)中檢索數據併發送到移動設備(Iphone和Android應用程序,消息大小不超過100 KB的文本)的服務。服務需要可擴展,因爲移動設備的數量和連接的頻率是未知的。

我提出的解決方案:

服務器端(SQL Server和Windows Server 2008): 我期待在WCF REST風格的JSON服務與桌面應用程序(S)和移動應用通信(S) 。我喜歡WCF,因爲我最擅長C#,有一些實現WCF的經驗,在做了一些研究之後,似乎用於平臺的所有技術(Windows XP/Vista/7和Mac OS X)都可以輕鬆地與WCF RESTful服務進行通信。

  • 在這種情況下WCF服務的任何高層次的基本問題?
  • 我只在每臺15分鐘連接800臺設備的Windows Server 2003計算機上實現WCF。該服務器是在專用網絡上運行的物理內部服務器。我需要這個解決方案來託管和擴展。任何託管Windows Server 2008的建議?是否有更好的技術來承載服務? (我不太熟悉雲計算的工作原理)

服務將保存和從SQL服務器檢索數據。我想使用LINQ to SQL作爲我的數據訪問層。我的理解是,與SQL服務器綁定的許可證費用很高,所以我現在可能需要使用SQL Server Express。

  • 我寧願將WCF服務和數據庫單獨託管(2個diff機器)。任何建議主辦SQL服務器(或快遞)?有沒有可以擴展我的數據庫的託管服務?將這些保存在2個差異機器上有意義嗎?

桌面 我需要開發適用於Windows XP/VISTA/7和Mac OS X.(客戶端)我打算寫一個.NET應用程序的Windows計算機(或多個)上運行。如果我要寫(學習:P)XCode或嘗試單聲道,我仍然在空中任何跨平臺的想法?

  • 我應該有任何根本性的問題,獲得桌面應用程序跟我的WCF RESTful服務?

移動Applicaitons 我需要開發商的IPhone和Android。有使WCF RESTful服務的例子很多呼叫使用Objective C和Android的SDK。我」考慮嘗試跨平臺(即Appcelerator)。從高層看來,這些移動跨平臺已經構建了一個Java腳本層,可與iPhone和Android兼容!

  • 有關使用跨平臺技術編寫ONE移動應用程序在iPhone和Android上運行的任何想法?

  • 在JavaScript中調用WCF RESTful服務的任何基本問題?

對不起有點長的帖子。我從未設計過這種尺寸的解決方案。所有的反饋意見。

謝謝!

+0

[如何看待多設備架構的統一設計?](http://izlooite.blogspot.com/2011/07/how-to-think-unified-design-for-multi.html) – 2011-07-06 18:15:51

回答

2

正如你顯然想要使用微軟技術一樣 - 關於Mono的建議可能對你有意義,而且一定會讓事情變得更容易。

但是,我認爲你可能會發現你損害了Mac和iPhone用戶的用戶體驗元素,這並不理想,因爲這些用戶往往對最佳用戶體驗有最高期望。

我知道我們不是生活在一個理想的世界,但如果我們確實要爲每個平臺開發一個單獨的客戶端 - 針對每個平臺的需求進行優化。除非你的應用程序正在做大量的數據操作,否則數據層現在被抽象到你的JSON接口的服務器Viw中,所以你不會在實現中共享數據對象。

因爲看起來你是在一個小團隊(你自己?)中實現項目,那麼我建議你看看用JavaScript與服務器通過JSON進行通信來實現一個web解決方案。

另一種選擇是在windows和mac上使用flex/air客戶端,並在android和Adobe的解決方案上使用flash來編譯flex/air到iPhone代碼。

雖然好運。

0

爲您的客戶端,您可以考慮使用Appclerator,因爲它會在所有你需要很少或幾乎沒有額外的代碼的平臺上運行,並且它被設計用於Web應用程序類型的應用

0

你應該考慮iPhone的MonoTouch。您將可以共享大部分桌面代碼。我會在Mac上使用Mono也是出於同樣的原因。 Android是奇怪的人。最終有人可能會爲Android創建類似MonoTouch的東西,但不會很快就能幫助您解決問題。