WebMatrix開(kāi)發(fā)ASP.NET試用手記
發(fā)表時(shí)間:2024-06-18 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]前言 無(wú)可否認(rèn),Microsoft的重量級(jí)開(kāi)發(fā)工具Visual Studio.NET確實(shí)為我們提供了一個(gè)非常強(qiáng)大、優(yōu)秀的.NET應(yīng)用系統(tǒng)集成開(kāi)發(fā)環(huán)境。但是,使用VS.NET也要面對(duì)一些問(wèn)題,比如:VS.NET要付費(fèi)(當(dāng)然D版另當(dāng)別論),VS.NET安裝比較麻煩,VS.NET占用空間很大,對(duì)機(jī)器要...
前言
無(wú)可否認(rèn),Microsoft的重量級(jí)開(kāi)發(fā)工具Visual Studio.NET確實(shí)為我們提供了一個(gè)非常強(qiáng)大、優(yōu)秀的.NET應(yīng)用系統(tǒng)集成開(kāi)發(fā)環(huán)境。但是,使用VS.NET也要面對(duì)一些問(wèn)題,比如:VS.NET要付費(fèi)(當(dāng)然D版另當(dāng)別論),VS.NET安裝比較麻煩,VS.NET占用空間很大,對(duì)機(jī)器要求也較高。因此,采用VS.NET來(lái)開(kāi)發(fā)要付出比較高昂的使用成本,只有應(yīng)用于大型的系統(tǒng)開(kāi)發(fā)才有較好的性效比。
如果僅僅只是要進(jìn)行中小型的基于ASP.NET的Web應(yīng)用系統(tǒng)開(kāi)發(fā)的話,是否一定要用強(qiáng)大而昂貴的Visual Studio.NET呢?
答案是否定的。最近Microsoft為開(kāi)發(fā)者提供了一款免費(fèi)的小巧易用的開(kāi)發(fā)ASP.NET工具,這就是WebMatrix。

圖1:http://www.asp.net/WebMatrix
圖1是WebMatrix項(xiàng)目的主頁(yè),WebMatrix起源于2000年12月,微軟的工程師完全采用.NET Framework和C#語(yǔ)言開(kāi)發(fā)的一款免費(fèi)的輕量級(jí)ASP.NET快速開(kāi)發(fā)工具,可以方便快捷的完成Web應(yīng)用系統(tǒng)的開(kāi)發(fā)。
WebMatrix最突出的特點(diǎn)就是小巧靈活,整個(gè)安裝文件不過(guò)1.3M左右,安裝后全部大小也不過(guò)2.8M左右,使用它只需基本的.NET Framework支持就可以了,甚至不需要安裝IIS,因?yàn)閃ebMatrix自帶了一個(gè)Microsoft ASP.NET Web Matrix Server,可以發(fā)布、運(yùn)行ASP.NET應(yīng)用程序。
走近WebMatrix
l) 安裝WebMatrix
WebMatrix目前可以支持的操作系統(tǒng)是Windows 2000和Windows XP,可以從http://www.asp.net/webmatrix/免費(fèi)下載。
安裝WebMatrix之前必須先裝好Microsoft .NET Framework 1.1和Internet Expleror 5.5以上版本。安裝過(guò)程是傻瓜式的,只管一路"Next"就行了。安裝好后運(yùn)行可以看到WebMatrix的主界面如圖2所示。其界面布局與VS.NET有點(diǎn)類似,上部是菜單/工具條,左邊是工具箱,提供開(kāi)發(fā)ASP.NET所需的各種控件工具,右邊是工作區(qū)管理欄和屬性欄,分別用于文件/數(shù)據(jù)的管理和控件屬性的配置,中間是主工作區(qū)。

圖2:WebMatrix主界面
2) 第一個(gè)ASP.NET程序Hello WebMatrix!
首先我們來(lái)創(chuàng)建第一個(gè)ASP.NET程序,從File菜單新建一個(gè)文件,可以看到一個(gè)新建文件對(duì)話框(圖3)。

圖3:新建文件對(duì)話框
WebMatrix與VS.NET的一個(gè)很大不同之處是WebMatrix是基于文件來(lái)進(jìn)行開(kāi)發(fā)管理的,而不是象VS.NET那樣基于項(xiàng)目(Project)來(lái)管理。這跟WebMatrix主要面對(duì)的開(kāi)發(fā)項(xiàng)目是中小型項(xiàng)目有關(guān)系,小型項(xiàng)目開(kāi)發(fā)相對(duì)比較簡(jiǎn)單,管理沒(méi)有那么復(fù)雜,WebMatrix自身的定位只是一個(gè)輕量級(jí)的開(kāi)發(fā)工具。
從打開(kāi)的新建文件對(duì)話框中可以看到WebMatrix支持新建多種類型的文件,包括.aspx、.sql、.cs、.xml文件等,可以支持三種典型的.NET應(yīng)用開(kāi)發(fā)語(yǔ)言--C#、J#、Visual Basic.NET。選擇缺省的ASP.NET Page,并輸入要?jiǎng)?chuàng)建的文件名HelloWebMatrix.aspx,選擇C#為編程語(yǔ)言,即可創(chuàng)建一個(gè)空白ASPX頁(yè)面文件。
WebMatrix為每個(gè)ASP.NET文件窗口提供了四種視圖,分別是設(shè)計(jì)視圖(Design),靜態(tài)代碼視圖(HTML),動(dòng)態(tài)代碼視圖(Code)和全局視圖(All),缺省顯示的是設(shè)計(jì)視圖。
從左邊的工具箱中的Web Controls欄中選擇Button控件拖放到頁(yè)面設(shè)計(jì)視圖上,可以看到一個(gè)Button控件顯示在視圖中,在屬性欄中將其Text屬性修改為"問(wèn)候!",可以看到按鈕上的文本隨之變?yōu)?問(wèn)候!",如圖4所示。從界面右下區(qū)域的屬性欄中可以看到該控件的缺省名稱為Button1。

圖4:在視圖區(qū)添加"問(wèn)候!"按鈕
這樣HelloWebMatrix程序的可視化編輯就完成了,然后開(kāi)始編輯代碼。
雙擊視圖區(qū)中的"問(wèn)候!"按鈕,可以看到頁(yè)面視圖區(qū)由Design視圖轉(zhuǎn)到了Code視圖,WebMatrix自動(dòng)為按鈕Button1的Click事件創(chuàng)建了一個(gè)函數(shù)--void Button1_Click(object sender, EventArgs e),函數(shù)體尚無(wú)內(nèi)容。在函數(shù)體中添入一行代碼:
"Button1.Text = "Hello WebMatrix!"
整個(gè)開(kāi)發(fā)過(guò)程就完成了,如圖5所示。

圖5:為按鈕Click事件添加處理代碼
點(diǎn)擊工具條上的運(yùn)行按鈕
運(yùn)行程序,可以看到WebMatrix彈出一個(gè)對(duì)話框,詢問(wèn)是采用IIS還是自帶的Web Matrix Server來(lái)運(yùn)行程序,如果機(jī)器上沒(méi)有安裝IIS,可以選擇其缺省的Web Matrix Server,在端口號(hào)中輸入一個(gè)本機(jī)空閑的端口號(hào),比如8000,點(diǎn)擊Start按鈕即開(kāi)始運(yùn)行,如圖6所示。

圖6:選擇ASP.NET應(yīng)用程序的運(yùn)行服務(wù)器
運(yùn)行過(guò)程中首先啟動(dòng)了Web Matrix Server(可以看到Windows系統(tǒng)托盤(pán)區(qū)出現(xiàn)了一個(gè)
圖標(biāo)),然后從彈出瀏覽器窗口中可以看到運(yùn)行結(jié)果--頁(yè)面上出現(xiàn)一個(gè)"問(wèn)候"按鈕,點(diǎn)擊該按鈕后按鈕上的文本變?yōu)?Hello WebMatrix!",如圖7所示。

圖7:HelloWebMatrix程序運(yùn)行效果
開(kāi)發(fā)數(shù)據(jù)庫(kù)訪問(wèn)程序
動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)中最常見(jiàn)的恐怕就是開(kāi)發(fā)數(shù)據(jù)庫(kù)訪問(wèn)程序。WebMatrix為開(kāi)發(fā)ASP.NET數(shù)據(jù)庫(kù)訪問(wèn)程序提供了很好的支持。觀察一下WebMatrix主界面右上區(qū)域的工作區(qū)管理欄(Workspace),會(huì)發(fā)現(xiàn)在Workspace標(biāo)簽頁(yè)的旁邊還有一個(gè)Data標(biāo)簽頁(yè),這里還提供了一個(gè)數(shù)據(jù)欄(Data)
,點(diǎn)擊Data標(biāo)簽頁(yè)就進(jìn)入了數(shù)據(jù)窗口(Data),如圖8所示。

圖8:數(shù)據(jù)窗口
開(kāi)發(fā)數(shù)據(jù)庫(kù)訪問(wèn)程序首先要建立數(shù)據(jù)庫(kù)連接,點(diǎn)擊數(shù)據(jù)窗口中的添加數(shù)據(jù)庫(kù)連接按鈕
,可以看到添加新數(shù)據(jù)庫(kù)連接項(xiàng)目窗口,如圖9所示。

圖9:添加數(shù)據(jù)庫(kù)連接
WebMatrix可以支持Access數(shù)據(jù)庫(kù),也可以支持SQL Server/MSDE數(shù)據(jù)庫(kù)/桌面引擎,如果是后者的話,可以得到更好的支持,在這里為簡(jiǎn)便起見(jiàn),可以選擇Access Database,點(diǎn)擊OK,從彈出的對(duì)話框中選擇一個(gè)Access數(shù)據(jù)庫(kù),比如Access自帶的Sample數(shù)據(jù)庫(kù):家庭成員地址數(shù)據(jù)庫(kù)文件ADDRBOOK.MDB,點(diǎn)擊OK后可以看到WebMatrix已經(jīng)在數(shù)據(jù)窗口中建好了一個(gè)數(shù)據(jù)庫(kù)連接,從中可以看到數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,如圖10所示。

圖10:一個(gè)建立好的數(shù)據(jù)連接
建好了數(shù)據(jù)庫(kù)連接后,剩下來(lái)的事情就簡(jiǎn)單了,新建一個(gè)ASP.NET程序文件DataBaseAccess.aspx,然后在數(shù)據(jù)窗口中選擇一個(gè)數(shù)據(jù)表(比如"家庭成員"表)拖放到頁(yè)面設(shè)計(jì)視圖上,可以看到頁(yè)面上自動(dòng)建立了一個(gè)MxDataGrid控件和一個(gè)AccessDataSourceControl控件,并自動(dòng)完成了數(shù)據(jù)集的關(guān)聯(lián),如圖11所示。

圖11:拖放一個(gè)數(shù)據(jù)表到頁(yè)面設(shè)計(jì)視圖區(qū)后的效果
此時(shí)已經(jīng)完成了一個(gè)具有基本的數(shù)據(jù)顯示功能的數(shù)據(jù)庫(kù)訪問(wèn)程序的開(kāi)發(fā)。點(diǎn)擊運(yùn)行按鈕運(yùn)行程序,可以看到頁(yè)面的顯示效果--頁(yè)面上顯示出一張有關(guān)家庭成員信息的數(shù)據(jù)表,可以看到這個(gè)數(shù)據(jù)表還進(jìn)行了自動(dòng)分頁(yè)顯示處理,在表格的最后一行是數(shù)據(jù)分頁(yè)顯示的頁(yè)碼鏈接,用鼠標(biāo)點(diǎn)擊表格的表頭各列,表中數(shù)據(jù)可以自動(dòng)按照該列排序顯示,這樣的數(shù)據(jù)表已經(jīng)可以滿足一般的頁(yè)面數(shù)據(jù)顯示需要,而此時(shí)你甚至還沒(méi)有編寫(xiě)一行代碼。

圖12:DataBaseAccess程序運(yùn)行效果
作為一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)程序,僅僅有數(shù)據(jù)顯示功能當(dāng)然是不夠的,還需要加上一些基本的增、刪、改等交互功能,下面我們?yōu)镈ataBaseAccess程序加入數(shù)據(jù)查詢功能。
回到頁(yè)面設(shè)計(jì)視圖,從工具箱中將WebControls欄中的TextBox和Button拖放到頁(yè)面設(shè)計(jì)視圖上,將Button的"Text"屬性設(shè)為"查詢",再將一個(gè)DataGrid控件拖放到下一行,如圖13所示。可以看到這幾個(gè)控件的名字被缺省設(shè)定為T(mén)extBox1、DataGrid1、Button1。

圖13:添加查詢文本框和按鈕
此時(shí)程序的頁(yè)面可視化設(shè)計(jì)就完成了,接下來(lái)實(shí)現(xiàn)一個(gè)按照用戶在文本框中輸入的成員姓氏查詢成員信息的功能(刪除、修改功能可以以類似方式實(shí)現(xiàn))。
在頁(yè)面視圖區(qū)中點(diǎn)擊底部的Code標(biāo)簽頁(yè)
,頁(yè)面視圖區(qū)轉(zhuǎn)到了Code視圖,可以看到WebMatrix界面左邊的工具箱中出現(xiàn)了代碼向?qū)В–ode Wizard)一欄,如圖14所示。

圖14:代碼向?qū)?br>
可以看到"代碼向?qū)?提供了幾種基本的數(shù)據(jù)操作(比如SELECT、INSERT、DELETE、UPDATE等)代碼向?qū)Вp擊其中的"SELECT Data Method",可以看到屏幕彈出一個(gè)查詢代碼添加向?qū)?duì)話框,如圖15。

圖15:查詢代碼添加向?qū)?duì)話框
依照該向?qū)ы樞虿僮鳎?br>
1) 選擇要進(jìn)行查詢操作的數(shù)據(jù)庫(kù)(ADDRBOOK.MDB),如圖15;
2) 選擇要在查詢結(jié)果中顯示的數(shù)據(jù)項(xiàng)(成員編號(hào)、名字、姓氏、角色等),如圖16;

圖16:選擇要在查詢結(jié)果中顯示的數(shù)據(jù)項(xiàng)
3) 點(diǎn)擊WHERE按鈕,選擇要查詢的數(shù)據(jù)項(xiàng)和查詢條件(姓氏),如圖17;

圖17:選擇要查詢的數(shù)據(jù)項(xiàng)和查詢條件
4) 完成設(shè)置后點(diǎn)擊Next按鈕進(jìn)入查詢測(cè)試對(duì)話框,點(diǎn)擊Test Query按鈕進(jìn)行查詢測(cè)試,輸入編號(hào)"趙",可以看到姓趙的成員信息被顯示出來(lái),這說(shuō)明測(cè)試成功,如圖18;

圖18:測(cè)試查詢結(jié)果
5) 最后設(shè)置生成的查詢方法的名稱(缺省為MyQueryMethod)和返回類型(缺省為DataSet),如圖19;

圖19:設(shè)置生成的查詢方法名稱和返回類型
6) 完成設(shè)置后回到Code視圖,可以看到WebMatrix自動(dòng)生成的MyQueryMethod方法源代碼,如圖20。

圖20:生成的查詢方法源代碼
接下來(lái)是最后一步,把查詢按鈕的點(diǎn)擊事件與查詢方法關(guān)聯(lián)起來(lái)。
點(diǎn)擊頁(yè)面視圖區(qū)底部的Design標(biāo)簽頁(yè)
回到Design視圖,雙擊前面添加到頁(yè)面上的"查詢"按鈕,可以看到頁(yè)面視圖區(qū)由Design視圖轉(zhuǎn)到了Code視圖,WebMatrix自動(dòng)為"查詢"按鈕的Click事件創(chuàng)建了一個(gè)函數(shù)--void Button1_Click(object sender, EventArgs e),函數(shù)體尚無(wú)內(nèi)容。在函數(shù)體中添入兩行代碼:
DataGrid1.DataSource = MyQueryMethod( TextBox1.Text ); DataGrid1.DataBind(); |
整個(gè)開(kāi)發(fā)過(guò)程就完成了,如圖21所示。

圖21:為查詢按鈕的點(diǎn)擊事件添加關(guān)聯(lián)代碼
點(diǎn)擊工具條上的運(yùn)行按鈕
運(yùn)行程序,可以看到運(yùn)行效果,頁(yè)面出現(xiàn)了文本框和查詢按鈕,在文本框中輸入"趙",點(diǎn)擊"查詢"按鈕后,數(shù)據(jù)表中所有姓"趙"的成員的信息被查出并顯示在了頁(yè)面上,如圖22。

圖22:程序按姓氏進(jìn)行條件查詢的運(yùn)行效果
如果覺(jué)得頁(yè)面中DataGrid的顯示效果難看的話,可以很方便進(jìn)行調(diào)整修飾。
回到WebMatrix中的程序頁(yè)面設(shè)計(jì)視圖窗口,點(diǎn)擊頁(yè)面上的控件DataGrid1,可以看到WebMatrix右下區(qū)域的屬性設(shè)置區(qū)中出現(xiàn)了對(duì)DataGrid的各種屬性設(shè)置項(xiàng),最簡(jiǎn)便的修飾外觀的方法是點(diǎn)擊該區(qū)域下部的"Auto Format…"鏈接,從彈出的自動(dòng)格式設(shè)置對(duì)話框中選擇一種喜歡的外觀樣式就可以了,如圖23所示。

圖23:DataGrid的外觀設(shè)置
再次運(yùn)行,可以看到界面顯示效果已經(jīng)自動(dòng)進(jìn)行了修飾,如圖24所示。

圖24:加入修飾效果后的數(shù)據(jù)查詢程序頁(yè)面運(yùn)行效果
結(jié)束語(yǔ)
至此,相信你已經(jīng)領(lǐng)會(huì)到了WebMatrix的強(qiáng)大功能了,回過(guò)頭來(lái)想一想,真有點(diǎn)不敢相信這個(gè)東西居然只有2.8M。
WebMatrix在ASP.NET程序代碼處理上與VS.NET的不同之處在于WebMatrix將程序的邏輯處理代碼與頁(yè)面靜態(tài)代碼放在一個(gè)文件中,而不像VS.NET那樣做到了數(shù)據(jù)與顯示的分離。因此,在程序員與網(wǎng)頁(yè)美工的配合上會(huì)麻煩一點(diǎn),但對(duì)于開(kāi)發(fā)中小型系統(tǒng)來(lái)說(shuō),這并不是很大問(wèn)題。
總而言之,WebMatrix是一款小巧靈活、功能強(qiáng)大的基于Web的ASP.NET應(yīng)用系統(tǒng)開(kāi)發(fā)工具,雖然相對(duì)VS.NET來(lái)說(shuō)它還是一個(gè)非常輕量級(jí)的開(kāi)發(fā)工具,但其自身相當(dāng)有特點(diǎn),很多功能并不遜于VS.NET,對(duì)于中小型的系統(tǒng)開(kāi)發(fā)來(lái)說(shuō)它是一個(gè)不錯(cuò)的選擇,而且最重要的是--它是免費(fèi)的。