定義ADO.NET模型講析說(shuō)明
雖然有許多人對(duì)ADO.NET模型的安全性表示懷疑,但在年復(fù)一年的不斷發(fā)展中,他的安全性也在不斷提高。保障ADO.NET模型的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET模型,及他是怎么運(yùn)作的。
為了方便,我們?cè)谶@里還是將它們稱之為類)。在RTM中,我們使用了prototype模型,做出這種改變有幾個(gè)原因,下面的表格比較了這兩種模型:
- registerNamespace("Custom");
- //Prototype:Constructor
- Custom.Timer=function(){
- //Ctorcreatesprivatefieldsandcallsbase.
- Custom.Timer.initializeBase(this);
- this._interval=1000;
- this._enabled=false;
- this._timer=null;
- }
- //Prototype:members
- Custom.Timer.prototype={
- member1:function(){},
- member2:function(){},
- ...
- }
- Custom.Timer.registerClass('Custom.Timer',Sys.Component);
我們從很多方面研究了prototype相對(duì)于closure的性能優(yōu)勢(shì)——不光是對(duì)象實(shí)例的內(nèi)存使用,還包括實(shí)例化一個(gè)包含各種各樣類和成員的典型應(yīng)用程序。這種性能研究都在多個(gè)瀏覽器中進(jìn)行,因?yàn)槲覀兊哪繕?biāo)是找出一個(gè)應(yīng)用于所有瀏覽器上最合適的模型。#t#
如果您只是編寫(xiě)ASP.NET頁(yè)面,在自己的腳本或者XML-Script中使用ASP.NET AJAX Framework客戶端對(duì)象,則不會(huì)受到這種變化的影響。
CTP版使用了內(nèi)置的closure支持,保證了基礎(chǔ)方法能夠被合適地訪問(wèn)到。ADO.NET模型這個(gè)支持在在RTM中被移出了,您可能會(huì)需要為基于prototype的類派生出“子類”,那么請(qǐng)不要在繼承鏈中任何一個(gè)使用基于closure的類型。
Note:在beta版中,存在著一些支持closure的概念,這有可能在RTM時(shí)被移除。然而,一般來(lái)說(shuō)ADO.NET模型還是能夠在子類中使用,即使它派生于一個(gè)prototype類。但是開(kāi)發(fā)人員不應(yīng)該使用closure開(kāi)發(fā)一個(gè)可能被繼承的類。