2010-10-07 202 views
8

不添加另一個關於不同的WCF堆棧的SO帖子,但我想確保我在正確的方向前浪費更多的開發時間...WCF/WCF數據服務/ WCF RIA服務

我的方案 - 我們公司有許多網絡應用程序,它們都訪問同一系列的數據庫。所有的應用程序基本上都是獨立開發的,所以有大量的業務邏輯和數據訪問重複。最重要的是,我有一個(可能是不合理的)使這個項目獨立於客戶端的目標 - 將我們當前的業務邏輯和數據訪問整合到可以通過Web應用程序,Silverlight,移動應用程序等訪問的界面中。

進入WCF - 它讓我覺得這是完美的選擇。不幸的是,在閱讀了存在於各種WCF口味上的所有現有「指導」之後,我總是比任何事情都更加困惑。這裏是我到目前爲止的結論 - 請隨時糾正我:

  • 直WCF - 最靈活和最全面的選擇,但一切從頭開始;需要大量的時間來配置和測試;在技​​術上最成熟的選項,用鉤子完成大部分目標
  • WCF數據服務 - 在線獲得REST服務的最快方式;如果應用程序需要直接從數據庫中直接公開數據,如果需要業務邏輯,則必須將其寫入客戶端或通過暴露邏輯的第二個服務寫入。
  • WCF RIA服務 - 配置可準備好公開業務邏輯的服務的最快方法;可能在技術上最不成熟的選項(但看起來像是重大投資帶來的);肥皂,REST和JSON端點將允許大部分客戶端獨立性;

所以上面給出我的要求,我得出以下結論 - 數據服務可能是一個非首發,由於業務邏輯的要求(和第二WCF服務消費數據服務的令我的想法極其糟糕的建築選擇);速度很重要,這表明RIA服務可能是最好的開始(稱我爲懶惰,但由於時間緊迫,擁有一個小團隊使代碼生成變得有價值)。

有沒有更好的方法來處理我描述的目標?我誤解了任何/所有的WCF選項嗎?關於選擇哪種WCF方法(不僅適用於我,而且適用於任何試圖評估這些技術的人),還可以提供哪些其他實用指導?

回答

2

我會去直WCF。

這使您可以通過根據要求各個端點暴露你的服務:

  • SOAP實現跨平臺的interopability
  • 二進制NetTcp內部客戶端需要速度
  • JSON用於輕型接入