当前位置:文档之家› 用Net Remoting访问远程对象

用Net Remoting访问远程对象

用Net Remoting访问远程对象
用Net Remoting访问远程对象

用.Net Remoting访问远程对象

Net提供了好几种通信协议与方式使得这种开发变得简单而快速,你甚至无需知道太多的传输协议与编码细节。因此,无论你开发一个web应用还是关键的、涉及多操作系统和多通信协议的企业级应用,.Net都将对你提供全面的支持。跨进程的对象通信技术一直是个复杂的工作,现在这些复杂的处理工作都交给.Net framework来完成了。

.Net Remoting能使客户端应用调用位于本机或者网络上其他进程中的对象,你也可以利用.Net Remoting调用同一个进程中不同应用域中的对象。.Net Remoting提供了一种可以把远程对象的通信机制从特定服务器和客户端中分离出来的抽象方法,因此,它是灵活的、方便的,并且是易于定制的。你可以更换通信协议和交换格式,而无需重新编译客户端和服务器端应用。另外,这个远程机制并不针对任何特定的应用模式,你可以从一个web application、一个主控台应用、一个windows service---------甚至是任何你需要的系统发起调用。远程服务器也可以是任何类型的可执行系统,任何应用都可以宿主/容纳(作为一个对象容器)一个远程对象并且对任何客户端提供该远程对象的服务。

选择.Net调用协议

.Net Framework提供了好几种面对不同应用域的对象调用方法,每一种方式都有其独特的技术与弹性。比如,Internet的快速成长使得XML/Web Service成为一种极富诱惑力的通信手段,因为Web Service建立在Http协议和以XML作为交换格式的Soap协议之上,而这一基础架构普遍存在。它们已经是公共标准,可以在web架构中随时使用,而不用担心访问代理和防火墙的问题。

但是,并非所有的应用都应该使用Web Service,基于Http连接的Soap数据流传输(serialization)存在严重的效率问题。这里我们将探讨那一种对象互操作协议适合于你的应用。

https://www.doczj.com/doc/bc7186592.html, 还是Remoting?

https://www.doczj.com/doc/bc7186592.html,和.net remoting都是进程间通信的实现方式。https://www.doczj.com/doc/bc7186592.html,基于IIS,这种基础架构已为开发者熟悉。.net remoting则是一种更加一般性的、扩展的进程间互操作机制。通过.net remoting你不仅可以产生基于IIS的XML Web Service服务(和包括安全性、延展性、session、https://www.doczj.com/doc/bc7186592.html,和IIS等应用形态),也可以产生任何其他通信协议和传输格式的应用。

你需要的通信方式和你熟悉的开发模式是你选择https://www.doczj.com/doc/bc7186592.html,或者remoting的两条基本准则。无论你如何选择,你需要用最简单的方法达到你的目标。

下面是一些根据优先级排列的互操作通信协议(XML web service built with https://www.doczj.com/doc/bc7186592.html,, XML web service built with .net remoting)的选择原则。

(1)安全性

如果你注重调用的安全性,无论是一个https://www.doczj.com/doc/bc7186592.html,应用还是一个remoting应用,你必须使用宿主在IIS上的基于HTTP的应用模式。这是因为https://www.doczj.com/doc/bc7186592.html,和.net remoting使用IIS提供的安全性服务。.net remoting并不提供位于IIS之外的独立的安全性策略,比如在一个windows service应用之中。

尽管你可以在任何应用域中使用.net remoting(不像用https://www.doczj.com/doc/bc7186592.html,构建的xml web service,必须寄生/宿主在IIS中),但是你必须独立提供安全性服务,除非你的.net remoting应用基于IIS。

如果你使用HTTP连接,你无需使用XML/SOAP封包格式,你可以使用二进制编码来提升传输速度。

(2)速度

在用https://www.doczj.com/doc/bc7186592.html,构建的XML Web Services中,.Net Remoting具备潜在的性能优势,因为.net remoting允许你使用二进制编码与缺省的tcpchannel,这将导致极好的互操作性能。即使你不使用缺省的tcpchannel,你依然可以在httpchannel(基于IIS或者任何httpchannel侦听程序)中指定二进制编码传输格式。

使用二进制编码传输可以显著的提高调用效率,即使你使用httpchannel而不是用tcpchannel. 如果你并不关心安全性问题,比如你的系统运行在防火墙区域内,那么采用httpchannel和二进制编码传输是最佳选择。

当不需要使用.net remoting时,用https://www.doczj.com/doc/bc7186592.html,构建的Xml web services常常使用soap封包,其效率低于二进制编码传输,但也能提供较好的执行性能。

(3)互操作

如果你希望在不同的操作系统之间互操作,那么无论是https://www.doczj.com/doc/bc7186592.html,还是.net remoting,你典型地需要使用soap协议。基于https://www.doczj.com/doc/bc7186592.html,的xml web services比.net remoting提供更多的soap 封包定制的灵活性,这将是不同平台之间的互操作变得更加容易。

当然,你也可以使用.net remoting实施不同操作系统的互操作,.net remoting优先用于同.net客户端的通信。

(4)伸缩性

如果你的应用宿主在IIS中,将给你最大的伸缩性,无论使用.net remoting还是https://www.doczj.com/doc/bc7186592.html,.

(5)使用CLR特性

因为.net remoting优先用于.net client的通信,那么有下述基于https://www.doczj.com/doc/bc7186592.html,的xml web services 所不具备的clr特性可用。

interfaces.

CallContext.

properties.

indexers.

Managed Extensions for C++.

Type fidelity between the client and server applications.

delegates.

(6)面向对象的应用设计

用https://www.doczj.com/doc/bc7186592.html,构建的xml web services应用并非面向对象的设计范例,它们本质上都是一些无状态的web资源,比如web page等等,尽管IIS和https://www.doczj.com/doc/bc7186592.html,基础架构提供了一些状态服务。

.net remoting对象则是真正意义上的对象,它们具有面向对象的所有特征,而这些特征则是https://www.doczj.com/doc/bc7186592.html,所不具备的。

l 远程对象的引用

l 多种对象激活机制

l 面向对象的状态管理

l 分布式对象生命周期管理

下面介绍一下用https://www.doczj.com/doc/bc7186592.html,构建的xml web services、https://www.doczj.com/doc/bc7186592.html, 命名空间和.net remoting之间的区别。

XML Web Services

如果你希望用web application模型构建具有强大https://www.doczj.com/doc/bc7186592.html, http运行时支持的asp应用,包括强大的Microsoft Visual https://www.doczj.com/doc/bc7186592.html,的支持,那么用https://www.doczj.com/doc/bc7186592.html, 构建xml web services是的选择。

由于xml web services的基础架构,你能够很容易的产生攻其他应用使用的组件,或者使用其他应用的组件。但是两台计算机之间的精确数据类型并不被支持,仅能传递一些参数。https://www.doczj.com/doc/bc7186592.html, Namespace

你能使用https://www.doczj.com/doc/bc7186592.html, namespace中的类从底至上构建一个完整的对象调用结构,你也能使用https://www.doczj.com/doc/bc7186592.html,类架构一些嵌入到remoting体系结构中的通信协议和数据传输格式。

.Net Remoting

.net remoting提供了沟通对象间调用的工具,包括但不限于xml web services.使用.net remoting,你可以做到:

l 在任何应用域中发布和使用对象服务,不能这个应用域是主控台应用、windows form, IIS, XML web service, 或者是一个windows service。

l 保证全托管代码类型的精确性。而XML web serivces使用soap格式,不支持所有的类型细节。

l 以引用方式传递对象,并且返回特定应用领域的特定对象。

l 直接控制对象激活与对象生命周期的管理。

l 实现和使用第三方通道channel或协议,以扩展通信功能适应你的特殊需求。

l 直接参与对象通信处理,以实现你需要的功能特性。

建立两个不同进程中对象之间的平滑通信,是一个普遍性的应用开发需求,尤其是在构建大型分布式应用系统时。具备通信需求的两个不同的进程可以位于一台计算机上,也可以分布于相距遥远的两台计算机上。

传统上,这要求开发者不仅具备通信对象双方的知识,而且要求具备在底层协议、应用开发接口、配置工具或者文件方面的深厚知识。一句话,这是一项要求具备深厚的技术背景与经验的复杂任务。

ADONET数据库访问技术的应用实验报告

课程名称网站设计与WEB编程实验名称https://www.doczj.com/doc/bc7186592.html,数据库访问技术的应用一、实验目的 1.了解https://www.doczj.com/doc/bc7186592.html,的结构,掌握https://www.doczj.com/doc/bc7186592.html,控件的功能和应用方法。 2.灵活应用SQL语句对数据库或数据表进行操作。 3.掌握数据控件的功能和应用方法。 4.了解前台界面与后台数据库的关系,掌握通过前台对后台的操作方法。 二、实验设备 PC机一台。 三、实验内容 1.设计数据库表结构,编程实现数据的浏览、查询、录入、修改和删除功能。 四、实验要求 1.设计一个数据库,数据库中至少有一个学生数据表,(包含的数据库字段有学号、姓名、专业、班级、性别),选取合适的字段设置为主键,并手工在数据库表中添加若干条记录。 2.用多种方法建立前台界面与数据库的连接。 3.在后台编写代码将数据显示在GridView控件中。 4.设计数据查询界面,能根据班级、专业等字段查询数据记录。 5.选用合适的控件设计学生信息录入界面,后台代码编程实现数据表中记录的增加、修改和删除功能。 6.思考如果以学号作为主键,录入学号时,如何验证学号的唯一性? 7.思考为什么要将数据库连接字符串放在Web.config文件中? 8.完成实验报告。 五、实验内容 1.新建一个数据库stu,并设置主键

2.新建空白网页,添加sqldatasource控件,并设置数据源为之前新建的数据库,用sql身份验证,再加入gridview控件,设置数据源为sqldatasource1,启用分页选择等属性 3.网页运行结果

4.设计查询窗口 5.查询测试结果 查询窗口和显示窗口的代码

6.信息录入界面,使用detailsview控件与数据库关联

数据库访问技术简介

数据库访问技术简介 数据库中的数据存放在数据库文件中,我们要从数据库文件中获取数据,先要连接并登陆到存放数据库的服务器。一般来说,访问数据库中的数据有两种方式:一是通过DBMS (Data Base Management System,数据库管理系统)提供的数据库操作工具来访问,如通过SQL Server 2000的查询设计器来提交查询,或者通过SQL Server 2000的企业管理工具来访问。这种方式比较适合DBA对数据库进行管理;二是通过API(Application Programming Interface, 应用编程接口)来访问数据库,这种方式适合在应用程序中访问数据库。 在数据库发展的初期,各个开发商为自己的数据库设计了各自不同的DBMS,因此不同类型的数据库之间数据交换非常困难。为了解决这个问题,Microsoft提出了ODBC(Open Data Base Connectivity,开放数据库互连)技术,试图建立一种统一的应用程序访问数据库接口,使开发人员无需了解程序内部结构就可以访问数据库。 1、Microsoft提出的系列数据库访问技术 1.1、ODBC ODBC是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。应用程序可以使用所提供的API来访问任何提供了ODBC驱动程序的数据库。ODBC规范为应用程序提供了一套高层调用接口规范和基于动态链接的运行支持环境。ODBC已经成为一种标准,目前所有的关系数据库都提供了ODBC 驱动程序,使用ODBC开发的应用程序具有很好的适应性和可移植性,并且具有同时访问多种数据库系统的能力。这使得ODBC的应用非常广泛,基本可用于所有的关系数据库。 要使用ODBC,先要了解以下概念:ODBC驱动管理器、ODBC驱动程序、数据源。它们都是ODBC的组件。ODBC组件之间的关系如图1所示。

ADONET访问数据库技术的方法及步骤

1 https://www.doczj.com/doc/bc7186592.html, 访问数据库技术的方法及步骤 徐照兴1 (江西服装职业技术学院,江西 南昌 330201) 摘 要:文中以访问SQL Server 数据库为例,以C#为编程语言,精简的描述了https://www.doczj.com/doc/bc7186592.html, 访问数据库技术的方法及步骤,并给出了相应的核心代码。 关键词:https://www.doczj.com/doc/bc7186592.html, C# 数据库 SQL Server 方法 1 徐照兴,1979-8,硕士,讲师,江西服装职业技术学院服装商贸学院,主要研究领域:数据库应用,web 开发 对数据库的访问是各种数据库应用程序开发的核心技术,.NET 框架中提出的https://www.doczj.com/doc/bc7186592.html, 技术屏蔽了各种数据库的差异性,为应用程序的开发提供了一致的接口,增强了程序的可移植性和可扩展性,本文给出以https://www.doczj.com/doc/bc7186592.html, 访问SQL Server 数据库为例,基于C#语言描述的https://www.doczj.com/doc/bc7186592.html, 访问数据库技术的方法、步骤及核心代码,以期为.NET 从业人员提供帮助。 1 使用连接对象Connection 连接数据源 连接对象的作用是在应用程序与指定的数据库之间建立连接,这是访问数据库的第一步。核心代码如下: using System.Data; //引入包含基本数据访问类的https://www.doczj.com/doc/bc7186592.html, 基本命名空间 using System.Data.SqlClient;//引入包含SQLServer 数据提供程序的命名空间 SqlConnection myconn = new SqlConnection();//定义并实例化一个Connection 对象 myconn.ConnectionString ="Server=数据库服务器名;DataBase=数据名;Uid=用户名;Pwd=密码";//使用SQL Server 用户登录验证方式连接数 据库 myconn.Open();//根据连接字符串,打开指定的数据库 注意: (1)若使用windows 验证方式连接数据库,连接的字符串如下: myconn.ConnectionString="Data Source=数据库服务器名;initial catalog=数据库名;persist security info=false;Integrated Security=SSPI"; (2)当数据库使用完毕后要及时关闭数据库的连接,即myconn.Close(); 2 使用命令对象Command 执行SQL 语句或存储过程操纵数据库 数据库连接打开后,接下来的工作就是操纵数据库,操纵数据库需要使用SQL 语句或存储过程,而https://www.doczj.com/doc/bc7186592.html, 数据提供程序中的Command 对象就可以用来实现对数据库的操纵了。核心代码如下: string sqlstr = " ";//引号内为SQL 语句或存储过程(也即是要如何操纵数据库) SqlCommand mycmd = new SqlCommand(sqlstr, myconn);//定义并实例化一个Command 对象

相关主题
文本预览
相关文档 最新文档