是如何解释他们呀?今天我去面试,碰到有好几个难题都答不来?
接口和抽象类的根本区别是什么呀?
是否有人帮忙我看看呢??在网络上搜过好多资料,但是还是弄不明白
接口和抽象类的根本区别是什么呀?
是否有人帮忙我看看呢??在网络上搜过好多资料,但是还是弄不明白
解决方案 »
- .net新手入门,请大家帮忙一下
- 在一个网站项目中,能同时使用MVC和WEBFORM吗
- 不同浏览器之间空格不一致大小怎么解决?
- 2.0里不能用这个方法向数据库里面插入数据吗?
- 数据导出EXCEL后控制格式的问题
- 给有人知道怎么更改一个表中字段的数据类型???
- IIS中把某个文件夹创建为应用程序这个动作能否在程序里实现!!!
- asp.net中类似于 iif(a>10,"aa","bb") 的表达式如何写?
- 不同的编码输出的页面大小一样吗?
- 高手进来,救命。 解出给分,,
- vs2008 的form和div 居右显示,不能居中,布局显得非常乱,请高手指点应该怎么处理?
- 窗体身份验证问题!!!!急!!!大虾们,救命!!
ADO.net是微软操作系统上为了连接各种数据库的新接口
接口和抽象类的根本区是,接口是一个双方的约定.
抽象类是老子说了算,继承我的都要听老子的.
ado.net基于xml数据格式
这就是最本质的区别
2. 数据访问方式的历史
下面简单的回顾一下微软的数据访问方式所走过的几个阶段。
ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。
DAO - (Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
RDO – 在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。
OLE DB – 随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。
ADO – 基于OLE DB之上的ADO更简单、更高级、更适合Visual Basic程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。
3. ADO与ADO.NET对照
在开始设计.NET体系架构时,微软就决定重新设计数据访问模型,以便能够完全的基于XML和离线计算模型。两者的区别主要有:
ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线。
由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。
4. 小结
ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。ado.net与ado存在着比较大的差异:
1.ado.net遵循更通用的原则,不那么专门面向数据库。ado.net集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引,排序和视图)的数据容器对象。尽管ado.net是.net数据库应用程序的权威解决方案,但从总体设计上看,它不像ado数据模型那样以数据库为中心,这是 ado.net的一大特点。
2.目前,ado.net提供了两种数据库访问类库:一种用于sql server 7.0 或更高版本,另一种用于其他所有您可能已经安装的ole db提供程序。在这两种情况下,您分别使用不同的类,但遵循相似的命名规则。除前缀,名称都是相同的。前一种情况前缀为sql,后一种情况则是 oledb。同时,.net框架还提供了odbc .net的数据访问模式。odbc .net data provider是 .net 框架的增强组件,它可以访问原始的 odbc 驱动程序,就像 ole db .net data provider 可以访问原始的 ole db providers 一样。目前它仅在下列驱动程序中测试过:microsoft sql odbc driver,microsoft odbc driver for oracle,microsoft jet odbc driver。
3.ado.net提供了两个队形来处理从数据源中抽取数据,它们是dataset和datareader对象。前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。
4.ado.net统一了数据容器类编程接口,无论您打算编写何种应用程序,windows窗体,web窗体还是web服务,都可以通过同一组类来处理数据。不管在后端的数据源数sql server数据库,ole db,xml文件还是一个数组,您都可以通过相同的方法和属性来滚动和处理它们的内容。
5.在ado中,xml只不过是输入和输出格式。然而在ado.net中,xml是一种数据格式,提供了操作,组织,共享和传递数据的手段。