.NET資料提供者的構成 .NET資料提供者的功能分為兩類:非串連的資料支援、串連的資料支援。 下表列出了.NET資料提供者的主要組件: 上表中組件的實現是基於一組介面定義的方法和屬性,見下表: 提供者工廠模型 從2.0版本開始,ADO.NET提供者的架構得到了改進,引入了工廠類。每種.NET資料提供者都包含繼承於基類DbProviderFactory的工廠類。工廠類代碼各自指定提供者的公用入口,下表列出了工廠類的主要方法: 如果擷取某種提供者的工廠呢?我們可使用一個新引入的類D
ASP.NET並沒有包含對擴充程式的具體實現。然而,它定義了供所有自訂擴充程式和ACT中所有擴充程式使用的基類ExtenderControl。我們可通過該類建立自己的擴充程式。但並不建議這樣做,因為利用ACT庫中的擴充程式更簡便易行。 下面的代碼給出了“焦點擴充程式”控制項的原始碼,這個簡單的擴充程式能為目標控制項添加高亮行為,以便在該控制項獲得焦點時更改其外觀:using AjaxControlToolkit;...namespace Core35{
從本質上講,Linq-to-SQL能夠將類與方法映射到資料來源對象上。LINQ概述 大多數應用程式以某種資料倉儲為中心。多年來,架構師在設計應用程式的過程中,一直通過對象對問題域進行建模。這些對象包括用於串連到資料訪問層的串連,來艱難地與資料庫進行互動,並通過物件模型建立關係模式。但這種方式對於簡單的應用程式顯得有些繁瑣。 LINQ的出現就是為瞭解決這些簡單應用程式的需求,為其提供一套功能強大且易用的工具,能在更高的概念層上對資料存放區進行操作。 .NET
程式碼片段: <input runat="server" id="lastName" type="text" value="Test" /> 經過ASP.NET運行庫處理後,上述聲明產生以下HTML代碼: <input name="myName" id="myName" type="text" value="Text" /> 注意:伺服器端ID屬性被展開為兩個HTML
頁面的編譯 特定.aspx資源的程式集的產生分為兩個步驟進行。首先,該資源檔的原始碼會被解析,根據得到的資訊,從Page類(或Page的衍生類別)派生出相應的類。然後,動態產生的類會被編譯為程式集,該程式集之後會被緩衝到ASP.Net專用的臨時目錄下。 只要連結的aspx源檔案沒有被更改,且整個應用程式沒有重啟,已編譯的頁面就一直存在。對已連結aspx檔案的任何更改,將使相關程式集變為無效,並在該頁面下一次被請求時,強制HTTP運行庫建立新的程式集。 編輯web.config和global
工作階段狀態處理任務可用三個步驟來概括:分配會話ID,從提供者擷取資料,將資料填充到頁面的上下文中。 工作階段狀態模組負責管理所有這些任務的執行。為此,它還需要利用兩個組件:會話ID產生器和工作階段狀態提供者。在ASP.NET
一旦實體物件被載入到記憶體中,插入新訂單的工作就非常簡單,無非是建立Order類的執行個體並將其添加到客戶對象的Orders集合中。Linq-to-SQL會跟蹤資料內容中的更改,並在調用資料內容對象的SubmitChanges時將那些更改傳回資料庫。下例顯示了一個更改資料的過程:string id = "ALFKI";Customer c = dataContext.Customers.SingleOrDefault(c => c.CustomerID == id);if(c !=
資料庫管理系統往往都提供二進位大對象的支援。當然,二進位對象欄位不一定非要儲存映像,它還可以儲存媒體檔案或長文字檔或其他二進位內容。 下面以從資料庫載入員工相片為例,展示一個HTTP處理常式的例子:public class DbImageHandler : IHttpHandler{public void ProcessRequest(HttpContext ctx) {//從查詢字串中擷取員工ID int id = -1;bool reaust =
對於工作階段狀態值的儲存,HttpSessionState類提供了一個基於字典的模型。只有同一會話上下文中的請求(即由同一個使用者發出的多個頁面請求)才可以訪問工作階段狀態。工作階段狀態的儲存和發布方式有很多,其中包括在Web Farm和Web Garden環境下的。但在預設情況下,工作階段狀態由ASP.NET背景工作執行緒持有。 工作階段狀態的可擴充模型提供了兩種方案: 1.
綜合各方面考慮,有3種工作階段狀態管理的自訂方案: 1. 保留預設的會話模組,但編寫自訂的狀態供應器來更改儲存介質。這樣,我們還有機會重寫一些用於在儲存與Session之間運載會話資料的輔助類。 2. 保留預設的會話模組,但替換會話ID產生器。 3.
命令的執行 ADO.NET物件模型提供物兩種類型的命令對象:一種是一次性的命令,另一種是資料配接器。一次性命令用於執行SQL命令或預存程序,返回的是一種遊標。如果使用遊標,那麼串連必須處於開啟狀態。資料配接器是一個功能更強大的對象,內部使用的也是命令和遊標。它用於擷取資料,並將其載入到容器類中—DataSet或DataTable。用戶端應用程式可以在不與資料來源串連的情況下處理資料。SqlCommand類 SqlCommand代表SQL
資料配接器 資料配接器對象充當資料來源與DataSet對象間的雙向橋樑。DataSet是一種非串連的資料容器,適配器負責對它進行填充,並能把它的資料提交給特定的資料來源。 命令與資料配接器最大的不同在於擷取資料後的返回方式。查詢命令能返回一種唯讀、只進的遊標—資料讀取器。資料配接器能執行資料訪問,擷取所有資料,並將其打包在記憶體容器中—DataSet或DataTable。其實,資料配接器是一種額外的抽象層,構建於命令/資料讀取器對之上。資料配接器在內部會使用命令進行查詢,使用
System.Web.UI.Page類提供了ASP.NET應用程式從aspx檔案建立的所有對象的基本行為,該類派生自TemplateControl並實現了IHttpHandler介面。 TemplateControl是抽象類別,為ASP.NET頁面和使用者控制項提供了一組基本的功能。該類的上一層次為Control類,Control類定義了由ASP.NET伺服器端元素(頁面、控制項和使用者控制項)共用的屬性、方法和事件。 TemplateControl類實現了INamingContaine
DataGrid控制項的顯著特徵是Columns和Items集合屬性及樣式和資料繫結屬性。Items屬性返回DataGridItem對象的集合,每個元素對應顯示出來的行。DataGridItem類是TableRow類的子類,對其進行了細化。 DataGird控制項的輸出由幾種元素組成:Header(標題)、Item(顯示項目)、Alternating
WCF服務能夠輸出JSON,通過HTTP進行傳輸(不一定要用SOAP進行資料封裝)。我們要做的是,使端點使用webHttpBinding綁定模型,並通過新的特性來啟用Web指令碼調用。構建一個簡單的WCF服務 在VS2008中建立一個新Web網站,添加一個新的WCF服務,並將該項命名為TimeService。以WCF服務的形式重寫TimeService 添加新項後,我們會發現項目中多了一個服務端點(timeservice.svc),與其相關的代碼檔案(如wcftimeservice.cs
runat屬性是ASP.NET控制項編程的關鍵。如果aspx源碼中的標籤在聲明時沒有帶runat屬性,那麼它將被視為純文字並逐字輸出。否則,該標籤的內容會被映射到伺服器控制項上,在頁面的生命週期中進行處理。兩大類伺服器控制項 HTML伺服器控制項:通過伺服器端的類,HTML控制項被映射為HTML標籤,這些編程介面如實表現了相應HTMP標籤的屬性集合。 Web伺服器控制項:Web控制項更抽象,其API沒有嚴格遵循HTML文法。功能上講,Web控制項是HTML控制項的擴充集。Web控制項帶有
ASP.NET AJAX伺服器基礎結構中最重要的控制項包括ScriptManager(指令碼管理器)及ScriptManagerProxy(指令碼管理器代理)。每個ASP.NET
HTTP處理常式的使用者十分明確:改變某類資源的處理方式,並將其返回給使用者。我們可以通過處理常式基於運行時條件或某種形式的邏輯對傳統資源進行篩選,還可使HTTP處理常式以非同步方式來返回特定的頁面或資源。 對於HTTP處理常式來說,註冊是一個關鍵步驟,它為ASP.NET提供有關處理常式的資訊。但我們都需要修改應用程式的web.config檔案,以便為ASP.NET應用程式提供處理常式的資訊。 通過ASHX擴充和處理常式編程模型,我們可以避免修改web.config。部署新的HTTP處理
ASP.NET提供了4個層面上的狀態管理工具:應用程式、會話、頁面和請求,每層都有專用的容器物件。應用程式的狀態 下表總結了各狀態物件的主要功能: 儘管HttpApplicationState和HttpSessionState對象與ASP內部對象Application和Session的名稱不同,但在狀態方面,它們的功能完全一致。 HttpApplicationState對象可使應用程式中的所有請求處理常式獲得一種字典形式的儲存物件。所有HTTP處理常式和模組都能夠儲存和檢索應用程式字典
DataSet類是ADO.NET物件模型中的主要組件,ADO.NET容器類與使用的資料來源無關,也不儲存任何與特定資料來源有關的資訊。DataSet對象 DataSet對象實現了3個重要的介面: 1. IListSource使其能返回元素的可綁定資料列表。 2. ISeralizable使其能夠控制資料序列化的方式,以便傳給.NET格式化程式。 3.