虽然有许多人对ADO.NET模型的安全性表示怀疑,但在年复一年的不断发展中,他的安全性也在不断提高。保障ADO.NET模型的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET模型,及他是怎么运作的。
为了方便,我们在这里还是将它们称之为类)。在RTM中,我们使用了prototype模型,做出这种改变有几个原因,下面的表格比较了这两种模型:
- 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相对于closure的性能优势——不光是对象实例的内存使用,还包括实例化一个包含各种各样类和成员的典型应用程序。这种性能研究都在多个浏览器中进行,因为我们的目标是找出一个应用于所有浏览器上最合适的模型。#t#
如果您只是编写ASP.NET页面,在自己的脚本或者XML-Script中使用ASP.NET AJAX Framework客户端对象,则不会受到这种变化的影响。
CTP版使用了内置的closure支持,保证了基础方法能够被合适地访问到。ADO.NET模型这个支持在在RTM中被移出了,您可能会需要为基于prototype的类派生出“子类”,那么请不要在继承链中任何一个使用基于closure的类型。
Note:在beta版中,存在着一些支持closure的概念,这有可能在RTM时被移除。然而,一般来说ADO.NET模型还是能够在子类中使用,即使它派生于一个prototype类。但是开发人员不应该使用closure开发一个可能被继承的类。