從web開發看.NET和Java。
以下都是個人觀點,僅供參考,歡迎提出不同意見!
首先聲明本文只從一個角度來說一下.NET和Java,而且只說一個點,可以肯定的是,本文的觀點肯定是片面的,但是我覺得可以說明一些問題,或者作為一些參考。
我個人不排斥任何技術,也認為任何技術都可以實現同一個業務目的。
個人涉獵過.NET, Java, Python, Rails,有的時間長些,有的時間短些。
技術是為商務服務的,或者是為某種商業或者非商業的目的來服務的,為了實現目的,為了提升效率,為了節省時間,應該說使用任何程式設計語言、任何編程平台,在大部分的場合都可以實現同一個目標。
語言和平台沒有高低優劣,只有情境適用。
首先語言是某個人,或者是某個團體,或者是某個公司,或者是某個行業領導團體,為了實現某種目的,加快某種業務,發明設計的,所以在設計的時候不免會打上發明者的烙印,發明者會希望,甚至會引導使用者以發明者希望的方式去使用這種語言。這就會影響不同語言的風格,使用風格,學習風格,還會產生一些所謂的語言之爭。
其實每種語言都會全面開發方式:包括高層的,也就是封裝好的,你只需要關注商務邏輯代碼,寫商務邏輯代碼就可以了;也包括底層的,也就是原始的開發方式,需要你在寫商務邏輯代碼的同時指定一些技術的參數,一些底層的參數需要你設定。
有的語言會引導你從高層先進入,然後在你需要的時候你再去選擇使用底層的方式。有的語言會直接引導你進入底層,然後提供你高層的方式。
就拿.NET和Java的web開發舉個例子。
.NET中可以使用ASP.NET做web開發,他有一種方式叫做WebForm,就是你可以直接拖控制項到web頁面,然後雙擊控制項,在背後寫代碼,比如註冊按鈕的背後寫一些註冊的商務邏輯。就好像你在開發WinForm案頭應用一樣,寫過VB的人都會明白。在這種開發方式中你可以不管http方面的知識,不對http進行任何操作,也可以做出web應用。甚至你在看微軟的一些WebForm視頻教程中,他也沒有主動向你介紹http的知識。所以可能給一些的人造成一種:我開發web不用管http的印象。直到很久,甚至幾年之後才理解到還需要http的知識才能更好的開發web應用。當然,你用WebForm也可以設定http的一些參數,只是通常大家沒有這麼使用。
但是ASP.NET也有底層的方式。它提供了一個IHttpHandler介面,你可以實現這個介面,來處理一次http請求,甚至沒有區分請求是GET還是POST,反正就是一次請求,具體控制和http參數設定,完全交給你來實現。它還有一個IHttpModule介面,實現這個介面,你可以對請求的過程進行控制和定製。比如說對請求的內容做一些額外的處理,許可權控制,請求過濾之類的事情。
- /// <summary>
- /// Summary description for AddContact
- /// </summary>
- public class AddContact : IHttpHandler
- {
-
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- context.Response.Write("Hello World");
- }
-
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
Java是提供你一個基類HttpServlet ,繼承這個基類,有兩個方法doGet和doPost,可以接受get和post請求。如果你從java入門開發web應用,你就需要知道http的get和post,以及http的一些細節,因為在開發的時候就需要你理解和正確設定,才能有結果。
java也會有一些web開發架構,為了方便你的開發,也會向你隱藏一些實現的細節,讓你專註於業務開發。
ASP.NET還有一個MVC架構,也是通過擴充ASP.NET的IHttpHandler和IHttpModule來實現的。
說到這裡,相信有一部分讀者已經理解和明白我想說明的問題了。
本文出自 “突破中的IT結構師” 部落格,請務必保留此出處http://virusswb.blog.51cto.com/115214/1128193