
在今天我主要要介紹的有如下知識(shí)點(diǎn): Visual Studio 2005網(wǎng)站開發(fā)環(huán)境 任務(wù)管理器 配置外部工具 代碼段管理器 發(fā)布網(wǎng)站 之所以要單獨(dú)用一篇文章來(lái)介紹Visual Studio 2005這個(gè)集成開發(fā)環(huán)境,是因?yàn)樵谧銎髽I(yè)培訓(xùn)的時(shí)候,發(fā)現(xiàn)很多程序員僅僅用了一些基本功能,這個(gè)好像也符合軟件界一個(gè)“20%和80%法則”,就是80%的用戶只用到了軟件的20%的功能。確實(shí)有時(shí)候利用基本功能就足以進(jìn)行開發(fā)了,但是有些功能能夠方便我們的開發(fā),有些能提高我們的開發(fā)速度,所以我覺得這些計(jì)較值得跟大家交流一下。 Visual Studio 2005網(wǎng)站開發(fā)環(huán)境  以上就是Visual Studio 2005的界面,大家再熟悉不過(guò)了。和做WinFrom項(xiàng)目有些不同,在Visual Studio 2005里面創(chuàng)建項(xiàng)目有很多選擇。 在Visual Studio 2005可以創(chuàng)建的四種網(wǎng)站類型,分別是本地HTTP、文件系統(tǒng)、遠(yuǎn)程HTTP和FTP。 首先從Visual Studio 2005菜單上依次選擇“文件”-“新建”-“網(wǎng)站”,如下圖:
然后選擇“網(wǎng)站”,出現(xiàn)如下界面:  點(diǎn)擊“瀏覽”,出現(xiàn)如下界面:  下面分別說(shuō)明這幾種網(wǎng)站的特點(diǎn): 文件系統(tǒng)網(wǎng)站:文件系統(tǒng)網(wǎng)站可能是用得比較多的網(wǎng)站類型,可以指定網(wǎng)站文件的存放位置,便于幾種管理。創(chuàng)建文件系統(tǒng)類型網(wǎng)站時(shí)開發(fā)者機(jī)器上不需要安裝IIS,可以用ASP.NET Development Server來(lái)進(jìn)行測(cè)試。不過(guò)ASP.NET Development Server上的網(wǎng)站或者虛擬目錄不能在其它機(jī)器上訪問,它運(yùn)行的時(shí)候隨機(jī)選擇一個(gè)大于1024的端口作為Wen服務(wù)器端口(因?yàn)?024以下的端口已經(jīng)被指定了用途,比如21作為ftp監(jiān)聽端口,80作為HTTP監(jiān)聽端口)。文件系統(tǒng)網(wǎng)站只適合開發(fā)階段,在部署的時(shí)候服務(wù)器上還是需要安裝IIS的。 本地HTTP網(wǎng)站:本地HTTP網(wǎng)站就是利用IIS作為Web容器運(yùn)行。每次創(chuàng)建一個(gè)Web網(wǎng)站時(shí)都會(huì)在IIS默認(rèn)網(wǎng)站主目錄下創(chuàng)建一個(gè)虛擬目錄,IIS默認(rèn)網(wǎng)站的物理路徑是[系統(tǒng)分區(qū)]: /Inetpub/wwwroot。 注意按照本地HTTP網(wǎng)站方式創(chuàng)建的網(wǎng)站的物理路徑會(huì)在系統(tǒng)分區(qū)下,這和用Visual Studio 2002及Visual Studio 2003創(chuàng)建的Web項(xiàng)目一樣,因此使用Visual Studio 2005打開早期版本的項(xiàng)目時(shí)需要將該項(xiàng)目設(shè)置為IIS下的虛擬目錄。 遠(yuǎn)程HTTP網(wǎng)站:遠(yuǎn)程HTTP網(wǎng)站是將Web項(xiàng)目創(chuàng)建在同一局域網(wǎng)內(nèi)的其它主機(jī)的IIS主目錄下,遠(yuǎn)程主機(jī)必須要安裝IIS和Microsoft FrontPage 2002擴(kuò)展。 FTP網(wǎng)站:FTP網(wǎng)站是在遠(yuǎn)程服務(wù)器上創(chuàng)建網(wǎng)站,利用FTP對(duì)文件進(jìn)行管理。 在實(shí)際開發(fā)中使用最多的是文件系統(tǒng)網(wǎng)站和本地HTTP網(wǎng)站,因?yàn)楸阌趫F(tuán)隊(duì)之間利用源代碼管理工具(如VSS和SVN)進(jìn)行協(xié)同開發(fā)。 需要注意的是使用文件系統(tǒng)網(wǎng)站不能使用基于HTTP的身份驗(yàn)證、應(yīng)用程序池和ISAPI篩選器等功能。
在實(shí)際開發(fā)中習(xí)慣建立一個(gè)解決方案,然后將解決方案文件及類庫(kù)項(xiàng)目和Web網(wǎng)站項(xiàng)目放在一個(gè)文件夾下,這樣便于管理和維護(hù)。下面我演示一下創(chuàng)建一個(gè)帶解決方案的Web項(xiàng)目的創(chuàng)建過(guò)程: 首先選擇“文件”-“新建”-“項(xiàng)目”,這時(shí)會(huì)彈出一個(gè)對(duì)話框,如下圖:  在對(duì)話框中選擇“解決方案”,如下圖:  在位置中我們通過(guò)“瀏覽”功能定位到“D:/VS2005”,在解決方案中我們填寫了“SolutionDemo”這個(gè)名字,Visual Studio 2005會(huì)在“D:/VS2005”目錄下創(chuàng)建一個(gè)“SolutionDemo”的文件夾,該文件夾下還有一個(gè)“SolutionDemo.sln”的解決方案文件。 然后在Visual Studio 2005窗口的右側(cè)“解決方案資源管理器”中選中當(dāng)前解決方案,點(diǎn)擊鼠標(biāo)右鍵,在彈出的窗口中選擇“添加”-“新建網(wǎng)站”,如下圖:  這時(shí)會(huì)彈出一個(gè)窗口,如下圖:  在彈出的窗口中需要幾項(xiàng)信息: (1)選擇創(chuàng)建網(wǎng)站的模板,網(wǎng)站模板可能會(huì)根據(jù)開發(fā)者機(jī)器上的插件數(shù)量有關(guān)系。一般我們使用默認(rèn)配置,也就是“ASP.NET網(wǎng)站”。 (2)設(shè)置網(wǎng)站位置。網(wǎng)站位置會(huì)根據(jù)選擇的網(wǎng)站類型不同而不同。在這里使用文件系統(tǒng)網(wǎng)站,然后點(diǎn)擊“瀏覽”,出現(xiàn)如下界面:  定位到“D:/VS2005/SolutionDemo”,然后確定,并在位置一欄中輸入Web網(wǎng)站的名稱,如“Web”,并且注意將語(yǔ)言選定為“Visual C#”,如下圖:  點(diǎn)擊“確定”,網(wǎng)站就建立完成了。下圖就是我們創(chuàng)建完成后的樣子。  在圖中我們看到創(chuàng)建一個(gè)Web網(wǎng)站成功之后,系統(tǒng)會(huì)創(chuàng)建一個(gè)默認(rèn)頁(yè)面和默認(rèn)文件夾。一般網(wǎng)站還有一些其它Visual Studio 2005內(nèi)置的文件夾,不過(guò)需要我們手動(dòng)添加,要添加這些手動(dòng)文件夾的方式如下圖:  我們一般會(huì)用到“Bin”、“App_Code”及“App_Data”文件夾,不過(guò)“App_Data”文件夾默認(rèn)已經(jīng)創(chuàng)建了,我們僅需要手動(dòng)添加“Bin”、“App_Code”這兩個(gè)文件夾就行了。之所以說(shuō)它們內(nèi)置文件夾,是因?yàn)檫@幾個(gè)文件夾有著不同的作用,運(yùn)行的時(shí)候IIS和Visual Studio 2005內(nèi)置ASP.NET Development Server都會(huì)有特殊的保護(hù)(在開發(fā)的時(shí)候,可以看見這些文件夾與我們通過(guò)普通方式添加的文件夾圖標(biāo)不同)。下面對(duì)這幾個(gè)文件夾的作用做一下簡(jiǎn)單介紹: Bin:用于存放我們網(wǎng)站開發(fā)用到的第三方dll類庫(kù)文件(因?yàn)檫\(yùn)行asp.net網(wǎng)站的IIS服務(wù)器所在主機(jī)上肯定會(huì)安裝.net Framework,所以不需要在bin目錄下放微軟的.net運(yùn)行環(huán)境需要的dll文件)。 App_Code:用于存放中間代碼文件,這些中間代碼文件一般就是單獨(dú).cs文件,它本身就是一個(gè)類。當(dāng)我們向Web項(xiàng)目中增加類的時(shí)候,系統(tǒng)就會(huì)提示我們是否保存到App_Code文件夾下面,如下圖:  App_Data:這個(gè)文件夾用于存放數(shù)據(jù)庫(kù)文件,比如用Access作為數(shù)據(jù)庫(kù)的時(shí)候,.mdb文件就可以放到這個(gè)文件夾下。 對(duì)于上面的文件夾,是不能從瀏覽器里直接訪問里,里面的文件也是無(wú)法通過(guò)瀏覽器下載的。 通過(guò)上面的步驟建立的網(wǎng)站,解決方案和網(wǎng)站資源集中存放在D:/VS2005/SolutionDemo文件夾下,便于我們發(fā)布和管理,經(jīng)過(guò)上面的步驟建立的網(wǎng)站的文件結(jié)構(gòu)如下:  這樣將來(lái)移動(dòng)這個(gè)項(xiàng)目時(shí)直接移動(dòng)SolutionDemo這個(gè)文件夾就可以保持整個(gè)網(wǎng)站的所有文件結(jié)構(gòu)。 任務(wù)管理器 任務(wù)管理器是一個(gè)很有用的功能。假如我們開發(fā)的項(xiàng)目很大,在項(xiàng)目中有些代碼沒有完成,為了單元測(cè)試我們可能會(huì)使用一些代碼來(lái)欺騙編譯器以達(dá)到測(cè)試項(xiàng)目中的其它功能模塊的作用,在測(cè)試完之后應(yīng)該即使完成這些代碼,為了將來(lái)能順利找到這些代碼塊,我們可以做一下標(biāo)記,便于將來(lái)查找。甚至我們?cè)跇?gòu)建網(wǎng)站框架的時(shí)候可以做一些備注。 下面的代碼就是一個(gè)例子: /// MyClass是一個(gè)演示類,演示如何添加任務(wù) /// 首發(fā)地址:http://blog.csdn.net/zhoufoxcn // TODO: 在此處添加構(gòu)造函數(shù)邏輯
要想看到這些信息,我們可以通過(guò)如下步驟:“視圖”-“任務(wù)列表”,就會(huì)在Visual Studio 2005的下方看到這些信息,如下圖:  在“任務(wù)列表”中可以看到所有的任務(wù),以及所在的代碼文件名和在該文件中的行數(shù),雙擊就可以快速打開該文件進(jìn)行編輯,非常方便。
配置外部工具 對(duì)于開發(fā)中我們可能會(huì)經(jīng)常用到一些外部工具,比如ILDASM和ILASM等,我們可以配置成Visual Studio 2005的一個(gè)菜單項(xiàng),需要的時(shí)候點(diǎn)擊一下就可以打開,而不必每次都費(fèi)時(shí)費(fèi)力找到該文件所在的位置再雙擊打開。配置過(guò)程如下: 從工具欄上找到“工具”-“配置”,如下圖:  會(huì)彈出一個(gè)新窗口,如下:  點(diǎn)擊“命令”行后后面的按鈕選擇文件路徑,如下圖:  在“命令”里選擇文件的路徑,這里我選擇了ildasm.exe文件(它位于[系統(tǒng)分區(qū)]: /Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin目錄下)。甚至我們還可以設(shè)置文件執(zhí)行時(shí)的參數(shù),上圖就是我設(shè)置的ILDASM的相關(guān)參數(shù)信息。配置好以后就可以每次從工具欄上的“工具”菜單中選擇運(yùn)行了,非常方便。
代碼段管理器 所謂代碼段,就是一些格式比較固定代碼,除了某些細(xì)節(jié)上個(gè)差別之外,大部分格式都是一樣的。比如要為類定義一個(gè)屬性,一般要定義一個(gè)私有變量,然后在添加get或者set方法或者二者同時(shí)具備。在我們的工作工免不了經(jīng)常要做這些枯燥的工作,不過(guò)在Visual Studio 2005中微軟為我們提供了一種便捷操作,以減少這種枯燥的工作帶來(lái)的乏味。 比如我們想給增加一個(gè)屬性,我們敲入pr的時(shí)候,會(huì)出現(xiàn)下圖所示的智能提示:  在“prop”上敲擊回車,然后鍵入tab鍵,會(huì)看到下面的情況:  假如我們想定義個(gè)string類型的屬性,將藍(lán)底白字部分的“int”改為“string”,就會(huì)看到如下效果: (缺圖) 然后再將私有變量“myVar”改成我們期望的名字,如“userName”,當(dāng)移開光標(biāo)時(shí)我們會(huì)發(fā)現(xiàn)屬性中的“myVar”也會(huì)隨之變成“userName”,最后將“MyProperty”改成“UserName”,這樣就完成了一個(gè)屬性的定義了,如下圖: (缺圖) 在Visual Studio 2005已經(jīng)預(yù)定義好很多代碼段了,如讀寫屬性prop、只讀屬性propg、try{}catch{}代碼段try、try{}finally{}代碼段tryf、for循環(huán)代碼段for和foreach代碼段forr等。 如果我們覺得預(yù)定義的代碼段不能滿足我們的要求時(shí),我們可以自定義代碼段,經(jīng)過(guò)設(shè)置之后可以像預(yù)定義的代碼段一樣使用。要自定義代碼段,可以如下操作: 打開[系統(tǒng)分區(qū)]: /Program Files/Microsoft Visual Studio 8/VC#/Snippets/2052/Visual C#文件夾,里面都是預(yù)定義的代碼段。下面演示一下添加如何增加一個(gè)“try{}catch{}finally{}”的代碼段。 首先將“try.snippet”拷貝到桌面,改名為“trycf.snippet”,然后用Visual Studio 2005打開,會(huì)看到如下代碼: <?xml version='1.0' encoding='utf-8'?> <CodeSnippets xmlns='http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet'> <CodeSnippet Format='1.0.0'> <Description>try catch 的代碼段</Description> <Author>Microsoft Corporation</Author> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> <Function>SimpleTypeName(global::System.Exception)</Function> <Code Language='csharp'><![CDATA[try
我們將上面的代碼改為如下形式: <?xml version='1.0' encoding='utf-8'?> <CodeSnippets xmlns='http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet'> <CodeSnippet Format='1.0.0'> <Shortcut>trycf</Shortcut> <Description>try catch finally的代碼段</Description> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> <Function>SimpleTypeName(global::System.Exception)</Function> <Code Language='csharp'><![CDATA[try catch ($expression$ exception)
這里對(duì)幾個(gè)部分做一下簡(jiǎn)單介紹: Shortcut:快捷鍵,將來(lái)在代碼中敲入這部分然后鍵入Tab鍵就能使用這個(gè)代碼段。 Description:代碼段描述。 Author:代碼段的作者。 Code Language='csharp':表示這是C#語(yǔ)言的代碼段。 <![CDATA[]]>:代碼段代碼,用戶使用快捷鍵時(shí)將會(huì)在光標(biāo)處插入這些代碼。 $end$:這是一個(gè)特殊參數(shù),用于指定用戶在代碼段字段中填寫完內(nèi)容并按下 Enter 鍵后光標(biāo)所在的位置。 $selected$:這是一個(gè)特殊參數(shù),只對(duì) SurroundsWith 類型的代碼段有意義。 將上面改造后的“trycf.snippet”放到[系統(tǒng)分區(qū)]: /Program Files/Microsoft Visual Studio 8/VC#/Snippets/2052/Visual C#文件夾下,打開代碼,敲入“trycf”會(huì)看到如下結(jié)果:  選擇“trycf”后再按Tab鍵,得到如下代碼:  發(fā)布網(wǎng)站 和asp和php代碼嵌入到網(wǎng)頁(yè)中不同,如果我們采用了頁(yè)面與代碼分離的模式進(jìn)行Web網(wǎng)站的開發(fā),那么我們就可以在發(fā)布時(shí)對(duì)我們的網(wǎng)站代碼做一定的保密處理,這種處理就是隱藏掉與aspx頁(yè)面相關(guān)的代碼,這種辦法可以限制別人直接查看我們的代碼。 下面以我們剛剛建立的網(wǎng)站為例,在網(wǎng)站上點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)如下菜單:  選擇“發(fā)布網(wǎng)站”后出現(xiàn)如下界面:  選擇合適的位置,然后點(diǎn)“確定”,等窗口下方的狀態(tài)條出現(xiàn)“發(fā)布成功”之后就算是完成發(fā)布了,如下圖:  這時(shí)我們可以到剛才指定的文件夾下查看生成后的網(wǎng)站。如下圖:  需要說(shuō)明的是雖然在開發(fā)狀態(tài)下網(wǎng)站中有App_Code和App_Data及Bin文件夾,在生成網(wǎng)站的時(shí)候網(wǎng)站會(huì)根據(jù)具體情況來(lái)決定是否生成相應(yīng)的文件和文件夾。下圖是我的一個(gè)實(shí)際項(xiàng)目生成之后的網(wǎng)站截圖:  實(shí)際運(yùn)行的時(shí)候只需要將這個(gè)文件夾放到目標(biāo)服務(wù)器上設(shè)置成網(wǎng)站或者虛擬目錄并配置好數(shù)據(jù)庫(kù)即可訪問。 后記:這里僅僅列出了一部分技巧,有機(jī)會(huì)還會(huì)繼續(xù)講,比如單元測(cè)試和性能測(cè)試等等。下一篇將講到Page類,有關(guān)Page類的生命周期。注意,因?yàn)閭€(gè)人空間大小和下載速度受限,所以以后不再提供從本人主機(jī)上的下載地址,可以到www.下載《ASP.NET夜話》的測(cè)試版視頻教程。地址是:http://www./topics/2730883/
|