av网站免费线看精品_国产做a爱视频免费不_深爱激情网开心五月天_伊人五月天在线视频网

 
ASP.NET入門隨想之抽象的力量
發(fā)布時(shí)間:2008-05-15   瀏覽次數(shù):1226749

ASP.NET入門隨想之抽象的力量

ASP的編程思想 -寫八股文

  MS在java技術(shù)的沖擊下匆忙推出ASP技術(shù)。要不是因?yàn)閃inServer操作系統(tǒng)的霸主地位,粗陋的ASP不太可能在OO推行二十幾年、C++和JAVA如火如荼之際站穩(wěn)腳跟。

  我們從ASP技術(shù)中幾乎可以看出編程技術(shù)的幾十年的演進(jìn)過程。大多數(shù)人寫的個(gè)ASP程序,是在HTML字符流中插入< %="Hello,Welcome to ASP World!"%>,瞬間沖動(dòng)一直支撐著ASP程序員從輸出網(wǎng)頁內(nèi)容到輸出網(wǎng)頁結(jié)構(gòu)到輸出網(wǎng)頁腳本程序的學(xué)習(xí)過程,只要你對(duì)HTML語法結(jié)構(gòu)和數(shù)據(jù)庫有一定了解,熟悉某一兩種程序設(shè)計(jì)語言,你可以很快地?fù)芘鰩讉(gè)網(wǎng)站,要是你還會(huì)點(diǎn)PS和FLASH,那你簡直不得了了;終于有有人想起C語言include "string.h"之類的東東,開始意識(shí)到重復(fù)的代碼可以定義一個(gè)函數(shù)或過程來重復(fù)調(diào)用,于是網(wǎng)絡(luò)上開始盛行< include file="****.asp">語句;復(fù)雜的企業(yè)計(jì)算不堪忍受ASP粗糙的八個(gè)固有組件,然又有白骨精們編寫出DLL以體現(xiàn)JAVA標(biāo)志性的N層結(jié)構(gòu)技術(shù),于是又出現(xiàn)了一個(gè)新名詞叫DLL陷阱,如果你編寫出來的DLL和WIN系統(tǒng)現(xiàn)有的同名,那么離重裝機(jī)器的日子不遠(yuǎn)。簡單地說,ASP是面向過程和面向?qū)ο蟮碾s交體,原始、混亂,在同一個(gè)程序中,你可看到call sub,也可看到set rs=conn.execute("……"),什么東西!

  但不管怎么折騰,ASP編程的實(shí)質(zhì),是始終面對(duì)著組織網(wǎng)頁HTML字符流這個(gè)過程,盡管帶著點(diǎn)OO的影子,但它的目的決定了它是面對(duì)過程,在它的眼里,花哨網(wǎng)頁中的文字和圖片一樣,都是字符,它的任務(wù),是從< html>標(biāo)簽開始,不斷用response.write 語句生成< head>到< body>、< div>、< input>一直到< /html>標(biāo)簽字符流,構(gòu)成客戶端HTML網(wǎng)面和客戶端腳本程序,恰似八股文之破題、承題、起講……

  WEB程序編程思想的演進(jìn) -讓人民幣來得更猛烈些吧!

  讓我們來想像一下你的月薪從1,000RMB到>30,000RMB的過程。

  一個(gè)靜態(tài)網(wǎng)頁似WORD文檔,CSS象是WORD文檔的模板。如果你恰好做這些事,那么你的職位叫網(wǎng)面設(shè)計(jì)師,月薪1,000,這時(shí)你年少無知;

  如果你開始知道如何用程序自動(dòng)生成一個(gè)頁面時(shí),此時(shí)你的編程思想是圍繞著某個(gè)具體網(wǎng)頁展開的,恰如五六十年代的面對(duì)過程時(shí)代。那么你的月薪將可能有2,000,叫程序員,這時(shí)你初出毛廬;

  你做了許多重復(fù)的事,發(fā)現(xiàn)許多頁面需要一些公共功能,比如網(wǎng)站往往需要一個(gè)公共的CONN文件來創(chuàng)建數(shù)據(jù)庫連接對(duì)象時(shí),程序員自然會(huì)將這個(gè)創(chuàng)建過程封裝成函數(shù)來重復(fù)調(diào)用,這時(shí)的編程思想是圍繞著公共功能展開的,正如七八十年代的結(jié)構(gòu)化編程,已經(jīng)開始對(duì)功能的進(jìn)行抽象。風(fēng)華正茂的你開始被人叫成軟件工程師了,月薪3500;

  當(dāng)你又發(fā)現(xiàn)一個(gè)網(wǎng)站中其實(shí)都是由公共的內(nèi)容組成的,比如登錄框,它往往有固定的數(shù)據(jù)(用戶名/密碼)、固定的外觀(用戶名和密碼輸入框 / 提交按鈕)、固定的動(dòng)作(審核 / 登錄成功 / 登錄失敗),從結(jié)構(gòu)化角度來看,完成登錄框需要定義若干個(gè)變量和若干個(gè)函數(shù),但我們進(jìn)一步抽象,把對(duì)話框看成一個(gè)整體,它用數(shù)據(jù)來表示自己的特征(不同用戶名和密碼的組合),用方法來表示自己所能處理的事件,封裝起來,即成為對(duì)象?捎萌缦陆Y(jié)構(gòu)來表示:

  class 登錄{用戶名;密碼;審核;登錄成功;登錄失敗;輸入界面;}

  再用對(duì)象的眼光來觀察網(wǎng)站,那么會(huì)發(fā)現(xiàn)小到輸入框,大到頁面,都是對(duì)象,從整個(gè)網(wǎng)站中抽象出最基本的內(nèi)容(不可再分、缺一不可)設(shè)計(jì)成對(duì)象,然后是簡單地組合。這時(shí)的編程思想是面對(duì)整個(gè)網(wǎng)站,其實(shí)這是八九十年代風(fēng)行一時(shí)的OO思想;這時(shí)你可能已經(jīng)有了名片,上面印著高級(jí)軟件工程師幾字,月薪5000RMB,不過你早上梳頭時(shí),會(huì)發(fā)現(xiàn)自已的眼角已有了皺紋;

  當(dāng)一個(gè)企業(yè)需要把互聯(lián)網(wǎng)溶入到它的機(jī)體時(shí),它必須把現(xiàn)有的桌面程序和WEB程序看成一個(gè)整體,兩者需要公共的組件,如這時(shí)的登錄請(qǐng)求不僅可能是WEB程序,還可能是桌面程序,也是說需要統(tǒng)一的使用授權(quán)組件來處理這類事物,那么這時(shí)的編程思想是面對(duì)組件;這時(shí)你的頭銜已改成架構(gòu)師,月薪>10000,不過鏡子里的腦袋上出現(xiàn)若干白發(fā);

  一切看起來已經(jīng)好象很完美了,不!正如我們對(duì)月薪的追求永無止境一樣,企業(yè)所想的不僅僅是讓用戶們簡單地瀏覽它們網(wǎng)頁這么簡單。他的關(guān)聯(lián)客戶又對(duì)你的系統(tǒng)提出新要求,如希望用他們的JAVA系統(tǒng)直接完成轉(zhuǎn)賬過程,可我的系統(tǒng)是用ASP.NET系統(tǒng)架構(gòu)出來的!另外,你可不能讓別人輕松劃走2^N RMB。成千上萬家的關(guān)聯(lián)客戶讓你的編程思想開始面對(duì)公共服務(wù)。對(duì)方可不認(rèn)識(shí)你的這對(duì)象那組件,他而言,轉(zhuǎn)賬是一件事,只要在他的桌面程序中用他那粗短的手指輸入用戶名和密碼后,其它是你系統(tǒng)的事。如果你能熟練地用WEB Service 完成這些事情,那么恭喜你,薪水你而言,只是一個(gè)數(shù)字而往往不具有實(shí)際意義,當(dāng)然,你現(xiàn)在已很難用自身的魅力來吸引清純少女了,用十八歲女孩的話說,你已經(jīng)是老男人了,雖然你才三十出頭。

立即預(yù)約