2012-05-07 76 views
6

當前情況:一個ASP.NET MVC網站,包含許多控制器和操作方法,以及允許添加食譜的視圖。消費ASP.NET MVC操作方法

現在,我必須創建一個充當UI的WPF應用程序來添加食譜(與網站相同)。

我的問題是:我可以使用ASP.NET MVC網站公開由WPF應用程序使用的服務操作(以及如何完成此操作)?或者我應該更好地爲此創建專門的WCF服務,並讓WPF和ASP.NET MVC網站使用這些服務?

感謝, 路德維希

回答

3

我已經成功地使用MVC控制器和行動,以服務於來自瀏覽器的兩個HTML視圖,以及外部的應用程序。它運作良好,但它需要一些工具:

  1. 我有一個操作篩選器,它以客戶端請求的格式返回由操作產生的模型(通過檢查接受標頭,尋找application/json或text/xml)。所以,我可以將結果模型序列化爲JSON或XML(我更喜歡JSON)。
  2. 您需要在您的客戶端應用程序中查找或創建一個簡單的API來爲您的操作創建WebRequests,然後處理結果。我創建了一個可以POST或GET的簡單API,然後將任何生成的JSON反序列化爲一個對象(使用JSON.NET)。在那裏你可以使用REST客戶端API。

但是,如果您使用WCF-REST路由,則可以避免使用某些額外的工具。更好的是,我會研究ASP.NET MVC 4的WebApi功能(這是我將要遷移到的)。

爲了記錄,我認爲WCF功能強大,但是我們的組織已經厭倦了可以轉動所有旋鈕並打開所有開關以使其正常工作並且易於從一次安裝另一個。另一方面,MVC的工作原理......因爲我們已經使用它來服務我們的HTML視圖,所以只需添加一些額外的代碼來處理服務調用也是一件真正的樂事。當然,只是個人偏好。

+0

謝謝,web api的東西似乎很有趣。但是,它仍然是測試版,並且可能對我來說已經在生產環境中使用過於危險。創建一個包含所有需要暴露在外的邏輯的特定控制器是否是一個好主意?該邏輯然後將使用底層控制器邏輯。 –

+0

它的測試速度會很快。開始開發針對測試版的解決方案似乎是合理的,當它進入RTM時調整,並獲利:) – HackedByChinese