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

简介: 说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如OledbProvider、SqlServerProvider、OrcaleProvider等等;不同数据源的访问其实是不一样的,微软数据源的访问方式从ODBC到ADO.

说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如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:

img_40acdfffee67786bbd13a3596791894a.jpg

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

2:

img_fad55a91832daf0b5586322c3f32e303.jpg

在下已经实现一个基本的原型,在HZ.DataProvider.WebServiceDBManager服务器项目中,可以实现很多种数据源,在WebService与数据库服务器之间可以架设ORM很宽松的实现数据访问,可以随意切换数据库类型;这样层层隔离,也是一种好的开发方式;[王清培版权所有,转载请给出署名]

3:

img_d555fee3e499475f17c985105c8d87bf.jpg

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

4:

img_93630ffe5b0f23c08ede56605289303a.jpg

5:

img_3b4b8b6dc00c7d4e9c21fdddb558009e.jpg

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

源码:HZ.WebServiceProvider数据提供程序   (仅供学习参考)[王清培版权所有,转载请给出署名]

目录
相关文章
|
6月前
|
开发框架 Dubbo .NET
ASP.NET Core grpc
rpc 相关概念RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。rpc 简单来说:RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。RPC 会隐藏底层的通讯细节(不需要直接处理Socket通讯或Http通讯) RPC 是一个...
41 0
ASP.NET Core grpc
|
网络协议
一起谈.NET技术,回顾.NET Remoting分布式开发
  记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。
2597 0
|
1月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
11 0
|
Web App开发 C#
一起谈.NET技术,在.NET 4中用IIS部署WCF就这么简单
  在.NET 3.5中,我们需要这样做:   1. 添加一个HelloService.svc文件,添加ServiceHost标记,在Service中添加WCF服务实现的名称,比如:   2. 在web.config/system.serviceModel/bindings/basicHttpBinding中添加一个binding。
928 0
|
Web App开发 JavaScript 前端开发
一起谈.NET技术,舍WebService 用.NET4中jQuery调用WCF
  在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebService中调用后台的WCF。
932 0
|
网络协议
回顾“.NET技术”.NET Remoting分布式开发
  记得在下第一次接触.NET Remoting分布式开发是在2003年,那时候是Framework1.0初次亮相之时,Remoting分布式开发是Framework1.0其中一个亮点。经过多年的发展,在2005年,WCF随着Framework2.0首先亮相。
1411 0
|
网络架构
.net之httphandler小记
    本地调试代码遇到的一个问题,没有走URL路由器(UrlReWriter : IHttpHandlerFactory),于是网上科普了一下原理,主要有两点:     1.asp.net在处理http请求时,会由httpmould传递到httphandler,HttpHandlerFactor...
931 0
|
前端开发 JavaScript Windows

热门文章

最新文章