不要再比較啦!
自己推廣ASP.NET Web API時(或ASP.NET MVC)時,經常會被問到比較性的問題,例如,WebForms(ASP.NET) vs ASP.NET MVC,或是Web Service vs WCF vs Web API。
但只要有機會,我都會說比較是不對的,因為不同時代背景,不同的企業需求,所需的技術就不同。
.ashx - 泛型處理常式
我通常會說:「.ashx就是沒有畫面的ASPX」,例如,檔案下載服務,透過傳遞參數給.ashx,來決定要下載那一個檔案,這個下載的動作是不需UI畫面的。又或者,提供給AJAX上傳檔案用.ashx,因為AJAX來上傳檔案,接收端的.ashx是不需要UI畫面。
也因為這個.ashx不需要UI畫面,而且也能提供和Web API相似的功能,所以延伸出如主標題的問題:「.ashx泛型處理常式與ASP.NET Web API有什麼差別?」
回到底層
.ashx - 泛型處理常式,是一個HTTP Handler;ASP.NET Web API - 從底層運作而言,它也是HTTP Handler。兩者都是在處理Http Request / Http Response。
但就是有人要問:「.ashx一樣可以提供服務,一樣可以處理資料,那到底和ASP.NET Web API有什麼差別。」
自行開發或直接購買AH-64E阿帕契(Apache )?
.ashx讓我們擁有自行開發HTTP Handler的能力,所以當我們擁有足夠的能力,我們可以打造專屬於自己的AH-64E Apache (Web HTTP Handler)。
ASP.NET Web API 2呢?
它就像一台已經設計與生產出來的AH-64E Apache。
您沒提的話,還真得沒細想過這兩種東西差異
回覆刪除我前幾個月才被問到= =...你這篇應該早點出來的....
回覆刪除好文章
回覆刪除寫得太好了
回覆刪除正好我的公司用到很多的ashx, wcf, 我都快混亂的時候
看到你這篇,所以就不混亂了
謝謝