2009-07-04 75 views
0

我想清理我的代碼,我有一些項目引用了我的服務層即DLL。這意味着當我發佈一個新的服務層時,我必須上傳一些通常相同的服務層..與其他項目(.NET)共享我的存儲庫(存儲庫模式)?

當然,使用ADD參考的速度非常快,因爲它的一個裝配與另一個裝配交談.. 。

我想知道的另一種方法的優點和缺點..

我可以使用web服務/ WCF來包裝我的服務層,但不是這個擊敗對象..

而速度怎麼樣,現在我的桌面應用程序需要調用web服務/ wcf而不是訪問程序集引用?

我的服務層會談,當然我的數據層和我的客戶nevere跟直接在數據層..

它是服務層,在那裏我的業務邏輯是它當中的一些共同的問題應用程序..

桌面應用,2個網站,2×WCF項目(使用Web服務)

我如何能達到最快的可能之情況,而不必重複我的代碼有什麼建議這是影響我是什麼現在正在做,即

每個應用程序(桌面,網站,wcf)都有相同的DLL上的副本,並且有參考文獻(在vs 2008中添加參考)。

想法?

+0

@mark:爲什麼當你更新服務層時你需要上傳任何東西?使用它的應用程序在準備好時應該會獲得更新的版本。難道他們不想首先測試你的新版本嗎? – 2009-07-04 15:50:05

回答

0

我想你會受益最好通過使用WCF(包裝.net遠程處理,MSMQ等)。那麼你不必複製每個程序的DLL ...他們可以指向一個WCF服務。這種面向服務的體系結構非常適合您所描述的內容。

從我迄今爲止的WCF經驗來看,我沒有注意到任何性能命中,特別是在內部網絡上。

這裏有一個WCF一個很好的概述:http://msdn.microsoft.com/en-us/library/aa480210.aspx

希望這有助於!

0

如果您主要在單個主機上部署應用程序,則選擇在GAC中發佈您的中間層,併爲其提供適當的版本策略。

如果您在分佈式環境中部署應用程序,請使用.NET Remoting/WS/WCF。我認爲遠程處理將是您場景中最快的選擇。