首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

.NET实现之(WebService数据提供程序)

说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如OledbProvider、SqlServerProvider、OrcaleProvider等等;不同数据源的访问其实是不一样的,微软数据源的访问方式从ODBC到ADO.NET经历了很多路程,各大数据源提供商,都在不断的生产不同结构的数据库,为了以统一的接口去访问各种不同的数据源,微软的.NET为我们提供了ADO.NET,我们通过ADO.NET可以很方便的访问不同厂商生产的不同数据库,ADO.NET也为后期自定义数据提供程序规定了一套接口,只要我们自己去实现它就可以用同一种方式,访问我们自己的数据源,我们可以通过封装访问我们的XML数据源、文本数据源、二进制数据源、WebService数据源、对应用程序员来说,可能有很少一部分人去关注后台的具体实现的细节;对于刚毕业的学生来说,大部分的知识还没有转变成对技术的主观思考,刚刚接触数据提供程序可能有点陌生,所以我们尽可能的将复杂的东西进行简单化,让不需要接触后台代码的程序员就不要接触,减少思考的时间;

03

Entity Framework 和NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。而ADO.NET Entity Framework目前v1版本,应该是从下而上的方式Bottom-up),ADO.NET Entity Data Model Wizard就是最好的佐证。Entity Framework v2支持POCO之后也就能实现垂直双方向的支持,但这如我后面所说,还不够。 至于从里到外(Inside-out),从外向里(Outside-in)是真正显示ORM工具或E/R模型编程模型威力的地方,因为99%的现实世界,以及数据库都不是同步也无法保持同步的,那么提供从里到外,从外向里两个方向的支持是非常重要的。 其实ORM和DP的存在就是要实现这两个方向的能力和支持,否则就没有存在的必要,因为自上而下(Top-down)和自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式,原因是这两种方向和思考比较不客观,那就是假设现实世界和数据有一方是不变的,或是我们自己可以控制的,事实上,这种想法是不现实的。

05

关于ADO.NET连接池

前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,这种情况下怎么办?想了想,造成这种情况的原因是ADO.NET的内部机制造成的。ADO.NET中为了提高性能,所以使用了连接池,这样每个请求就不必都创建一个连接,然后认证,然后执行SQL,而是从连接池中直接取出连接执行SQL,执行完成后也并不是真正关闭连接,而是将该连接重新放回连接池中。如果有100个客户端,每个客户端在使用一段时间后连接池中保存了10个连接,那么在这种情况下,即使不在客户端做任何操作,SQL Server上都有1000个连接,这样不出性能问题才怪。

01

Windows数据库编程接口简介

数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法以及数据库系统编程接口的使用方法是程序员非常重要的基本技能之一。所以我花了一定的时间学习了在Windows平台上使用COM接口的方式操作数据库。这段时间我会将自己学习过程中掌握的知识和其中的一些坑都发布出来,供个人参考,也方便他人学习 现在常见的DBMS主要有ORACLE、Sybase、Informix、DB2、Sql Server、Access、Visual Foxpro、MySql。由于目前我主要是在学习Windows平台上的编程技巧,所以这系列的内容将会以Windows平台为主,所以数据库选择了Sql Server,编程接口主要是ADO和OELDB.

02
领券