我完全混淆了WCF和ASMX Web服務。在我的早期階段,我使用了很多Web服務,現在引入了稱爲WCF的新事物。我仍然可以創建用作Web服務的WCF。我想WCF中會有更多的東西。WCF和ASMX網絡服務有什麼區別?
WCF和Web服務有什麼區別?什麼時候應該使用每一個?
我完全混淆了WCF和ASMX Web服務。在我的早期階段,我使用了很多Web服務,現在引入了稱爲WCF的新事物。我仍然可以創建用作Web服務的WCF。我想WCF中會有更多的東西。WCF和ASMX網絡服務有什麼區別?
WCF和Web服務有什麼區別?什麼時候應該使用每一個?
Keith Elder在此處很好地比較了ASMX to WCF。一探究竟。
ASMX和WCF的另一個比較可以是found here - 我不完全同意所有的觀點,但它可能會給你一個想法。
WCF基本上是「ASMX on stereoids」 - 它可以是ASMX所能做的 - 再加上更多!。
ASMX是:
WCF可以調用的:
總之使用:WCF是在這裏完全取代ASMX。
查看WCF Developer Center on MSDN。
更新:鏈接似乎是死了 - 試試這個:What Is Windows Communication Foundation?
與Visual Studio 2010 .NET 4.0 WCF是一樣容易寫作爲ASMX,沒有理由再編寫ASMX了,WCF的速度更快,更靈活,更安全,ASMX是遺留下來的,沒有人應該編寫它的時間段 – 2012-01-19 19:15:45
「大多數開發人員錯誤地認爲ASMX需要IIS;畢竟,這是他們見過的唯一用例。但事實是,ASMX在IIS上沒有任何技術依賴關係。「http://msdn.microsoft.com/en-us/magazine/cc163879.aspx – MrNick 2012-05-28 21:37:40
@MrNick:沒錯,但仍然只有HTTP ,並將託管ASMX的代碼與託管WCF服務的代碼進行比較。 – 2013-07-10 05:16:50
WCF完全取代ASMX Web服務。 ASMX是做Web服務的老方法,WCF是當前做Web服務的方式。在客戶端或服務器上開發所有新的SOAP Web服務應該使用WCF完成。
問題是,雖然ASMX是一個簡單模型(意思不是非常靈活),但它是一個簡單的模型(這意味着易於使用和理解最常見Web服務需求)WCF增加了很多額外的複雜性,而MS想用WCF替換ASMX,似乎有點阻力,直到MS使用最常見的場景,像舊的[Webmethod]方式一樣簡單。 – mattmc3 2010-11-16 14:57:00
WCF一點也不復雜,在兩者中都創建一個簡單的「hello world」Web服務,看看你寫了多少代碼。答案:兩者都不多,而且在WCF中只有稍微多一點。而且,順便說一句,ASMX已經_has_已經被WCF取代了。 – 2010-11-16 19:08:28
「WCF一點也不復雜」。 呵呵。告訴我這是我的方式overbloated web.config。 – mattmc3 2011-07-11 01:57:25
ASMX Web服務只能通過HTTP(帶.asmx的傳統Web服務)來調用。雖然WCF服務或WCF組件可以由任何協議(如http,tcp等)和任何傳輸類型調用。
其次,ASMX網絡服務不靈活。但是,WCF服務非常靈活。如果你製作一個新版本的服務,那麼你只需要公開一個新的結束。因此,服務是敏捷的,而且這是一種非常實用的方法,可以查看當前的業務趨勢。
我們開發WCF作爲契約,接口,操作和數據契約。作爲開發人員,我們更關注業務邏輯服務,不必擔心通道堆棧。 WCF是用於任何類型服務的統一編程API,因此我們創建服務並使用配置信息來設置HTTP/TCP/MSMQ等通信機制。
這是一個非常古老的問題,但我不認爲ASMX的好處已經相當描繪。雖然不是非常靈活,但ASMX網絡服務的使用和理解非常簡單。雖然WCF更靈活,但站起來和配置也更復雜。
ASMX Web服務準備站起來,只要你添加的文件添加爲一個Web服務的參考。 (假設你的項目建立)
對於 create webservice
簡單的開發流程 - >run webservice
- >add webservice reference
,一個ASMX web服務具有非常小的,可以去錯了,不是多,你可以錯誤地配置,那就是它的實力。
針對那些斷言WCF取代ASMX,我會回答WCF需要添加一個精簡K.I.S.S.配置模式才能完全取代ASMX。
例的web.config一個ASMX web服務:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings />
<system.web>
<compilation targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
我不認爲WCF需要使用asmx webservices完成的工作的更多配置,而y ou還可以在客戶端爲WCF服務添加引用,WCF比asmx更強大,它可以執行asmx所做的任務,並且它會像asmx – Coder1409 2015-04-07 12:48:52
@ Coder1409一樣簡單,當然它的配置更多,因爲有些東西需要配置。綁定,可發現性等asmx中不需要。服務合同,運營合同,數據合同,數據成員。 asmx中不需要。當然,這些都是爲什麼wcf更優越,更強大的原因,但是否認這增加了複雜性,而不是誠實。它意味着沒有缺點。 – 2015-04-07 16:40:07
Andrew,您應該嘗試在.NET 4.0或4.5中創建一個簡單的「hello,world」WCF服務。幾乎沒有配置。配置在4.0中進行了更改,以便默認生成的配置文件不會配置默認值,並且存在不同綁定的默認值集。所以,如果你創建一個'basicHttpBinding'服務,你幾乎在配置文件中找不到任何東西。 – 2015-08-04 19:34:03
有很多的談判正在進行關於ASMX Web服務在WCF簡單的。讓我在這裏澄清幾點。
不要忘了我是誰喜歡ASMX服務比WCF更受歡迎的一個,但那個時候我不太瞭解WCF服務及其功能。我害怕WCF配置。但我敢於嘗試編寫自己的WCF服務,並且當我學到更多WCF時,現在我對WCF沒有任何限制,並且我推薦他們給任何人以每個人&。 快樂編碼!
這不是一個推薦問題。 ASMX和WCF都不是產品。它們是Microsoft堆棧中的兩個Web服務迭代。問題是有什麼不同,是否值得我學習新的?這與「我應該使用Telerik控件還是Infragistics」並不是一回事。 – 2016-11-03 02:15:26