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

今天我要向大家介绍的是WebService数据提供程序,是建立在ADO.NET一套规范接口上的,为什么我会有这样的想法去写这个提供程序,主要来源于我在一段工作时间中不断遇到企业使用我们的分布式系统遇到的种种问题,因为我们的分布式系统是采用.NETRemoting实现的,端口是用的8085,走的是TCP协议;给企业部署项目的时候,由于企业的网络结构比较复杂,在加上我们不了解企业的网络结构,所以在很大程序上增加了我们的维护工作量,也给企业带来了很大的维护时间开销,我们的.NETRemoting是用Windows服务作为宿主,部署在应用服务器上,通过路由器的端口映射来处理客户端的TCP请求;很少一部分企业的网络结构简单,没有复杂的安全防线,由于我们公司做的项目相对而言还是比较大的,都是一些大中型企业;他们的网络的系数很高,防火墙的设置基本上是不允许使用TCP协议的,而且除了常用的协议端口如HTTP的80、FTP的21等,其余的一律封闭,所以我们的系统很难部署使用,但是后来这个问题也解决的了,将.NETRemoting部署到IIS上了,也通过80端口进来再由.NETRemoting子系统去处理;但是过了一段时间,我感觉通过WebService也能很好的实现,所以就写出来与大家分享一下,可能有人觉得WebService没有.NETRemoting效率高,对于大数据量可能会有问题,还有WebService的安全认证怎么控制,这些问题如果需要可以上网参考相关资料,对于安全认证可以在C/S系统加上Session的相应机制,这里就不多说了;

1:

该图给出一般分布式系统的网络拓扑图,企业和服务器各自在内网,企业通过WebService数据提供程序访问我们的数据源;

2:

在下已经实现一个基本的原型,在HZ.DataProvider.WebServiceDBManager服务器项目中,可以实现很多种数据源,在WebService与数据库服务器之间可以架设ORM很宽松的实现数据访问,可以随意切换数据库类型;这样层层隔离,也是一种好的开发方式;

3:

通过提供程序获取DataReader对象,前台完全和以前我们所熟悉的一样开发,对于刚进公司开发的程序员来说,也是一中解脱,不需要关注后台复杂的实现,只需要按照一贯的方式开发就行;

4:

5:

图5是服务器端的实现代码,这部分代码就是连接数据库服务器的代码,将客户端传递过来的SQL去执行,并返回数据库返回的结果给客户端;

本文转自 王清培 51CTO博客,原文链接:http://blog.51cto.com/wangqingpei557/567769,如需转载请自行联系原作者

.NET实现之(WebService数据提供程序)相关推荐

  1. ADO.NET—数据提供程序(连接类)

    .NET Framework 数据提供程序是专门为数据处理以及快速地只进.只读访问数据而设计的组件. 一.Connection 1.介绍 开启程序和数据库之间的连结 ADO.NET底层 可自己产生对象 ...

  2. .NET数据提供程序

    ADO.NET为底层数据库提供了不同的连接对象的特定实现.换言之,为了连接到微软SQL Server数据库,要通过特定的名为SqlConnection的类.实际上,所有SQL Server特有的类都位 ...

  3. 【转】“数据提供程序或其他服务返回 E_FAIL 状态” 或者 Data provider or other service returned an E_FAIL status.

    "数据提供程序或其他服务返回 E_FAIL 状态"  或者  Data provider or other service returned an E_FAIL status. 使 ...

  4. WIN7系统 64位出现 Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC)....

    WIN7系统 64位出现  Net Framework 数据提供程序要求 Microsoft Data Access Components(MDAC).请安装 Microsoft Data Acces ...

  5. .Net Framework OleDb 数据提供程序要求 Microsoft Data Access Components(MDAC) 2.6 或更高版本。发现当前安装的版本是 2.50.4403.

    问题:  .Net Framework OleDb 数据提供程序要求 Microsoft Data Access Components(MDAC) 2.6 或更高版本.发现当前安装的版本是 2.50. ...

  6. .Net Framework SqlClient 数据提供程序不支持 CommandType 枚举值 512

    文章转载:http://www.cnblogs.com/jhxk/articles/2584298.html 一直都没用过CommandType枚举的TableDirect的方式,今天试了一下报错,原 ...

  7. 错误:数据提供程序或其他服务返回E_FAIL状态 到底怎么回事呢?

    今天碰到这么一个问题,真是郁闷.幸亏有这个浩瀚的网络. 在csdn中看到这么一篇,给我很大的启示. http://community.csdn.net/Expert/topic/4320/432057 ...

  8. 找不到请求的 .Net Framework 数据提供程序。可能没有安装

    今天碰到这个错误, 查看配置文件后发现 , 所以我的解决方案就是换掉provider咯,数据库文件自然也得跟着换 当然,你也可以尝试类似这种方式手工注册缺失的provider 转载于:https:// ...

  9. Linq to SQL只支持SQL Server(所选对象使用不支持的数据提供程序)

    转载于:https://www.cnblogs.com/hawkingXu/p/5131341.html

最新文章

  1. chromiumwebbrowser 使用_CefSharp ChromiumWebBrowser初始化完成后加载网址
  2. Java基础7:关于Java类和包的那些事
  3. sudo rosdep init ERROR: cannot download default sources list from: https://raw.githubusercontent.com
  4. 不止代码:循环比赛(分治)
  5. dexpress 流程图_DevExpress常用操作
  6. 【UI/UX】深度解析模态窗口
  7. HTML5触摸事件演化tap事件
  8. CoreData学习-最好的一片文章
  9. 一、数据挖掘—初识数据挖掘
  10. 合并照片到word中
  11. 计算机网络技术摘要,计算机网络论文摘要
  12. Maze勒索软件的最新样本分析
  13. HDU 5745 La Vie en rose(简单模拟)
  14. 【无标题】C语言编写一个简单答题系统
  15. 大数据疫情可视化平台1_基于Hadoop3.2.1、Hive3.1.2、搭建疫情信息可视化系统
  16. APP的多语言设计我们可以做点什么?
  17. iTab!一款超级无敌好用的浏览器插件 简洁美观
  18. 百度网盘安装权限限制
  19. FOC - SVPWM
  20. 一张图就让你理解K-Means算法!!

热门文章

  1. GDCM:寻找StudyRootQuery的测试程序
  2. GDCM:提取JP2文件所有解析度的测试程序
  3. boost::core模块实现constexpr的地址
  4. boost::container实现emplace进位的程序
  5. Boost:boost::asio模块的prioritised handlers优先处理程序
  6. ITK:获取给定顶点周围的面孔列表
  7. VTK:可视化之BillboardTextActor3D
  8. C语言将向量中的所有0移至末尾(附完整源码)
  9. 经典C语言程序100例之三四
  10. java 经典语录_JavaSpring过时的经典语录