国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

動態(tài)網(wǎng)頁原理/.net面面觀

2024-07-10 13:12:44
字體:
供稿:網(wǎng)友
一、        序言
    不知從什么地方開始才好,所以還是以閑聊作為開場。

首先很高興得到大家的支持,更高興可以遇到這么多志同道合的朋友,愿我們可以共同學(xué)習(xí),共同進步。正所謂學(xué)無先后,達者為師,在講解的過程之中,如有錯漏之處,還請指正。

其次,恭喜你選擇web應(yīng)用開發(fā),成為一名web應(yīng)用開發(fā)工人,看“工人”一說,我們都不是合格的程序員,勉強算的上一名it產(chǎn)業(yè)工人。

程序員也有等級,工人、工匠與大師。工人就是這條流水線上最原始的代碼復(fù)制者,不知疲倦的復(fù)制與組合代碼。工匠已經(jīng)提升了一個等級,編程是一種藝術(shù),工匠已經(jīng)可以操縱這種藝術(shù),他們可以讓程序更精練,更維美。大師站在頂端,他們是創(chuàng)造者,他們了解每一個細節(jié),可以創(chuàng)造規(guī)則。

如果編程學(xué)習(xí)是一座山,工人就站在山腳,工匠站在山腰,大師站在上頂。我自認(rèn)為剛到山腳,你呢?讓我們一起向成為大師努力吧。

最后給出一點建議,不要以為web應(yīng)用開發(fā)很簡單,即使是網(wǎng)站開發(fā)也不簡單。如果只簡單的對比winfrom開發(fā)(通俗的理解就是軟件開發(fā))與web應(yīng)用開發(fā)(通俗的理解就是網(wǎng)站開發(fā)),前者需要特別的深度,無論erp,還是游戲開發(fā)都好,都需要對技術(shù)很深的掌握。后者需要特別的廣度,web由各種技術(shù)綜合而成,如果只是簡單的掌握某種編程語言或方法,是肯定不行,只有多種技術(shù)相結(jié)合才能為用戶提供更好的用戶體驗。

閑話不多說,我們現(xiàn)在就開始。

二、        從html說起
1.        html的起源
首先從印刷術(shù)說起,自從印刷術(shù)發(fā)明,一些作家就會在手稿上做一些注釋以便指導(dǎo)印刷
工人進行排版,尤其以法國大革命時期的巴爾扎克為甚,他的文稿經(jīng)常圈涂更改寫滿注釋,所以只有特定的印刷工人才會明白他所做的標(biāo)記,不得以他值得付更多報酬給印刷工人,以免遭遇罷工(以前當(dāng)當(dāng)買書,被送了104冊兒童版名人傳記,就記住了,汗)。這樣的注釋就稱為標(biāo)記,它是一種特別的約定。sgml(standard generalized markup language,標(biāo)準(zhǔn)同用標(biāo)記語言)就是這樣的標(biāo)記語言。
   
    計算機顯示與印刷行業(yè)的排版有類同之處,都是儲存信息,傳遞信息,排列顯示,所以1989年3月,在歐洲粒子物理研究所,即cern,tim berners-lee提出一項計劃,目的是使科學(xué)家們能很容易地翻閱同行們的文章。此項計劃的后期目標(biāo)是使科學(xué)家們能在服務(wù)器上創(chuàng)建新的文檔。為了支持此計劃,tim創(chuàng)建了一種新的語言來傳輸和呈現(xiàn)超文本文檔。這種語言就是超文本標(biāo)注語言html(hyper text markup language)。
html是sgml語言的具體應(yīng)用,比sgml更為簡單,它是以對稱結(jié)構(gòu)化的筆記為“注釋”以告知意義,這樣就形成了我們所見到的網(wǎng)頁,而排版工人就是計算機。所以我們所見到網(wǎng)頁主體就是由html標(biāo)記和他所包含的內(nèi)容組成,執(zhí)行者與解釋者就是瀏覽器這個軟件程序。

2.        客戶端與服務(wù)器
    我們這里所說的客戶端就是指瀏覽器,它可以幫助你制作一個請求,并將這個請求發(fā)送給另外一臺計算機(服務(wù)器),服務(wù)器里有一個程序就像望夫石,它一直在那里等待,當(dāng)它發(fā)現(xiàn)某個客戶端的請求時,他會接受請求,并驗證這個請求的合法性,如果合法,他針對以某個程序為基礎(chǔ),對數(shù)據(jù)進行處理,接著他會將程序中需要返回的信息連同指定的html標(biāo)記一起返回給客戶端,客戶端收到返回信息后就會解釋、排列、顯示;

3.        從html到xml
隨著網(wǎng)絡(luò)的發(fā)展,html已經(jīng)不能滿足多數(shù)需要,html被不斷的修改,從1.0版本到現(xiàn)
現(xiàn)在的4.0版本,但是由于html將顯示格式與數(shù)據(jù)一起存儲與傳輸,它就無法適應(yīng)更多的需要,例如手機由于種種局限無法解釋html中的顯示格式,而需要的只有數(shù)據(jù),人們于是追本溯源,從新以sgml為基礎(chǔ)開發(fā)出另一種標(biāo)記語言即xml 。

    xml并不描述如何顯示,它的標(biāo)記(注釋)是用來描述數(shù)據(jù)信息,包含的是數(shù)據(jù),它可以在各設(shè)備與各平臺中相互傳遞,因為它是無格式的,當(dāng)某一程序接收到xml文件時,這個程序會按照被一起傳輸過來的顯示描述文件,對其解釋顯示,或者根據(jù)程序自帶描述進行解釋顯示,或者僅僅將它當(dāng)作數(shù)據(jù)接收。可以描述顯示的技術(shù)有maxl,xlst,css等。

    xml內(nèi)容遠遠不止這些,以后還會深入學(xué)習(xí);

4.        從html到xhtml
管理html xml標(biāo)準(zhǔn)的組織(w3c)認(rèn)為html由于其簡單化造成它的局限,html必然要
向xml過度,但由于xml雖然數(shù)據(jù)轉(zhuǎn)換能力強大,完全可以替代html,但面對成千上萬已有的站點,直接采用xml還為時過早。所以制定了一種中間過度型語言即xhtml。

    xhtml是the extensible hypertext markup language可擴展標(biāo)識語言的縮寫。目前推薦遵循的是w3c于2000年1月26日推薦xml1.0,是在html4.0的基礎(chǔ)上,用xml的規(guī)則對其進行擴展得到。

    雖然xhtml看起來比較高層一些,但它可以說是html4.0的升級版本,即4.01,我們在asp.net開發(fā)中要接觸到的是xhtml1.1 profisnal 標(biāo)準(zhǔn),它是在html基礎(chǔ)上更好的結(jié)合css,更嚴(yán)格的定義。

5.        看看javascript
javascript是一種腳本語言,就像html一樣被輸出至瀏覽器中,運行于客戶端,而不
是運行于服務(wù)器端,它對網(wǎng)站開發(fā)起到一些補充作用,可以于瀏覽器中運行,既在頁面瀏覽者的計算機上(準(zhǔn)確的說是瀏覽器里)執(zhí)行一些簡單操作,例如檢查驗證、控制瀏覽器中某單元的顯示等。

    微軟在ie瀏覽器中內(nèi)置一個程序模塊-xmlrequesthttp,它可以被javascrit調(diào)用,并進行后臺處理,而不必改變?yōu)g覽器中顯示,這樣就可以利用它與javascript結(jié)合隱藏處理與服務(wù)器端相互通訊,而不必改變頁面顯示,實現(xiàn)數(shù)據(jù)、表單提交,而整體頁面不會被提交至服務(wù)器,頁面不會被刷新,這就是最近熱火的ajax開發(fā)技術(shù)。

    javascript 并不難,復(fù)雜程度有限,對于簡單開發(fā)掌握4-10條語句即可,所以不必擔(dān)心。

6.        關(guān)于以上
以上5點我們稱為客戶端技術(shù),也就是被瀏覽器接收,解釋,執(zhí)行,顯示。雖然客戶端
技術(shù)還有很多,以上是最為關(guān)鍵,也是我們教程中需要用到的技術(shù)。這些技術(shù)又被稱為靜態(tài)技術(shù),他們的元素是構(gòu)成網(wǎng)頁顯示層面的要素,所以我們接收到的都是這些靜態(tài)要素,都是可以被瀏覽器讀懂并解釋的。而我們接收到的這些靜態(tài)要素是由服務(wù)器傳遞過來的,服務(wù)器通過執(zhí)行、解釋某個程序,并最終講運行結(jié)果與原有動態(tài)頁面中的html,一起制成靜態(tài)格式文件傳遞給客戶端,客戶端接收,解釋并顯示。

三、        數(shù)據(jù)庫(不要結(jié)合上面看)
    有一批水果,各種類型都有,想儲存起來,怎么放才好?
    雜亂的一堆,如果想從里面把蘋果全部找出來,豈不是很耗力?
    如果倉庫有一個柜子,柜子上有很多盒子,盒子上都唯一的編號,一個盒子存一種水果,這樣找出蘋果就方便了,只要找到那個對應(yīng)編號的盒子就行了。

    信息也是這樣,要把他們分門別類的村入數(shù)據(jù)庫中的每個表中,查找起來才有效率。一個數(shù)據(jù)庫可以有多張表,一張表里可以有多個字段,一個字段存儲一條信息,這樣在數(shù)據(jù)表中就形成行與列,一行代表一整條新數(shù)據(jù),比如某個蘋果的大小,重量,顏色都在這行對應(yīng)的列里(字段),下一行是另一個蘋果。

    如果你想給每個蘋果特征都記下來,只要把這個蘋果的特征對應(yīng)的記錄到一行里對應(yīng)字段里就可以了,下一行寫見的就是另一個蘋果,這就是數(shù)據(jù)庫的寫入。

    如果你想看到所有蘋果的特征,很簡單,用程序讀出來,然后寫進html文件里,這就是數(shù)據(jù)庫的讀出,需要一條一條的讀出嗎?不需要,程序是可以自己循環(huán)的讀的,讀完一條他會自動讀下一條,一直讀到?jīng)]有(判斷沒有了的條件),那循環(huán)又怎么顯示呢,首先你要把html標(biāo)記是一行的標(biāo)記一起放入循環(huán)結(jié)構(gòu)里,這樣在向頁面輸出的數(shù)據(jù)的時候,就自動把行結(jié)構(gòu)循環(huán)了,就是告訴html,加一個行,加完再加,一直到不能加了就不加了,那怎么把表了每個字段信息讀出來呢,好象你在地里挖土豆,你買了把鐵鍬,土豆長的成行成排的,每行的的每一個土豆邊上放的都是那把鐵鍬(科幻),從左邊起,然后右邊,換到下一行就成循環(huán)了。呵呵

     還有就是數(shù)據(jù)庫刪除了,比如某個蘋果爛了,你想把這個蘋果的信息刪除了,幸好你知道這個蘋果編號,只要告訴程序這個蘋果編號,然后執(zhí)行什么樣處理就可以刪除了。

     最后就是數(shù)據(jù)庫更新了,某個蘋果突然變胖了,你得更改記錄他的體重,你把這個蘋果編號給程序再告訴他體重改成多少斤就可以了。

    幸好我們有數(shù)據(jù)庫軟件,只要打開數(shù)據(jù)庫軟件,在里面建好數(shù)據(jù)庫,再在數(shù)據(jù)里建好表,再在網(wǎng)站程序里寫上幾行代碼就可以與數(shù)據(jù)庫軟件建立相互通訊了。

    這里我們用mmsql 2000 server這個軟件,不管是用哪個數(shù)據(jù)庫軟件,他接受的查詢語言都是一樣的,都是tsql97數(shù)據(jù)庫查詢語言,不多,幾個定義而已,不管是讀出,寫入,還是刪除 更新都好,我們只要在網(wǎng)站頁面里把對應(yīng)語句傳輸給數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)就會自動執(zhí)行,并那執(zhí)行的結(jié)果返回給我們的程序,這樣我們控制這些顯示這些數(shù)據(jù)就得到最終結(jié)果了。

    后面會對數(shù)據(jù)庫進行講解,以及各種方法講解;

四、        動態(tài)網(wǎng)站原理
1.        動態(tài)網(wǎng)站一般原理
動態(tài)網(wǎng)站一般是由瀏覽器發(fā)送請求給服務(wù)器,服務(wù)器接收到請求后根據(jù)請求進行處理,
最后將處理結(jié)果返回給客戶端顯示。
2.        客戶端一般通用請求
不管是在asp、php、asp.net、jsp里都存在以下的請求方法:
a.        表單提交
    表單是html(我用html類稱xhtml等,下同)中的一個標(biāo)記,沒有顯示意義,相當(dāng)于一個容器,當(dāng)這個表單中的某個按鈕,發(fā)生點擊事件后,瀏覽器首先檢測到這個事件,接著它會尋找這個按鈕所在的表單中所有可以向服務(wù)器傳送數(shù)據(jù)的元素,記錄這些數(shù)據(jù)的標(biāo)記,數(shù)值,然后發(fā)送給服務(wù)器上指定處理頁面,這個指定處理頁面是在表單的 action 屬性指定
<fron asction=”xxxx.aspx” mothed=”post”></from>
    例如論壇中的發(fā)表文章,在文本框輸入信息后按提交,瀏覽器會將這個文本框信息傳遞給服務(wù)器
mothed代表表單提交方法   
b.        地址定位
    地址定位一般是不傳遞參數(shù),或者將參數(shù)作為地址的一部分傳遞給服務(wù)器端。
    比如一個產(chǎn)品頁 的,應(yīng)用的是html ,xhtml,dhtml等傳統(tǒng)頁面技術(shù),遵循h(huán)ttp協(xié)議,客戶端于服務(wù)器端沒有過多的交互。
b.異步開發(fā)方式
遵循ajax異步技術(shù)的開始方式,基于瀏覽器,基于,應(yīng)用的是html ,xhtml,dhtml傳統(tǒng)頁面技術(shù),異步交互數(shù)據(jù)。
c.富客戶端開發(fā)方式 ria ui
例如flash的flex技術(shù),.net的expression技術(shù),這應(yīng)是未來的主流,這種技術(shù)是將界面與業(yè)務(wù)及數(shù)據(jù)邏輯層分離,將頁面狀態(tài)大量前移至客戶端,web服務(wù)器端重新組織資源,形成web service集合。

具體的解釋是這種開發(fā)方式脫離傳統(tǒng)的html,xhtml,dhtml等頁面技術(shù),客戶端與服務(wù)器端以xml做為通訊方式,大量頁面ui信息(maxl,mxml)加載到客戶端承載保存,服務(wù)器端實現(xiàn)真正web service集合;

按照flex的做法是將在瀏覽器里做一個緩存容器,異步加載執(zhí)行,實現(xiàn)更豐富的功能體驗,微軟在很久之前就公布將ie6.0作為ie的最后版本(ie7.0是因為他的計劃推遲,網(wǎng)絡(luò)產(chǎn)生變化,不得以變更)可能就是基于這個考慮
c.        胖客戶端
富客戶端只能說是功能體驗較多,胖客戶端就是肥了,胖客戶端已經(jīng)完全脫離瀏覽器,
脫離了傳統(tǒng)頁面方式,是b/s與c/s開發(fā)的的綜合,如果上一種可以稱為bc/s的話,后一種就是cb/s,c在前。
    具體的開發(fā)方式就是自定義客戶端讓用戶的下載以實現(xiàn)更豐富的功能,以web的方式進行通訊,如果無法理解,不妨想下網(wǎng)絡(luò)游戲,將全屏改成非全屏,將游戲界面改成現(xiàn)在的網(wǎng)絡(luò)界面,其實這還不足以說明。現(xiàn)在你明白了web應(yīng)用開發(fā)≠網(wǎng)站開發(fā)了嗎?

    現(xiàn)在處于一個技術(shù)變革的時代,如果你不能確定以后你時候會轉(zhuǎn)行,一定會繼續(xù)做程序員,你就要把把你的身家性命押寶你對新一代(也可以說是這一代)web技術(shù)和體系的理解上,從中選擇一種,不要追逐web2.0這樣概念,真正的革新已經(jīng)開始。

    3.小論c/s開發(fā)方式
    有句話是這么說來著的,一切都是為了web,it成就web,web吞噬it。
    b/s越來越熱火,但不代表c/s就要趨與平淡,在基礎(chǔ)領(lǐng)域c/s無可替代,甚至c語言這么多年依然堅挺,曾經(jīng)十分厭惡c,憎恨潭浩強誤人子弟,現(xiàn)在回過頭來c語言是如此的帥,自由透明。還有c++
    為什么不論vb,vb已經(jīng)無藥可救了,微軟老大發(fā)話一年內(nèi)vista時常占有60%,誰敢再碰vb,那么多面向?qū)ο缶幊陶Z言,為什么還要選vb,vb.net不過只保留了型。升級可以,沒問題?純屬做夢。
    為什么不論java,java不錯,但搞java的人都搞企業(yè)級開發(fā)去了,偶爾來點j2me,嵌入開發(fā)大佬,離c/s太遠了。
    daphi,daphi在嵌入與自動化控制方面市場占有強悍啊(尤其是大連這種重工企業(yè)多的地方),不知道為什么。
    看看.net的各種語言,c/s還是等普及了vista再說。

    基礎(chǔ)領(lǐng)域就c與c++在挺著,其他走的越來越靠近b/s。
    b/s與c/s界限的模糊是普通應(yīng)用領(lǐng)域的必然趨勢,所以不要說做網(wǎng)站沒前途啊,是還沒發(fā)現(xiàn)前途。

    4.小論vista的影響
    vista推遲兩年多才發(fā)布,要是04年6月發(fā)布估計網(wǎng)絡(luò)就不是現(xiàn)在這個樣子了,起碼我們現(xiàn)在早進入64位計算時代,大把大把的程序員要失業(yè)先。我們的上網(wǎng)行為方式估計也不是現(xiàn)在這個樣子。
    現(xiàn)在發(fā)布vista有什么影響,首先對最近還在買32位時代的電腦的人說,等死吧。其次,對主板不支持64位的人說,你們沒希望了。
    然后對vb程序員說,你們已經(jīng)被時代拋棄,對還在依賴com+的程序員及mfc程序員說,還好,但是努力轉(zhuǎn)。對asp開發(fā)者說,前途不會再光明。對php 開發(fā)者說,再看一兩年,看看還有沒有希望,說不定。對phython開發(fā)者說,祝賀你,你已經(jīng)跟著微軟老大混了。對ruby開發(fā)者說,提前祝賀你,你即將跟著微軟老大混。對c與c++開發(fā)者說, 王道還是!對java開發(fā)者說,咱不管,也管不著。

  完畢!
  順便補充vista 6版中5版基于64位,vista的核心是.net framework3.0,另外它以前的叫法叫做winfx,看起來是不是很像win32啊,像就對了。還有wwf,wcf,wpf可是些新詞匯哦!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 潞西市| 南漳县| 修武县| 东辽县| 阳谷县| 吉隆县| 二连浩特市| 水富县| 龙州县| 叶城县| 襄垣县| 顺昌县| 大余县| 鄄城县| 襄樊市| 宁河县| 玉屏| 阳朔县| 全州县| 遵化市| 镇平县| 奉化市| 若羌县| 关岭| 广灵县| 阿拉善左旗| 天水市| 凌云县| 拉萨市| 潜山县| 武夷山市| 海伦市| 宜丰县| 浮山县| 临沧市| 富裕县| 菏泽市| 洛阳市| 肥东县| 天门市| 鹰潭市|