直播中
Microsoft .NET平臺(tái)所包含的內(nèi)容非常廣泛。本文將去粗存精,對(duì)VB.NET作一個(gè)全景式的介紹,看看它到底是什么,有些什么用處,以及如何使用。特別地,本文將分析VB.NET集成開發(fā)環(huán)境的變化,面向?qū)ο蠊δ?,底層體系的變化,眾多的語法改進(jìn),對(duì)應(yīng)用部署和封裝支持方面的增強(qiáng)等。
一、集成開發(fā)環(huán)境
第一次啟動(dòng)VB.NET時(shí),你首先注意到的不會(huì)是Visual Basic優(yōu)秀的面向?qū)ο笾С?,而?yīng)該是它的IDE(集成開發(fā)環(huán)境,Integrated Development Environment)。VS.NET的IDE給人以非常熟悉的感覺,因?yàn)樵O(shè)計(jì)這個(gè)IDE的工作組以前就設(shè)計(jì)過VB的IDE,VS.NET IDE的改進(jìn)建立在設(shè)計(jì)VB IDE的經(jīng)驗(yàn)之上。
圖A:點(diǎn)擊放大
對(duì)于IDE的改進(jìn)并不停留在表面上。所有.NET語言都使用相同的IDE,IDE內(nèi)提供的新工具非常全面和強(qiáng)大。例如,所有的設(shè)計(jì)窗口都可以自動(dòng)隱藏(就象Windows任務(wù)條一樣),從而顯著地減少了混亂的感覺。
啟動(dòng)VB.NET時(shí),“VS Home Page”是我們看到的第一個(gè)界面。Home Page中顯示了最近修改的工程,并提供了打開現(xiàn)有工程、創(chuàng)建新工程的選項(xiàng)(如圖A所示)。所有這些選項(xiàng)都以HTML鏈接形式顯示。注意這并不是什么模擬出來的效果,Home Page的布局事實(shí)上就是由DHTML編寫而成。由于這個(gè)原因,用戶可以定制Home Page顯示其他對(duì)自己有用的選項(xiàng)、信息以及HTML鏈接。
New Project對(duì)話框中提供了用任意一種語言創(chuàng)建工程的選項(xiàng),如圖B所示,注意圖中左邊樹形列表中列出了好幾種語言。如果系統(tǒng)中已經(jīng)安裝了支持VS.NET的第三方語言,Microsoft或許還會(huì)在這個(gè)列表中包含這些語言。
圖B:點(diǎn)擊放大
圖B中,樹形列表中的VB節(jié)點(diǎn)處于打開狀態(tài),右邊的一些圖標(biāo)顯示了創(chuàng)建新工程的幾個(gè)選項(xiàng)。注意這里出現(xiàn)了一些新的選項(xiàng),如Web Service、Web Control Library、Class Library。最后一個(gè)選項(xiàng)顯示出:在VB.NET中,多個(gè)相關(guān)的類可以合并放入單個(gè)模塊文件之中,而不是象VB6那樣把每個(gè)類單獨(dú)放入一個(gè)文件。
激活WinForms工程時(shí)的IDE與傳統(tǒng)VB IDE最為相似。圖C顯示了兩者最主要的區(qū)別。
圖C:點(diǎn)擊放大
▲ 隱藏工具框。默認(rèn)情況下,工具框大多數(shù)時(shí)候都是隱藏的,點(diǎn)擊它的標(biāo)題可以把它“拉出來”(圖D顯示了一個(gè)已經(jīng)擴(kuò)展的工具框。如有必要,可以設(shè)置工具框使其總是顯示在屏幕上)。對(duì)于VB開發(fā)者來說,這里最大的變化在于工具框中的控件現(xiàn)在改為垂直排列,每個(gè)圖標(biāo)都加上了文字說明,而不象VB6那樣只有一個(gè)圖標(biāo)。
圖D:點(diǎn)擊放大
▲ 卡式子窗口(Tabbed Child Window)。VS.NET利用位于屏幕上方的卡式子窗口布局取代了原來的MDI子窗口布局??òǎ篐ome Page,窗體布局窗口,代碼窗口,幫助屏幕。
▲ 任務(wù)列表(Task List)。Task List是一個(gè)重要的改進(jìn),它幫助開發(fā)者跟蹤所有待完成的任務(wù)。代碼生成器、編譯器會(huì)在Task List中自動(dòng)加上一些內(nèi)容。手工添加任務(wù)項(xiàng)目可以按照如下方式進(jìn)行:找到代碼中需要修改的地方,然后插入一行以“TODO:”開頭的注釋,此后該任務(wù)就會(huì)自動(dòng)出現(xiàn)在任務(wù)列表中。點(diǎn)擊Task List中的某個(gè)任務(wù),代碼編輯器中就會(huì)出現(xiàn)完成該任務(wù)的位置。這種快速定義任務(wù)、返回任務(wù)的機(jī)制將極大地提高開發(fā)效率。
▲ 方案資源管理器(Solution Explore)。它替代了原來的工程資源管理器(Project Explorer),與Visual InterDev中的資源管理器非常相似。和InterDev中的資源管理器一樣,Solution Explorer顯示了工程所用到的各種資源,包括用其他語言編寫的代碼模塊、各種非代碼的資源。其中References是Solution Explorer中一種全新的資源形式,References管理著命名空間,類似于VB6中的組件引用。
▲ 屬性框(Properties)。Properties框與VB6中的屬性框非常相似,但它現(xiàn)在支持更多的布局方式(顯示方式)。
▲ 窗體布局工具條(Form Layout)。在VB6中,在窗體上排列控件的任務(wù)通過一個(gè)名為“Form Editor”的工具條完成。改進(jìn)后的新工具條提供更多的功能,而且在WinForms類型的工程中默認(rèn)打開。
圖E:點(diǎn)擊放大
除了上面六處改進(jìn)之外,VB.NET的代碼編輯器還有一個(gè)重要的新功能:在代碼編輯窗口中,點(diǎn)擊代碼行左邊的加號(hào)或者減號(hào)可以擴(kuò)展或者折疊代碼塊,如圖E所示。這個(gè)功能原本為隱藏可視化設(shè)計(jì)器自動(dòng)生成的代碼而設(shè)計(jì),但它也可以用于隱藏與當(dāng)前任務(wù)無關(guān)的代碼。
Web Forms工程的設(shè)計(jì)環(huán)境也和原來VB6的設(shè)計(jì)環(huán)境略有不同,如圖F所示。在表單布局窗口的下面只顯示了兩個(gè)卡,分別為Design和HTML。這兩個(gè)卡的功能和Visual InterDev中同一位置的卡相似。Design窗口用來編輯窗體的外觀,HTML窗口用于查看DHTML代碼。
圖F:點(diǎn)擊放大
VB.NET另外一個(gè)引人注目的變化是它的窗體引擎。Microsoft放棄了原來的窗體引擎,現(xiàn)在它給我們提供的是Windows Forms窗體引擎。所有基于CLR的語言都使用Windows Forms引擎,與VB 6的窗體引擎相比,Windows Forms有著許多突出的優(yōu)點(diǎn)。例如,Windows Forms支持創(chuàng)建那些自動(dòng)改變組件大小的窗體,允許把控件錨定到窗體的特定位置。也就是說,完成這些特殊任務(wù)時(shí)再也不需要第三方的工具了。Windows Forms還有一些有趣的技術(shù),比如創(chuàng)建透明窗體等。
以前,VB隱藏了窗體構(gòu)造過程中的所有細(xì)節(jié)。我們?cè)贗DE中設(shè)計(jì)窗體,然后把代碼加入到Initialize事件,但對(duì)這兩者之間的處理過程卻無法進(jìn)行任何控制?,F(xiàn)在,窗體成了類,類里面包含了構(gòu)造窗體的全部代碼。大多數(shù)程序員都不會(huì)去看這種描述窗口構(gòu)造細(xì)節(jié)的代碼,如果說有某種操作一定會(huì)破壞應(yīng)用,這個(gè)操作就是搞亂這里的代碼。另一方面,由于這些代碼允許用戶深入控制VB.NET構(gòu)造窗體的幕后細(xì)節(jié),有經(jīng)驗(yàn)的用戶能夠利用這些代碼實(shí)現(xiàn)各種高級(jí)功能。如果你不想看到這些代碼,你可以不看,因?yàn)樾碌拇a編輯器有擴(kuò)展和折疊代碼區(qū)域的功能,描述窗體構(gòu)造過程細(xì)節(jié)的代碼默認(rèn)處于折疊狀態(tài)。代碼編輯器還有其他一些新的實(shí)用功能,比如自動(dòng)縮進(jìn)、內(nèi)建的行號(hào)顯示功能等。