如何才能系統(tǒng)有效的學(xué)習(xí)asp
ASP.NET Core管道雖然在結(jié)構(gòu)組成上顯得非常簡(jiǎn)單,但是在具體實(shí)現(xiàn)上卻涉及到太多的對(duì)象,所以學(xué)習(xí)起來并沒有那么簡(jiǎn)單。以下是學(xué)習(xí)啦小編分享給大家的有效學(xué)習(xí)asp的步驟的資料,希望可以幫到你!
有效學(xué)習(xí)asp的步驟
第一步 掌握一門.NET面向?qū)ο笳Z言,C#或VB.NET 我強(qiáng)烈反對(duì)在沒系統(tǒng)學(xué)過一門面向?qū)ο?OO)語言的前提下去學(xué)ASP.NET。 ASP.NET是一個(gè)全面向?qū)ο蟮募夹g(shù),不懂OO,那絕對(duì)學(xué)不下去!
第二步 對(duì).NET Framework類庫(kù)有一定的了解 可以通過開發(fā)Windows Form應(yīng)用程序來學(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í)的考慮,不少人沒有扎實(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)頁設(shè)計(jì)工具,關(guān)鍵是理解HTML網(wǎng)頁嵌套的block結(jié)構(gòu)與CSS的box模型。許多ASP.NET控件最后都必須轉(zhuǎn)化為HTML。而且,div+CSS是當(dāng)前主流的網(wǎng)頁布局模型。 學(xué)習(xí)這部分時(shí),關(guān)鍵在于理解概念,而不需要將精力花在美化頁面的許多技巧上,那是網(wǎng)站美工的工作,不是程序員的工作。
第二步:學(xué)習(xí)JavaScript
JavaScript不是Java,它主要運(yùn)行于瀏覽器端。可以完成許多工作,功能也很強(qiáng)大:比如它將客戶端網(wǎng)頁中的HTML元素看成一棵樹,可以編寫代碼訪問并修改樹節(jié)點(diǎn),動(dòng)態(tài)生成新的HTML代碼,從而達(dá)到動(dòng)態(tài)修改網(wǎng)頁顯示特性的目的。
JavaScript在目前的網(wǎng)站開發(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)開發(fā)的理論基礎(chǔ)。
第四步:學(xué)習(xí)ASP.NET表示層技術(shù),會(huì)設(shè)計(jì)Web頁面
需要結(jié)合先前打好的面向?qū)ο蠹夹g(shù)的基礎(chǔ),至少掌握以下內(nèi)容:
(1) 各種Web控件的使用方法,
(2) 理解信息在網(wǎng)頁中的傳送方式,比如Cookie,ViewState,Session等的使用。
(3) ASP.NET應(yīng)用程序與網(wǎng)頁的生命周期,以及相關(guān)對(duì)象(比如httpcontext,response,request)的用途。
(4) ASP.NET實(shí)現(xiàn)事件驅(qū)動(dòng)的內(nèi)幕
(5) 自定義用戶控件
再次強(qiáng)調(diào)一下,沒有OO基礎(chǔ),很難掌握上述技術(shù),就只能被這些東東牽著鼻子走了,會(huì)很被動(dòng)。
第五步 掌握數(shù)據(jù)庫(kù)技術(shù)
具體地說,要學(xué)習(xí)以下內(nèi)容:
(1) 學(xué)會(huì)使用SQL Server 2005:不要求精通它的各種工具與管理配置技術(shù),但至少知道如何連接,如何建表,如何創(chuàng)建存儲(chǔ)過程
(2) 學(xué)習(xí)ADO.NET,掌握使用代碼人工訪問數(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ù)雜的開源ASP.NET項(xiàng)目分析一下其架構(gòu)就差不多了。基本上都是一個(gè)套路,到處應(yīng)用。
有的朋友問:學(xué)習(xí)架構(gòu)是不是必須學(xué)習(xí)設(shè)計(jì)模式。
我的看法是:不必!當(dāng)然,你如果學(xué)習(xí)過設(shè)計(jì)模式,那當(dāng)然更好。但在實(shí)際開發(fā)中,如果只想著機(jī)械地套用某種模式,反而起不到好的結(jié)果。我的觀點(diǎn):在學(xué)習(xí)設(shè)計(jì)模式時(shí)要多思多悟,其思想就會(huì)漸漸地融入你的大腦,在真實(shí)的設(shè)計(jì)實(shí)踐中,忘掉所有的寫在書上的模式,一切從實(shí)際出發(fā),相信你的直覺,只要達(dá)到設(shè)計(jì)要求的方案就是可行的方案,事實(shí)上,你這樣做了之后,回過頭來再看,會(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,不過SOA的資料都是理論與概念,看起來比較郁悶,而且離實(shí)際開發(fā)可能比較遠(yuǎn)。所以,這是可選項(xiàng)。
第八步 學(xué)習(xí)AJAX
學(xué)習(xí)AJAX的主要目的是創(chuàng)建具有更豐富特性的Web表示層,而經(jīng)過前面七步的學(xué)習(xí),到此再學(xué)習(xí)AJAX已水到渠成,所有的基礎(chǔ)都已具備,不會(huì)有太大的問題了。
在基礎(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ù)來說,主要指微軟的Silverlight(WPF_E),畢竟前頭一路行來都是微軟路線。
有效學(xué)習(xí)asp建議
asp.net與自身現(xiàn)狀結(jié)合
當(dāng)我在學(xué)習(xí).net的時(shí)候,有不少朋友告訴我,現(xiàn)在做網(wǎng)站熱門的是用PHP,.net實(shí)有過時(shí)之嫌,雖然一樣是學(xué)習(xí),還是不少人建議我直接學(xué)PHP;另一方面,.net是微軟公司出的技術(shù),所以又有一種說法是”微軟不倒它不倒”,”它不倒我就不倒….”大概這個(gè)意思。
在存有疑惑的時(shí)候,我找了學(xué)長(zhǎng)和其他朋友聊了不少,但是趨勢(shì)這個(gè)東西,誰又可以確定未來呢。偶然一天,翻看微信訂閱號(hào)推送的時(shí)候,看到一篇“為什么要學(xué)習(xí)MVC框架”的文章,大概內(nèi)容是基于使用java做網(wǎng)頁時(shí)從JSP到j(luò)ava再到XML的一系列代碼都沒有使用MVC簡(jiǎn)便而且快捷。
我認(rèn)真地看了一眼JSP的代碼,怎么看怎么都跟.net的webform長(zhǎng)得一模一樣,心里有點(diǎn)激動(dòng),回想起學(xué)長(zhǎng)也對(duì)我說過,其實(shí)做網(wǎng)站思路都是一樣的,當(dāng)初我沒有理解,現(xiàn)在看到了這個(gè)代碼,發(fā)現(xiàn)寫網(wǎng)頁用java也和.net其實(shí)差不多,我又跑去問了PHP,學(xué)長(zhǎng)給我的答復(fù)還是那句話,PHP又是另一套語言,其實(shí)現(xiàn)在學(xué).net就是在學(xué)習(xí)做網(wǎng)站的思想,以后如果要轉(zhuǎn)另一門語言其實(shí)也不難。
這讓我又堅(jiān)定了學(xué)習(xí).net的決心,也解開了心中的疑惑。學(xué)習(xí)思想總不會(huì)過時(shí)吧。
項(xiàng)目從webform改成MVC
這是我現(xiàn)在要學(xué)習(xí)的內(nèi)容。
為什么要把項(xiàng)目從webform改成MVC呢。其實(shí)大概了解的人都知道,如果是用webform來做網(wǎng)站,基本上微軟把html,css都封裝起來了,甚至你都不需要看到前端代碼,直接使用控件拖拽就可以完成視圖的設(shè)計(jì)。但是問題也就在這里,畢竟拖拽后的頁面代碼是自動(dòng)生成的,你并不能保證它會(huì)出現(xiàn)什么問題,這個(gè)時(shí)候你又要找回生成的html,css等,那么webform反而是一個(gè)麻煩制造者了。
“
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。
MVC解決以上問題,是一種現(xiàn)今熱門的開發(fā)模式。推薦大家了解和學(xué)習(xí)。
asp的結(jié)構(gòu)
1. 新的配置方式
看看上圖的項(xiàng)目你發(fā)現(xiàn)Web.Config或者其他文件夾上的以Config為后序的文件不見了(之前總覺得讀/寫這種XML是一件痛苦的事情)。真心話,做技術(shù)當(dāng)然不是一段婚姻,你需要喜新厭舊。那新的ASP.NET 5的配置文件去哪里了,變得怎么樣了?肯定是簡(jiǎn)單了,更容易以自己喜歡的方式去定制不同的配置文件(XML,JSON,INI都可以)。在ASP.NET 5中主要通過Startup.cs取代Web.config去完成初始化配置工作。例如項(xiàng)目中包和包的依賴關(guān)系,更可以升級(jí)包的版本,啟動(dòng)頁面等。而這種配置都是從IConfiguration開始。
2. Project.json
這個(gè)是配置你的項(xiàng)目所要的包,編譯設(shè)置,資源文件的主要文件。他通過JSON文件設(shè)置。有幾個(gè)比較關(guān)系的字段
Dependencies :設(shè)置你項(xiàng)目中所需要的包,當(dāng)你使用kpm rebuild時(shí)會(huì)依據(jù)這個(gè)去加載你的包,如果你的包的版本更新也可以通過這里進(jìn)行設(shè)置。如下圖這里設(shè)置了一個(gè)新項(xiàng)目所需要到的基礎(chǔ)包(JSON總比XML易讀易理解)
Framework : 針對(duì)aspnet50和aspnetcore50進(jìn)行所需要的包進(jìn)行設(shè)置。
Command : 設(shè)置運(yùn)行K(DN)后面的參數(shù),例如設(shè)置web / kestrel 的啟動(dòng)服務(wù)和端口,單元測(cè)試,或者entity framework的支持等。
3. Config.json
配置數(shù)據(jù)庫(kù)連接和你對(duì)應(yīng)的ORM引擎,這里默認(rèn)是Entity Framework 7。我更希望有更多的ORM引擎加進(jìn)來。
4. 前端配置npm/bower/grunt
你的項(xiàng)目需要引入JS庫(kù)/Bootstrap等,以往需要在項(xiàng)目中一個(gè)個(gè)下載,為了更節(jié)省時(shí)間npm+bower就可以幫你找了。而grunt更方便幫你部署項(xiàng)目時(shí)整理/壓縮你的JS,規(guī)范你的JS代碼。 這里更像NodeJS,或者說是模仿。
你現(xiàn)在應(yīng)該基本了解一個(gè)ASP.NET 5項(xiàng)目的結(jié)構(gòu)了,明天繼續(xù)。還是那句多多交流!
猜你喜歡:
2.如何系統(tǒng)學(xué)習(xí)CAD繪圖軟件