2010-01-05 105 views
1

我正在開發一個Web應用程序。這更像是一個業務線應用程序,而不是一個網站。我正在使用ASP.NET MVC,SQL Server 2008,並且我已經購買了LLBLGen。我需要爲第三方提供某種API。例如,如果這是一個醫療應用程序,第三方可能需要CRUD病人,檢索複雜的報告,參與某些類型的工作流程等。ASP.NET MVC並提供第三方API

什麼是最好的方式來做到這一點與MVC沒有去建築宇航員路線。我是否需要整個「Web服務」類型層,還是可以在MVC中重新使用我的控制器?通過MVC暴露這種API是否有意義?理想情況下,我需要一個涉及最少代碼重新排序的解決方案。我發現了一些關於用MVC做REST的東西,但其中一些卻很模糊,我不確定它是否合理。我需要一個合理的API,但我不需要遵循REST宗教或類似的所有原則。除了向網站提供HTML前端之外,我只需要某種API,無論是REST還是SOAP。

此外,處理URL的方法有哪些?並非應用中的所有內容都映射到網站/產品/產品ID。其中一些涉及到複雜的工作流程等。

回答

0

如果你打算有一個網站和一個web服務,那麼我會考慮將數據訪問和實體層從MVC中分離出來。

這樣,您的網絡服務可以完成與您的網站相同的功能。我會有一個服務層,他們都與之交互。之後,這些調用將轉到數據庫並返回對象,Web服務和網站都不能與此層進行交互。

這個概念也被稱爲Separation of Concerns

您不能/不應該在Web服務中重用您的MVC控制器。如果它們如此相似以至於無法區分,那麼就考慮將您的網站編寫爲Web服務的客戶端,而不是將其作爲同一解決方案的一部分。