微軟的.NET架構的出臺,為我們構建分布式應用系統(tǒng)提供了一個強大的工具。相比于傳統(tǒng)的Windows應用程序的 COM 組件,.NET 的組件開發(fā)要簡單、快捷的多。而且組件的部署也不像COM組件那樣需要在注冊表里做標記,.NET 組件只要拷貝到相應的文件夾中就可以了。
下面我們就用.NET程序的集成開發(fā)工具Visual Studio .NET 實際開發(fā)一個Access2000數(shù)據(jù)庫存取組件,并將它重復使用在另外的ASP.NET 應用系統(tǒng)中。
(一)組件的創(chuàng)建
啟動VS.NET,新建 Visual C# 項目,模板選“類庫”。如圖一所示。
這樣就在我們機器的“我的文檔”\Visual Studio Projects 下生成一個新的文件夾ClassLibrary1。并且自動生成Class1.cs 文件:
|
因為我們即將生成的組件與數(shù)據(jù)存取有關,所以必須添加數(shù)據(jù)庫引用語句:
|
另外我們可以把命名空間換成我們自己的命名myDB,類名也換成myDbLink。然后我們還定義了三個屬性,使我們的代碼通用性更強:
|
getData()方法中的代碼的意義為:首先聲明三個引用類型的變量oConn(數(shù)據(jù)庫連接對象),oAdp(數(shù)據(jù)適配器對象),oDtSt(數(shù)據(jù)集對象)。然后實例化數(shù)據(jù)庫連接對象并打開數(shù)據(jù)庫連接oConn;再通過SQL語句生成數(shù)據(jù)適配器對象oAdp;再通過oAdp的Fill方法把獲得數(shù)據(jù)填充到數(shù)據(jù)集對象oDtSt的table表(自動產(chǎn)生)中。最后返回table表的默認視圖DefaultView。
為了生成我們期望的名字為myClass.dll的組件文件,必須點擊菜單“項目”\“ClassLibrary1屬性”,在彈出的屬性頁對話框中,把“程序集名稱”的值修改為“myClass”,確定后關閉屬性頁對話框窗口。然后執(zhí)行“運行”菜單下的“生成ClassLibrary1”命令。這時就在“我的文檔”\Visual Studio Projects\bin\Debug 下生成一個myClass.dll文件,就是我們即將使用的數(shù)據(jù)庫存取組件。
(二)組件的部署
為了測試我們生成的組件,可以再另外建立一個“ASP.NET Web應用程序”項目,假設項目名為WebApplication2,這樣會在IIS里生成一個WebApplication2虛擬路徑,同時在默認網(wǎng)站下生成一個WebApplication2文件夾。我們即將測試的組件就要拷貝到WebApplication2下的bin文件夾下。這樣組件就部署完畢了。
(三)ASP.NET的測試代碼
在生成的WebApplication2項目的WebForm上拖放一個DataGrid組件,在工程中添加對myClass.dll組件的引用,再在文件頭部引用我們的命名空間:
|
由于把從數(shù)據(jù)庫中取出來的表視圖作為DataGrid1的數(shù)據(jù)源與DataGrid1綁定,所以運行WebApplication2項目后,DataGrid1中就顯示出表myTab中的數(shù)據(jù)。