我desgined使用領域驅動設計我的ASP.NET MVC應用程序,我得到了以下項目:ASP.NET MVC企業DDD架構和WCF層
- MyApp.Core - 應用程序的核心,包含域模型等
- MyApp.Infrastructure - 應用主要infrastrucutre,包含實施使用EF域模型存儲(回購等)。
- MyApp.Web.Core - 域模型,服務聲明(接口)和這種僅針對網絡(例如IFormAuthenticationTicketSupplier,IOAuthAuthenticationProvider等)
- MyApp.Web.Infrastructure - Web實現
- MyApp.Web.UI - ASP.NET MVC標準應用程序。
該應用程序應該由具有多個服務器等的企業使用。目前,應用程序在使用存儲庫和EF的控制器的基礎結構層中調用服務。我可以使用連接字符串連接到數據庫服務器。
當挖約在谷歌這個話題,我讀過,創建企業應用程序時,採取了一些approches是創建一個應用程序服務器和Web服務器。在應用程序服務器中 - 存儲WCF服務,並在Web服務器中調用它。
我想知道我是否應該這樣做(如果創建一個WCF服務是正確的,並與企業打交道時,需要計算策略): - 爲什麼有人不只是使用服務中的控制器,轉而使用API? - 如果我使用API,它不會減慢響應速度?因爲即使電腦在同一網絡上,我仍然會打開一個HTTP請求。 - 如果我應該使用WCF或ASP.NET WebAPI?
感謝您的任何意見和幫助!
感謝您的評論。關於分離 - 我不得不提到它,我已經這樣做了,因爲我希望將來使用該項目的Windows 8應用程序,WP,iOS(單聲道),Android(單聲道)等。所以我認爲這將是一個很好的接近。由於這些應用程序 - 我確實認爲將來需要使用WebAPI或WCF(在這種情況下,我將開發適用於iOS,Android等的應用程序,您仍然推薦使用WCF?)。 WebAPI或WCF的使用是否會降低性能(假設服務位於同一網絡中)? – OzB 2013-04-08 15:40:56
對於HTTP服務,我建議通過WCF使用WebAPI。與WebAPI相比,用於HTTP的WCF相當有限且不自然。一個進程跳躍總是會減慢性能,但它不應該是一個問題。實際上,您可以讓HTML客戶端直接調用WebAPI服務以獲取某些內容。 – eulerfx 2013-04-08 16:50:08
謝謝 - 所以我會選擇WebAPI。最後一個子問題:您認爲可以在標準Web應用程序控制器和WebAPI上使用該服務嗎?所以Web應用程序不會因HTTP請求而變慢,但所有其他應用程序(iOS,Android,AJAX調用)都將使用WebAPI? – OzB 2013-04-08 18:19:01