.ashx泛型處理常式與ASP.NET Web API有什麼差別?

不要再比較啦!

AH-64E Apache
來源:http://www.flightglobal.com/

自己推廣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呢?

ASP.NET Web API所有功能
ASP.NET Web API 2所有功能

它就像一台已經設計與生產出來的AH-64E Apache。

差異、比較?

沒有差異,不需比較。

單純一個是必須自己純手工打造,當你練完出關,你可以練得像火雲邪神的絕式武功,然後 連子彈都打不倒你。

一個是直接買一台AH-64E Apache,然後機關槍、火箭炮裝一裝。然後你只要坐上去,就可以開始打怪。最棒的是,這台AH-64E Apache還會隨時免費升級。

4 則留言:

  1. 您沒提的話,還真得沒細想過這兩種東西差異

    回覆刪除
  2. 我前幾個月才被問到= =...你這篇應該早點出來的....

    回覆刪除
  3. 寫得太好了
    正好我的公司用到很多的ashx, wcf, 我都快混亂的時候
    看到你這篇,所以就不混亂了
    謝謝

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。