2011-10-16 48 views
0

我開始開發一個新的Asp.Net MVC應用程序。其中一個要求是使用web服務公開我們的API - 我們將使用WCF來做到這一點。 (我們有第三方製作iPhone應用程序將會使用此服務)Asp.Net MVC和WCF - 直接調用實例方法的好主意?

我正在編寫也會使用WPF API的Asp.Net MVC應用程序。

我在想,因爲我的MVC應用程序將安裝在WCF應用程序所在的IIS的同一實例上,它也將成爲同一個Visual Studio項目的一部分,我可以直接調用服務方法 - 而不是通過Web服務撥打電話。

舉例來說,在我的控制器類我可以做這樣的事情

WcfService.SomeClass someServiceClass = new WfcService.SomeClass(); 
var stuff = someServiceClass.GetSomeStuff() 

這可能嗎?如果是明智的話?

回答

1

這可能嗎?

是的。您可以將包含WCF服務契約和實現的程序集導入到ASP.NET MVC應用程序中,並從那裏直接調用它。

如果是這樣明智嗎?

是的,您將以這種方式獲得性能,因爲您將短路整個序列化/反序列化和網絡調用過程。

因此,如果這兩個託管在相同的ASP.NET應用程序內,你可以做到這一點。

+0

好的,謝謝你的迴應。想想我可能會這樣。 – bplus

1
Is this possible?

當然。達林是對的。

Is It wise?

那要看!您的WCF服務可以通過多種方式實現,例如,您可以(也可以)實施「每次調用」以外的併發和實例管理 - 只有當服務託管在支持WCF的託管環境中並正確調用時才能工作。如果您開始以這種方式使用它,您將放棄一些非常好的功能WCF爲您提高可伸縮性和性能。給它一個想法,如果它的「序列化 - 反序列化」開銷是值得的。它非常好!