學習ASP.NET WEB開發需要學習那些知識?

學習http://ASP.NET WEB開發需要學習那些知識?http://ASP.NET開發有什麼優點和缺點?

http://ASP.NET和JSP(HTML+CSS+JS+JSTL)主要的區別在哪裡?http://ASP.NET比JSP優秀在哪裡呢?

WINFORM就是伺服器端組件嗎?


首先,你要熟悉HTTP協議。

然後,你要學習HTML,特別是表單這一部分(form)。

再然後,你要知道瀏覽器是如何使用HTTP協議載入HTML的,以及如何載入HTML里的資源。

有了上述的基礎,你還要學會C#語言(強烈反對在不熟悉C#語言的基礎上去寫http://ASP.NET程序)。如何循序漸進地學習C#,我在0基礎學編程,是選擇python+mysql入手好,還是C#+sql sever好? - 周擎宇的回答里寫了一個單子。

以前我還會推薦你了解IIS的Request Pipeline,不過隨著http://ASP.NET 5即將發布,這些知識可能就不必要了。

然後是如何通過代碼讀寫資料庫:

  1. 首先配合MS SQL Server Express學習SQL語言
  2. 使用.NET Framework自帶的http://ADO.NET讀寫資料庫。之所以推薦這個,因為這個是.NET平台讀寫資料庫的基石,那些ORM框架的底層都是用http://ADO.NET實現的。
  3. 使用Entity Framework讀寫資料庫。還可以再看看NHibernate,所有比較。

最後,你才可以開始學習http://ASP.NET:

  1. 首先你要知道http://ASP.NET大概的Request Pipeline(處理HTTP請求的流水線)。這個部分需要HTTP協議才能比較容易地理解。這個Request Pipeline里會有很多部分,有些部分你初看時會非常不能理解為什麼需要,可以暫時不管;你寫的http://ASP.NET程序複雜了之後,自然就知道細分Pipeline的好處了。
  2. 在此基礎上,開始動手,從簡單的Web程序開始寫起,越寫越複雜,這樣逐漸掌握http://ASP.NET作為一個框架提供的大部分擴展點(Extension Point)。這些知識或者說經驗可以讓你能夠靈活、高效地處理複雜的業務需求,不用在可以打一針的時候拚命吃藥。
  3. 在寫較複雜的Web程序時,善用第三方庫(Nuget Packages)。使用別人的代碼加速自己的開發、不重複造輪子是大勢所趨。如果你好奇別人怎麼做的,大部分時候你都可以找到這個庫的源代碼,然後就可以自己研究了。研究的時候,除了關心它怎麼實現的,還可以去思考一下它為什麼要這麼實現,做了哪些設計上的決定(Design Decisions)。你以後自己寫代碼的時候,也會做這樣的決定;這些決定的好壞,很大程度上影響了你Web程序結構的合理性。
  4. 當你寫過一些複雜的Web程序、有了一定經驗後,可以去網上找一些知名的開源http://ASP.NET程序來比對、學習。例如Orchard CMS,這個項目里就有非常豐富的內容值得學習(不過它的內容太豐富了,http://ASP.NET初學者經驗不足,上來的時候會無從下手)。或者小一點的項目,例如ASP.NET MVC Application Using Entity Framework Code First in C# for Visual Studio 2013。

如果你要問和JSP的區別話,個人覺得技術上的區別沒有很重要的,大家的原理一樣,可能從擴展點多寡和方便程度來講所有不同,但都不太重要。每個語言都會有一套自己的開發框架,同時形成一個生態系統。真要說,也許就是Java的第三方庫很多,但http://ASP.NET也不少。

如果你要學習JSP,我剛剛說的基本都適用,只要把一些http://ASP.NET專有東西替換成JSP的等價品就可以了。

這些都是工具,重點是用的順手,我個人喜歡C#,所以我大部分時候都選擇http://ASP.NET。

你可以完全忘記"WinForm"的存在,它和http://ASP.NET沒有一點關係。微軟曾經出品了一個叫http://ASP.NET WebForm的東西,但是現在已經逐漸被主流嫌棄了。如果你要學習,請認準http://ASP.NET MVC。


推薦閱讀:

GitHub 有什麼用?放在上面的代碼會泄漏嗎?
如果我們能從頭開始,web編程會是什麼樣子?
react、vue如何為所有原生標籤/元素綁定事件?

TAG:Web開發 | Java | ASPNET | C# | WindowsFormsWinForms |