哇哇。他們都共享一個數據庫?如果是這樣的話,不,不,不。如果數據庫不共享,那麼它肯定是DLL。
正確的選擇是Web服務。原因也很簡單。
1)領域模型和業務邏輯的一致性。比方說,你在列中存儲枚舉,並添加一個枚舉並部署到一個應用程序。現在它將打破其他兩個應用程序。
2)易於部署。一個更改=一個部署。如果它是一個DLL,一個更改= 3部署。
3)DB事務和併發控制。在一個應用程序域中更容易解決它。
至於其他人建議,我覺得他們太偏。
1)跨應用程序域調試存在困難。您應該通過WSDL發佈可能的異常作爲錯誤異常。調用客戶端也應該適當地處理這些錯誤異常。在呼叫客戶端和服務器上設置單元測試和模擬也非常容易。斷點不是調試和使用分佈式應用程序的正確方法。你可以,並不難。我只是不相信這是正確的做法。
2)性能。 WCF允許您通過配置設置不同的綁定。從基本http(更易於調試)一直到命名管道,您可以使用它來獲得接近本地的呼叫性能。這個決定可以(幾乎是有幾個不同綁定的怪癖,你需要考慮),也可以在開發之後決定。
3)安全性。說WCF不處理安全是非常錯誤的。
最後,真正的缺點來自我:
1)更復雜。同意。不同的上下文使應用程序設計更加困難這有兩種方式。這種複雜性強化了層次的清晰分離。演示文稿應保持在演示級別的位置。
2)需要更多計劃。爲WCF Web服務設計合同本身就是一門藝術。
3)配置的管理開銷。對於新開發者來說可能會很艱鉅,但我希望你能快速克服這個障礙。 WCF配置是一把雙刃劍,功能強大但複雜(對某些人而言)。
我個人的經驗是,任何時候數據庫都被共享,並且這個DLL被用於多個應用程序域,我很遺憾,我沒有足夠的重視開發團隊去使用Web服務路線。
那麼你的最終決定是什麼?現在已經四年了。
我想這是問題發佈的時間。只要看看這個類似的問題,答案就是Web服務。 http://stackoverflow.com/questions/7877916/web-service-vs-dll-pros-and-cons – 2012-10-10 05:27:05
是的 - 這有點necro。當時WCF不是問題。 DLL是我們去的方式,應用程序已經開始生產了4年! – 2013-01-07 14:49:53