使用者控制項和自訂控制項的比較及在項目中的應用

來源:互聯網
上載者:User
比較|控制項|項目 使用者控制項和自訂控制項的比較及在項目中的應用

摘 要

本文檔描述了伺服器控制項的基本概念,以及使用者控制項和自訂控制項在部署、建立、內容和布局、設計期行為、效能幾個方面的比較,然後給出一個在項目開發中伺服器控制項使用的建議,最後給出一個使用者控制項的建立和調用的例子。 關 鍵 詞 Server Control 伺服器控制項 User Control 使用者控制項,ASP.NET伺服器控制項的一種(一般尾碼名為.ASCX檔案) Custom Control 自訂控制項,ASP.NET伺服器空間的一種(一般尾碼名為.DLL檔案) Deployment 部署,程式的分發 Design Attribute 設計期屬性 RAD 快速應用程式開發 修 改 履 曆 版本號碼版本完成日期作者修改內容描述修改處涉及章節



1. 知識背景

1.1伺服器控制項簡介 伺服器控制項是ASP.NET頁面中用來定義WEB應用程式使用者介面的組件。伺服器控制項是Web Forms 編程模式的基本元素。他們構成了一個新的,基於組件的,直觀的表單程式的基礎,可以簡化Web使用者介面的開發。這類似與 Microsoft Visual Basic/Borland Delphi等傳統RAD開發工具用來簡化Windows Forms編程的方法。從更高的層次來說,伺服器控制項提供了Web應用程式和表示技術隱含的抽象概念 1.2伺服器控制項的特徵和功能

1:伺服器控制項隱藏了技術中潛在的不一致性和複雜性,給網頁開發人員建立了一個直觀且簡單的編程模式

2:伺服器控制項隱藏了各種瀏覽器與查看裝置之間的不同,包括目標Web應用程式可能需要的不同版本的瀏覽器。瀏覽器控制項提供了適於目標瀏覽器內容顯示的能力 。

3:伺服器控制項起到實際組件的作用,提供在組件與其他類應用合作中可能得到的相同好處。

4:伺服器控制項通過回傳(PostBack)和往返(Round-Trip)的方式管理狀態

5:伺服器控制項包含了處理相關Web請求的回傳資料及網頁開發人員處理其伺服器端代碼中使用者輸入和使用者動作的邏輯模型。

6:伺服器控制項提供資料繫結模型。

7:伺服器控制項為開發人員提供多種機制定製自己的頁面產生(Rending).

8:伺服器控制項在機器層級(通過 Machine.config檔案)或者在Web應用程式層級上(通過Web.config檔案)是可配置的。

9:在Visual Sturdio.Net這樣的可視化設計期環境中,伺服器控制項提供了一種快速應用開發(Rapid Application Development,RAD)環境

2. 為什麼編寫自訂伺服器控制項

雖然標準ASP.NET伺服器控制項能解決最常執行的 App程式方案,當它不詳盡。實際上,有很多方案不能直接用這些控制項解決。例如,標準 ASP.NET伺服器控制項不能解決影像地圖,製圖功能等。以下是程式開發伺服器控制項的幾個原因:

1:以多個Web應用程式中可複用的和直觀的抽象概念形式封裝應用程

序邏輯。

2:建立商業的組件類庫,類似與Visual Basic中的Active控制項和Delphi

中的VCL控制項。

3:在大型工作團隊中為分工提供一個明確的機制。例如在工作團隊

中的開發人員可以通過設計和實現應用程式使用者介面的開發工具把控制項

組合在一起。

3. 使用者控制項和自訂控制項的異同伺服器控制項分為使用者控制項模型和自訂控制項,一般而言,使用者控制項模型適合建立內部,應用程式特定的控制項,而自訂控制項模型更適合建立通用的和可再分發的控制項,

下面從6個方面來說明他們的異同。

3.1部署當在兩個控制項模型之間進行選擇的時候,部署是最重要的考慮因素,自訂控制項模型採用大多數應用程式可以使用的配件形式(.DLL形式),為建立可再分發的組件而設計。使用者控制項模型是為單個應用程式的情況設計的。使用者控制項必須以原始碼形式部署(.ASCX檔案),這些需求有增加維護成本的副作用。

3.2建立建立自訂控制項的技術與建立使用者控制項的技術是不相同的,自訂控制項是用.NET程式設計語言通過編寫一個從 System.Web.UI.Control類中直接或間接派生的託管類而建立。這裡沒有對建立自訂控制項的提供設計器支援。但是使用者控制項類間接地從System.Web.UI.Control派生而來,使用者控制項以.ASCX檔案的形式聲明性地建立,這類似於設計和開發ASP.NET頁面的方式(易於設計和調試)。

3.3內容和布局由於建立機制的不同,使用者控制項和自訂控制項提供不同的內容和布局支援自訂控制項非常適用於通過編程方式產生的布局中所表現的動態內容。例如一個具有動態行的資料繫結控制項,一個動態節點的控制項樹。使用者控制項的布局在.ASCX檔案建立時聲明,所以當需要固定式配置的相對靜態內容時,使用者控制項是最好的選擇.

3.4設計期行為目前,Visual Studio .Net為自訂控制項和使用者控制項提供了相當不同的設計期能力。Visual Studio .Net為自訂控制項提供很大程度的設計期支援功能,比如可以支援設計時屬性,方法。Visual Studio .Net對使用者控制項只擁有很少的設計期支援。使用者控制項並不在屬性視窗中顯示內容和事件,也不能放到工具箱中。

3.5效能雖然自訂控制項和使用者控制項遵循著不同的建立模型並且有不同的特性,但這兩個控制項都是從相同的基類(System.Web.UI.Control)間接地派生的,使用者控制項在實現時聲明性,在頁面中第一次使用它的時候,使用者控制項作為普通的伺服器控制項被解析並編譯進配件中。此後使用者控制項的行為就象任何其它的編譯的(或者自訂)控制項一樣,所以效能上差別不是很大,主要從其他方面來考慮怎麼選擇這兩種控制項。

4. 伺服器控制項開發情況的建議服 務 器 控 件 開 發 情 況 的 建 議情 況建議





5 使用者控制項的開發下面用一個例子來簡述一個使用者控制項的開發過程.(通過把已存在的ASP.NET的部分頁面轉換成使用者控制項模型).

Query_UC_Common.ascx源檔案

頁面到自訂控制項需要修改的部分

註:頁面到自訂控制項需要修改的部分

1:刪除標記<html><bodry><head>

2: 把<%@ Page Language="c#" ClassName="RequiredTextField" %>該為<%@ Control Language="c#" ClassName="RequiredTextField" %>

3: 把檔案存為.ASCX檔案即可




注意:在頁面中調用使用者控制項的說明

1:為使用者控制項的聲明語句,

2:TagPrefix:TagName結合產生一個標籤,伺服器解析時把它與指定的使用者控制項關聯在一起,這個結合對登入的每個使用者控制項必須是唯一的。 3: Src="Query_UC_Common.ascx”為使用者控制項在位置,可以是相對路徑也可以是絕對路徑,但是一定是該頁面使用者可以訪問到的由於這個通用查詢顯示和列印的使用者控制項涉及的知識點太多,我會在以後專門寫個分析報告,跟大家一起來討論!

介面截圖如下:



查詢設定介面過濾顯示欄位





6 參考資料

1:MSDN ONLINE

2:Vs.Net 2002 MSDN

3:Developing ASP.NET Server Controls



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。