2010-08-11 109 views
1

是否存在使用WCF WITHIN您的Web應用程序(ASP.NET/SQL Server)的商業案例?有沒有辦法在Web應用程序中使用Web服務(WCF)?

我不是在談論服務要被別人使用,而是要在服務中使用的Web應用程序。到目前爲止,Web服務的唯一用途是WITHIN我想出的Web應用程序是當我需要從客戶端調用數據庫(通過AJAX)時。

請不要給我上的Web服務的複製/粘貼的教訓,所有我要找的是WCF的具體示例中受益的Web應用程序的其他應用程序消耗的服務。

快速說明:作者:「Web應用程序」我的意思是一個自包含的CRM的種類。它做了很多,但它不會與任何外部應用程序/數據庫交談,也不需要爲其他應用程序開放服務點。

+0

您是否正在尋找可維護性/涉及應用層的設計方面的好處,還是這些不是您正在談論的要點? – InSane 2010-08-11 10:18:25

+0

@In Sane:可維護性,性能,可用性......這些點數爲 – 2010-08-11 17:49:52

回答

1

我們有一個從網上收集實時數據的Windows服務。由於數據是短暫的(僅在3分鐘左右纔有效),將其記錄在數據庫中毫無意義。爲了檢索數據,Windows服務提供了一個(TCP傳輸)WCF接口,該接口僅暴露給Web服務器,Web服務器從中請求數據。

+0

+1,這是一個很好的例子,正是我所尋找的場景類型。謝謝。 – 2010-08-11 17:56:11

+0

但是,這是兩個應用程序 - Windows服務應用程序和網絡應用程序...? – Murph 2010-08-12 07:31:19

1

我認爲它非常依賴於你如何定義「應用程序」。

如果您正在討論單個Web應用程序,那麼除了提供您已經注意到的Ajax數據之外,我正在努力想出爲什麼您希望作爲Web服務的一般原因(甚至是對於WCF來說更是如此)只是一個暴露的API,如果你確實在應用程序中,直接進入API會更好(無論是什麼類型的感覺),而不需要額外的打包和解包調用和數據的開銷 - 這非常多餘。

在另一方面,如果通過「應用程序」你的意思的,提供最終用戶的一組解決方案(甚至是不同的組)「東西」的組件,然後是的,當然......肯定是有情況通過服務交流組件的靈活性超過了開銷問題。如果有一個假設,一個應用程序將(或者至少可能)後來成爲多個應用程序連接在一起 - 但如果你不這樣做現在那麼你只是讓自己痛苦,不需要這麼麻煩。如果你需要拆分它作爲一個獨立的練習來處理,當你需要拆分它時。從我的實踐

+0

「應用程序」我的意思是一個單一的Web應用程序。一個獨立的CRM類。 – 2010-08-11 17:51:48

+0

在這種情況下,其他人可能會不同意,您可能應該直接使用界面來定義WCF服務,而不是直接訪問服務並返回。我認爲有一個關鍵,那就是你可以把應用分成好幾個不同的應用(所有通常的好理由 - 關注點分離,邏輯層等),但是把接口/ API稱爲一項服務僅僅增加了單個應用程序中不需要的開銷和複雜性 – Murph 2010-08-12 07:29:45

1

一個具體的例子:在一個網站上,我們積極利用其相對於jqGrid插件的jQuery的實施表。網格的包含將按照ajax加載。所以網站的大部分頁面都非常簡單,並且有清晰的XHTML代碼。具有數據庫接口的業務邏輯位於WCF服務內部。在WCF服務的內部,我們也從組織的其他信息存儲中獲取數據。以同樣的方式,如果稍後需要從我們的項目中獲得輸入,WCF服務將是完美的。

所以WCF內的在我們的網頁應用程序的使用有助於歸檔界面清晰,清晰的分離業務邏輯從HTML標記和可測試性好(集成在Visual Studio utit測試)。

相關問題