簡體   English   中英

asp.net MVC應用程序也可以具有Web服務嗎?

[英]Can an asp.net mvc application also have a web service?

我有一個asp.net mvc應用程序,現在我需要添加一個Web服務來配合它。 最好的解決方案是什么? 只需創建一個新的Web服務項目並將其添加到我的解決方案中,然后使用其他URL將其部署到同一Web服務器上? 我只希望它成為mvc應用程序的一部分,因為我在其中擁有所有的數據庫代碼。

任何建議,將不勝感激。 謝謝。

沒有理由不添加Web服務項目。

您聲明所有數據庫代碼都在MVC項目中。 我強烈建議您從那里將其刪除到一個單獨的類庫項目中。 Web服務和MVC應用程序都將使用該第三個項目。

我也強烈建議您不要將ASMX Web服務用於任何新開發。

除非您別無選擇,否則僅使用WCF。 有一個誤解,認為WCF服務不執行SOAP,而是執行SOAP,而WCF已經取代了ASMX。

Web服務可能意味着基於肥皂的Web服務或RESTful Web服務。 我想不出任何原因,為什么您不能簡單地將asmx文件添加到項目中並開展業務。 那是基於肥皂的路線。 如果您想變得非常酷,則可以從控制器操作簡單地返回xml,並直接在MVC框架上實現RESTful解決方案。

如果您想使用常規的ASP.NET asmx Web服務,那肯定是可能的。 這是Scott Hanselman的一個示例,它確實滿足您的要求,並且充分利用了其他一些ASP.NET技術。

您所要做的就是File-> New Item-> Web Service,它應該像Mvc項目中的常規ASP.NET應用程序一樣工作。

我認為這里有兩件事。

您確實可以將Web服務添加到MVC應用程序。 您甚至可以考慮將網絡服務識別為腳本服務,以使類似REST的操作更易於通過JavaScript執行。 由於您的情況,這可能是不必要的。

我認為關於底層架構還有一個更強烈的問題。 如果將Web服務與mvc應用程序一起放置,因為您的數據庫代碼已經存在...應該嗎? 現在是將數據層抽象一些的好時機。 但是,如果您要處理的是一個相對較小的項目,並且不需要靈活性,那么可以肯定地添加一個Web服務。我想它真正可以歸結為滿足您應用程序的真正需求。

MVC建立在asp.net框架上。 您應該能夠在同一項目中包含Web服務。 我還沒有完成,但是我知道您可以在同一項目中將asp.net表單應用程序與MVC應用程序結合在一起。 Web服務也應如此。

除非您的應用程序很小,否則我建議您為應用程序的每個邏輯部分創建不同的項目。 一個不錯的凝視點是針對以下每個項目都有一個項目:

  • 域對象
  • 資料存取
  • 網頁服務
  • UI(您的ASP.NET MVC應用)

這提供了與您的體系結構相對應的清晰分隔,並支持重用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM