如果曾經使用Java開發過Web應用程序,你一定會對Java applets比較熟悉,這是一種基本上在浏覽器中運行的小型程序。當浏覽器加載包含有Java applets標志的HTML代碼時,Java applets就會執行,網頁中的Windows Forms控件的運行方式與Java applets相似。我們可以使用由Windows Forms技術提供的豐富的類開發Windows Forms控件,然後在網頁中部署這些控件,當浏覽器加載這些網頁時,就會執行包含在Windows Forms控件中的代碼。
.NET的偉大之處之一是它提供的與IE的無縫集成能力。例如,我們甚至能夠在用戶不知道的情況下從IE中激活一個Windows Forms控件。盡管利用了由.NET CLR提供的Code Access Security的所有功能,但這是在無需進行注冊的情況下完成的。
當開發Windows Forms控件時,我們就通過繼承的方式擁有了Windows Forms類所提供的所有功能。例如,我們可以使用Windows Forms控件驗證技術對用戶輸入的數據進行廣泛的驗證,同樣地,我們可以從窗體控件中調用遠程Web服務。通過使用所有這些技術,我們就能夠使用.NET平台開發豐富、功能強大的應用程序。
實現
在這一部分,我們將學習如何創建簡單的Windows Forms控件並將它托管在IE中。下面是激活IE中Windows Forms控件的5個步驟:
·創建Windows Forms控件。
·創建包含標識Windows Forms控件的對象標志的HTML文檔。
·配置正確激活控件所需要的虛擬目錄。
·配置代碼訪問權限。
·運行該控件。
下面我們就來詳細地學習上面的每一個步驟。
創建Windows Forms控件
在這一步驟中,我們將創建一個簡單的Windows Forms控件,它向用戶顯示“Hello World”信息。如政略所示,我們將首先創建一個名為HelloWorldControl的新Visual C# Windows Control Library項目。
一旦創建項目後,我們將把缺省的用戶控件更名為HelloWorldCtl。我們將在用戶控件上添加一個名為lblMessage的標簽控件和一個名為btnClick的按鈕。當用戶點擊點擊按鈕時,程序就會執行下面的代碼,向用戶顯示一個簡單的信息:
private void btnClick_Click(object sender, System.EventArgs e) { lblDisplayMessage.Text = "Hello World"; }
既然已經創建了控件,下面我們來編譯該項目,並創建可執行代碼。
創建HTML網頁
在這一步驟中,我們將創建一個HTML文檔,並在其中插入用來激活Windows Forms控件的對象標志。HTML網頁如下:
<html> <body> <p>Hello World Control<br> <br></body> <object id="HelloWorldControl1"classid="http:HelloWorldControl.dll#HelloWorldControl.HelloWorldCtl" height="500" width="500" VIEWASTEXT> </object> <br><br> </html>
在對象標志的classid屬性中,我們將路徑指定為控件庫組合體和控件的全名,控件的全名包括名字空間和控件類名字。從上面的代碼中可以看到,組合體和控件全名之間用#號隔開,這二個參數構成了識別該控件的唯一控件標識符。由於是唯一地由名字HelloWorldControl1標識的,我們還可以針對該控件編寫客戶端腳本代碼。
配置虛擬目錄
創建HTML代碼後,我們就可以創建一個名為HelloWorldControlHost的新虛擬目錄,並在其中添加控件(HelloWorldControl.dll)和HTML文檔(HelloWorld.htm)。除了配置虛擬目錄外,將虛擬目錄的執行權限設置為Scripts也是非常重要的。如果將其執行權限設置為Scripts & Executables,控件就不會被正確地激活。通過打開虛擬目錄的Properties窗口,我們可以驗證虛擬目錄的權限。
配置代碼訪問權限
如果控件在企業內部網上,它公正確地執行,但如果要運行來自互聯網網站上的控件,就需要對IE進行配置或修改安全策略,使它能夠運行。通過將托管網頁看成是受信任區段的一部分,就能夠做到這一點。為了將你的站點設置為受信任區段的一部分,我們可以在IE中通過選擇“工具”->“選項”->“安全”->“受信任的站點”,然後將你的站點添加到列表中,再點擊“OK”按鈕。這樣下次再浏覽到該網頁時,控件就會得到正確的執行,因為已經設置了互聯網許可。
運行控件
要運行控件,只要在浏覽器中浏覽托管該控件的HTML網頁即可。在顯示的HTML網頁中,如果點擊“Click Here”命令按鈕,控件就會如下圖所示顯示“Hello World”的消息。
在這個例子中,我們主要演習了如何創建簡單的Windows Forms控件,並在IE中托管它。