從0開始學習ASP.NET(2.0為例)系列——04C#/.NET FrameWork/ASP.NET相關基礎知識介紹


簡介:


前言:上一篇文章中BlogBoy已經和大家分享了有關開發ASP.NET應用程序的開發環境及配置的相關話題,那么接下來我們是不是可以直接討論寫代碼的事情了呢?BlogBoy的答案是:NO,我們是程序員並不是代碼機器,“不假思索,提筆就寫”不是一個良好習慣,還是稍安勿躁,我們還有一些基礎沒有挑明。說到基礎,尤其是做WEB開發,基礎這個東西似乎既高深莫測而又可有可無,說它高深莫測,是因為基礎的東西牽連比較廣,縱橫度可深可淺;說它又是可有可無,是因為許多人可以在沒有掌握它們的前提下,照樣可以很好的完成任務。恩,這些東西確實有過不少的聽聞,不過BlogBoy依舊認為,0基礎的ASP.NET愛好者,最好還是掌握一些最基本的東西,只有了解,才能談得上喜愛。

再來說說這篇文章的標題,可能還是會有不少園友要噴,誠然,如果按部就班的以標題為准,事無巨細的講解所有內容將會是BlogBoy的一大噩耗和挑戰,這主要是因為C#、.NET FrameWork、ASP.NET中的任何一個,要把其中的基礎講全面着實不是鄙人所能企及的。閱讀過《C#入門經典》、《ASP.NET2.0入門經典》、《CLR via C#》等相關書籍的讀者都了解,掌握其中的技術細節需要花費較多的時間和精力,但是把握其中的大概知識卻並非難事,即便暫時不理解,在以后的閱讀或實踐中能夠更好的做到有的放矢。

      首先申明,BlogBoy並非標題黨,雖然標題涉及的內容較多,但只要是標題涉及的東西BlogBoy都會盡力的做出自己的解釋,這篇博文涉及的內容屬於基礎,所謂基礎,就必然是既簡單又復雜的東西,為什么這么說呢,舉個不恰當的例子,我相信沒有人不知道1 + 1 = 2,是吧,這是再基礎不過的東西了。可是能否說清楚為什么1 + 1 = 2呢!呵呵,是不是有點棘手呢。學會一門技術也許不難,難的也許是將它們如何用文字或語言清晰的表達出來,關於這點BlogBoy着實佩服那些博客大牛,不但技術上厲害,同時也幫助了無數的后來者。SO,基礎並不是一篇兩篇文章就能搞定的,BlogBoy和讀者們都需要做好打持久戰的准備(不少讀者可能會感到灰心或失落,但如果靜下心來想想,哪一個真正的“武林高手”不是慢慢練出來的呢,那些或墜崖、或吃錯葯、或筋脈逆轉而又死而復生的“爆發性高手”在程序界真的存在么……SO,我們普通人還是慢慢來吧!)。

正文:


我想前面已經講的非常清楚了,對於以下的基礎,BlogBoy只會挑選與WEB相關或十分重要的部分作為講解內容,為了讓0基礎的讀者能夠更好的把握主脈,我采用提綱式的講解,期間會附上一些相關的博文地址。

第一部分,c#基礎

在這部分中,我認為讀者應該掌握的知識和順序因該是:

C#的變量和表達式:如果你能熟悉它們的使用方法並且理解各種變量的內存結構及相互轉化的過程(類型轉換的一個熱門話題是有關”裝箱拆箱”的,關於這部分內容你可以在這個地址找到一些見解和看法:http://www.cnblogs.com/mqsuper/archive/2008/08/12/1265520.html),那么恭喜你,你可以順利跳過這一部分。

面向對象的編程理念:其實這部分內容與語言本身無關,有很多資料可以借鑒,比較熱門的話題是關於“設計模式”的,關於設計模式的話題讀者可以參考以下地址:http://www.cnblogs.com/cj723/archive/2007/11/23/962823.html ,BlogBoy個人認為設計模式或編程思想都是需要在項目經驗、代碼重構中不斷得到提煉的,操之過急反而容易走火入魔,園子最近就有相關的帖子討論設計模式的利弊,用興趣的可以找出來看看。

集合和泛型以及接口:做WEB開發需要頻繁的使用一些高級對象,如各種List、各種數據集、各種接口,掌握這些對象及接口就可以方便使用或定制自己的數據轉載對象,相關的資料參看以下網址:http://www.cnblogs.com/wf225/archive/2008/01/14/1038104.html ,BlogBoy認為需要掌握的對象或接口主要有:DataTable、DataSet、IEnumerable、IList、ICollection、IDictionary、IDispose等等。

文件IO、GDI+:這些算是最接近於實際編程的基礎了,你在這里會聽到托管資源和非托管資源的概念,你會懂得如何及時釋放內存資源,還能學習一點繪圖畫線等很鍛煉數字思維的代碼,參考網址:http://www.cnblogs.com/alex-bn-lee/archive/2012/01/22/2328793.html

調試和異常處理:這個自然十分基礎,而且很有必要掌握,這又篇博文可以參閱http://www.cnblogs.com/zhuqil/archive/2010/01/19/exception_handling_guidelines.html

看完上面的列表清單,有些讀者可能要問:為什么沒有事件和委托、為什么沒有Ling、為什么沒有多線程、沒有Socket呢!(事實上多線程和Socket本來就不是C#的基礎,而且Socket使用在在Winform場景中更加普遍,這里會提到這些是因為,他們在C#中都得到支持,並且被熱議,很容易被誤解為是基礎的一部分。)怎么說呢,首先我覺得這些並不是0基礎的讀者應該首先掌握的東西,其次,這些東西在普通的WEB網站中使用不是非常普遍(特指“顯式的使用”,也許園友會嘲笑我誤導讀者……怎么說呢,我覺得0基礎的讀者還需要更多的經驗才能稍微理解這些東西,而在沒有理解的前提下貿然使用這些技術可能會適得其反,又或者學習的時候被堵塞在這些知識上,與其卡在這里,還不如學習更多更普遍的基礎,不是嗎!)

第二部分:.NET FrameWork基礎

CLR基礎:CLR公共語言運行時的核心功能包括內存管理、程序集加載、線程同步、異步處理等,但這些都不是你現在需要掌握的東西,你唯一需要掌握的就是大致的理解一下CLR的運行過程,以及過程中涉及的一些新名詞,如托管模塊、元數據、中間代碼……,對這些新名稱保留一些概念,以備后用。參考網址:http://www.cnblogs.com/artech/archive/2010/10/18/clr_memory_mgt_01.html

.NET中的堆和棧:關於這一塊的內容,不能僅僅停留在留有概念的水平上,而是應該嚴格的將它們划分開並深入理解他們之間的區別,對於0基礎的讀者,你可以暫時簡單的認為.NET中的堆和棧是將我們的內存划分為兩個不等的部分,堆的特點是容量大而速度慢,因此堆中適合用於存放數據和復雜的對象,而棧的特點剛好相反,它一般用於存儲小量數據和對象的地址引用(如果你了解二進制和數據結構,效果會更好,但是讀者可以形象的在腦海中記住堆棧的區別)。參考網址:http://www.cnblogs.com/paulxie/archive/2011/03/09/1978056.html

.NET垃圾回收機制:關於這部分的內容,網上有比較多的文章可以借鑒,同樣,0基礎的讀者可以着重理解托管和非托管資源的區別,以及如何手動釋放非托管部分(我們熟知的COM、GDI、IO、數據庫等都屬於非托管的代碼,這也是為什么諸多文章着重介紹IDispose以及Using用法的原因)。參考網址:http://www.cnblogs.com/riccc/archive/2009/09/01/dotnet-memory-management-and-garbage-collection.html

第三部分:ASP.NET基礎

頁面請求的原理和過程:

ASP.NET的運行機制:待續未完

HTML+CSS+JavaScript:待續未完

ASP.NET網站的各種文件:待續未完

一些主要的服務器控件:待續未完

ASP.NET中的Ajax:待續未完

 

結語:

由於時間關系,關於ASP.NET部分的基礎沒有寫,只是列了一個大概的目錄,其實這個部分的內容還是相對比較重要的,整個文章寫的也有些凌亂。怎么說呢,金無足赤,人無完人,活出自己的精彩!BlogBoy其他時間會陸續的補上,盡請期待!最近比較累,先休息去了……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM