關(guān)于初學(xué)ASP.NET技術(shù)的學(xué)習(xí)順序問(wèn)題
2007-06-14 前前后后有很多詢問(wèn)ASP.NET的學(xué)習(xí)順序問(wèn)題,在此就向打算系統(tǒng)學(xué)習(xí)ASP.NET技術(shù)的初學(xué)者談?wù)勎业慕ㄗh。 如果你已經(jīng)有較多的面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),跳過(guò)以下這兩步: 第一步 掌握一門.NET面向?qū)ο笳Z(yǔ)言,C#或VB.NET 我強(qiáng)烈反對(duì)在沒(méi)系統(tǒng)學(xué)過(guò)一門面向?qū)ο?OO)語(yǔ)言的前提下去學(xué)ASP.NET。 ASP.NET是一個(gè)全面向?qū)ο蟮募夹g(shù),不懂OO,那絕對(duì)學(xué)不下去! 第二步 對(duì).NET Framework類庫(kù)有一定的了解 可以通過(guò)開(kāi)發(fā)Windows Form應(yīng)用程序來(lái)學(xué)習(xí).NET Framework。ASP.NET是建構(gòu)在.NET Framework之上的技術(shù),你對(duì).NET Framework了解得越深,學(xué)習(xí)ASP.NET就越快。 舉個(gè)例子:下面簡(jiǎn)單列出幾個(gè)對(duì)掌握ASP.NET非常重要的概念: 對(duì)象的內(nèi)存模型,委托,事件,多線程,程序集和應(yīng)用程序域,安全模型 .NET Framework當(dāng)然還有許多其它的東西,但不理解與把握清楚上述這些東西,是很難真正把握ASP.NET的。 出于急迫的心情與現(xiàn)實(shí)的考慮,不少人沒(méi)有扎實(shí)的面向?qū)ο蠡A(chǔ)就想直接學(xué)習(xí)ASP.NET,其結(jié)果只能是欲速則不達(dá)。 在具備了OO基礎(chǔ)之后,以下是具體的學(xué)習(xí)ASP.NET技術(shù)步驟。 第一步:學(xué)習(xí)HTML與CSS 這并不需要去學(xué)一大堆的諸如Dreamweaver,F(xiàn)irework之類的各種網(wǎng)頁(yè)設(shè)計(jì)工具,關(guān)鍵是理解HTML網(wǎng)頁(yè)嵌套的block結(jié)構(gòu)與CSS的box模型。許多ASP.NET控件最后都必須轉(zhuǎn)化為HTML。而且,div+CSS是當(dāng)前主流的網(wǎng)頁(yè)布局模型。 學(xué)習(xí)這部分時(shí),關(guān)鍵在于理解概念,而不需要將精力花在美化頁(yè)面的許多技巧上,那是網(wǎng)站美工的工作,不是程序員的工作。 第二步:學(xué)習(xí)JavaScript JavaScript不是Java,它主要運(yùn)行于瀏覽器端??梢酝瓿稍S多工作,功能也很強(qiáng)大:比如它將客戶端網(wǎng)頁(yè)中的HTML元素看成一棵樹,可以編寫代碼訪問(wèn)并修改樹節(jié)點(diǎn),動(dòng)態(tài)生成新的HTML代碼,從而達(dá)到動(dòng)態(tài)修改網(wǎng)頁(yè)顯示特性的目的。 JavaScript在目前的網(wǎng)站開(kāi)發(fā)中用得很多,非常重要。 另外,它也是目前非常流行的AJAX技術(shù)的基礎(chǔ)。 第三步:學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)原理 找一本大學(xué)<計(jì)算機(jī)網(wǎng)絡(luò)>教材,重點(diǎn)看看它的有關(guān)互聯(lián)網(wǎng)的部分,了解一些域名解析和HTTP協(xié)議等知識(shí)。這是進(jìn)行互聯(lián)網(wǎng)開(kāi)發(fā)的理論基礎(chǔ)。 第四步:學(xué)習(xí)ASP.NET表示層技術(shù),會(huì)設(shè)計(jì)Web頁(yè)面 需要結(jié)合先前打好的面向?qū)ο蠹夹g(shù)的基礎(chǔ),至少掌握以下內(nèi)容: (1) 各種Web控件的使用方法, (2) 理解信息在網(wǎng)頁(yè)中的傳送方式,比如Cookie,ViewState,Session等的使用。 (3) ASP.NET應(yīng)用程序與網(wǎng)頁(yè)的生命周期,以及相關(guān)對(duì)象(比如httpcontext,response,request)的用途。 (4) ASP.NET實(shí)現(xiàn)事件驅(qū)動(dòng)的內(nèi)幕 (5) 自定義用戶控件 再次強(qiáng)調(diào)一下,沒(méi)有OO基礎(chǔ),很難掌握上述技術(shù),就只能被這些東東牽著鼻子走了,會(huì)很被動(dòng)。 第五步 掌握數(shù)據(jù)庫(kù)技術(shù) 具體地說(shuō),要學(xué)習(xí)以下內(nèi)容: (1) 學(xué)會(huì)使用SQL Server 2005:不要求精通它的各種工具與管理配置技術(shù),但至少知道如何連接,如何建表,如何創(chuàng)建存儲(chǔ)過(guò)程 (2) 學(xué)習(xí)ADO.NET,掌握使用代碼人工訪問(wèn)數(shù)據(jù)庫(kù)(別用VS2005的向?qū)?的方法 (3) 學(xué)習(xí)數(shù)據(jù)綁定控件的使用 第六步 理解多層架構(gòu) 這時(shí),先前在OO學(xué)習(xí)階段涉及到的程序集與應(yīng)用程序域等就派上用場(chǎng)了,現(xiàn)在,網(wǎng)站架構(gòu)大多采用多層架構(gòu):表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)存取層以及數(shù)據(jù)庫(kù)本身。 可以先上網(wǎng)找一此多層架構(gòu)的資料看,再找一個(gè)現(xiàn)成的比較復(fù)雜的開(kāi)源ASP.NET項(xiàng)目分析一下其架構(gòu)就差不多了?;旧隙际且粋€(gè)套路,到處應(yīng)用。 有的朋友問(wèn):學(xué)習(xí)架構(gòu)是不是必須學(xué)習(xí)設(shè)計(jì)模式。 我的看法是:不必!當(dāng)然,你如果學(xué)習(xí)過(guò)設(shè)計(jì)模式,那當(dāng)然更好。但在實(shí)際開(kāi)發(fā)中,如果只想著機(jī)械地套用某種模式,反而起不到好的結(jié)果。我的觀點(diǎn):在學(xué)習(xí)設(shè)計(jì)模式時(shí)要多思多悟,其思想就會(huì)漸漸地融入你的大腦,在真實(shí)的設(shè)計(jì)實(shí)踐中,忘掉所有的寫在書上的模式,一切從實(shí)際出發(fā),相信你的直覺(jué),只要達(dá)到設(shè)計(jì)要求的方案就是可行的方案,事實(shí)上,你這樣做了之后,回過(guò)頭來(lái)再看,會(huì)發(fā)現(xiàn)你的設(shè)計(jì)往往暗合設(shè)計(jì)模式的理論。 第七步 學(xué)習(xí)XML與Web Service 先了解XML的基礎(chǔ)知識(shí),找本講XML的書看一下就差不多了,然后,再學(xué)習(xí)Web Service。Web Service其實(shí)可類比為遠(yuǎn)程方法調(diào)用(以XML格式表達(dá)的調(diào)用信息)。 學(xué) 到了這里,如果你還有興趣,不妨再去看看SOA,不過(guò)SOA的資料都是理論與概念,看起來(lái)比較郁悶,而且離實(shí)際開(kāi)發(fā)可能比較遠(yuǎn)。所以,這是可選項(xiàng)。 第八步 學(xué)習(xí)AJAX 學(xué)習(xí)AJAX的主要目的是創(chuàng)建具有更豐富特性的Web表示層,而經(jīng)過(guò)前面七步的學(xué)習(xí),到此再學(xué)習(xí)AJAX已水到渠成,所有的基礎(chǔ)都已具備,不會(huì)有太大的問(wèn)題了。 在基礎(chǔ)未具備的前提下直接學(xué)AJAX,就象“浮沙之上筑高臺(tái)”,所以,將AJAX的學(xué)習(xí)次序安排在這里。 第九步 學(xué)習(xí)RIA技術(shù) RIA:Rich internet application,可看成是將C/S與B/S優(yōu)點(diǎn)合二為一的嘗試。就具體技術(shù)來(lái)說(shuō),主要指微軟的Silverlight(WPF_E),畢竟前頭一路行來(lái)都是微軟路線。 不過(guò)目前學(xué)習(xí)它主要是為了技術(shù)儲(chǔ)備。估計(jì)此技術(shù)的普及需要2到3年的時(shí)間,因?yàn)轭A(yù)裝Vista的機(jī)器今年才開(kāi)始大賣。 |
|