2022年2022年框架设计 .pdf





《2022年2022年框架设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年框架设计 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于 Remoting 技术的三层架构设计 FangRonghua 2009.02.22 目 录 1 名词及简介 .2 1.1 三层架构.2 1.2 分层描述三层架构.2 1.3 NET Remoting技术简介.2 1.4 Remoting和Webservice有什么区别.3 2 设计图.3 2.1 框架总体设计图.3 2.2 应用服务程序设计图.5 2.3 客户端程序设计图.5 2.3.1 客户端应用程序说明.6 3 AFramework 程序集.7 3.1 PersistenceManager 类包含的方法:.7 3.1.1 新增记录.8 3.1.2 更新记录.8 3.1.3 删除记录.
2、9 3.1.4 单值查询.10 3.1.5 取DataSet.10 3.1.6 事务管理.11 3.1.7 执行存储过程.12 3.1.8 Remoting 设置.12 3.2 QueryStatement类所包含的方法:.13 4 实体.13 4.1 实体示例.13 5 业务层.16 5.1 业务层代码示例.16 6 测试代码.17 1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 1 名词及简介1.1 三层架构三层架构,是
3、在客户/ 服务之间加入了一个中间层,也叫组件层,本设计中为应用服务程序。 引入中间层,提供了易于访问、易于管理的方法,可以将多种应用服务封装部署于应用服务器,增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,从而实现了高效、安全、稳定的企业级系统应用。 1.2 分层描述三层架构本设计中,将应用程序的数据访问、合法性校验等工作放在中间层进行处理。客户端不直接与数据库进行交互。中间层提供Remoting 服务接口,客户端通过Remoting 技术与中间层建立连接,再经由中间层与数据库进行交互。数据通过中间层的中转无疑是降低了效率,但是它脱离于界面与数据库的完美封装,使得它的缺点不值得一
4、提。 微软的 DNA 架构定义了三个层:表示层(presentation ) 、业务层(business)、和数据存储层(data access )。 也有人分七层:界面外观层、界面规则层、业务接口层、业务逻辑层、实体层、数据访问层、数据存储层。 本设计中,采用的名称为:表示层、业务层、持久层。 表示层:负责显示信息及从系统外部得到输入。 业务层:完成业务逻辑。业务层知道如何对用户输入进行处理,能够应用业务规则完成用户所需的业务,但它不知道数据如何读取和保存。 持久层:负责用户信息的持久化。持久层完全不知道业务,只专注于数据存储和读取。 1.3 NET Remoting技术简介NET Remo
5、ting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施。调用对象被称为客户端, 而被调用对象则被称为服务器或者服务器对象。它是.NET平台上实现分布式对象系统的框架。 Remoting 的优点: 性能: 如果调优.Net Remoting 的性能,那么它的性能非常好,速度接近DCOM。 可 扩 展:.Net Remoting 可 供你 选 择 传输 通 道 类型 ( 如 Http,Tcp)和格 式 类 型(如Binary,Soap) 。 可配置:可以通过配置文件配置应用程序。 CLR 和 CTS的好处:由于.NET Remoting是基于.NET 框架的,所以
6、他拥有Common Type System(CTS) 和 Common Language Runtime(CLR)所拥有的易于使用和功能强大的特点。 互用性(Interoperability):.NET Remoting 支持开发标准(Http,SOAP,WSDL,XML). 2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 19 页 - - - - - - - - - 安全性 生命周期管理 1.4 Remoting和 Webservice有什么区别 Remoting 是
7、 MarshByReference 的,可以传变量的引用, 直接对服务器对象操作。 速度快,适合 intranet 。 webservice 是 MarshByValue 的,必须传对象的值。 速度慢,可以过 FIREWALL, 配置比较简单,适合 internet 。 一般来说,Remoting 是和平台相关的, 需要客户和服务器都是.NET , 但可配置特性比较好,可以自定义协议。web service可以做到跨平台通信,但必须采用SOAP 协议。 2 设计图2.1 框架总体设计图3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
8、 - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 4名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 2.2 应用服务程序设计图2.3 客户端程序设计图5名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - -
9、2.3.1客户端应用程序说明 每个模块放在单独的文件夹下,文件名、路径等信息需要配置在数据库中。 根据用户权限动态生成菜单,动态加载模块。 界面设计: 客户端程序窗口 1024*743 (显示任务栏) 菜单高度为 1016*24 工具栏高度 1016*25 状态栏高度 1016*22 模块高度应为 743 - 71 = 672 模块宽高为:1024*672 效果比较好 模块窗口加载到客户端程序中间白色区域,加载时将去掉模块窗口的标题栏。 6名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
10、第 6 页,共 19 页 - - - - - - - - - 3 AFramework 程序集文件名:AFramework.dll AFramework是持久层的一种实现,封装了应用程序常用的数据库操作。运用该组件时,主要运用两个类:PersistenceManager、QueryStatement 。 3.1 PersistenceManager类包含的方法:7名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 3.1.1 新增
11、记录命名空间:AFramework 类名:PersistenceManager 方法 Int Insert(string sql) 名称 新增记录 (sql 语句版) 说明 创建一个新的Oralce连接,执行该sql 语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Insert(string sql,int sessionID) 名称 新增记录 (sql 语句+事务版) 说明 使用指定的会话连接,执行该sql 语句,完成操作后不提交,不关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Insert(object model) 名称 新增记录 (Data
12、Model版) 说明 创建一个新的Oralce连接,根据model 自动构造插入语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Insert(object model, int sessionID) 名称 新增记录 (DataModel+事务版) 说明 使用指定的会话连接, 根据model 自动构造插入语句, 完成操作后不提交, 不关闭连接。遇到异常则抛出异常并自动回滚。 3.1.2 更新记录命名空间:AFramework 类名:PersistenceManager 方法 Int Update(string sql) 名称 更新记录 (sql 语句版) 说明
13、 创建一个新的Oralce连接,执行该sql 语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Update(string sql,int sessionID) 名称 更新记录 (sql 语句+事务版) 8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - 说明 使用指定的会话连接,执行该sql 语句,完成操作后不提交,不关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Update(obj
14、ect model, QueryStatement query) 名称 更新记录 (DataModel版) 说明 创建一个新的Oralce连接,根据model 及query自动构造更新语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Update(object model, QueryStatement query, int sessionID) 名称 更新记录 (DataModel+事务版) 说明 使用指定的会话连接, 根据model 及query自动构造更新语句,完成操作后不提交,不关闭连接。遇到异常则抛出异常并自动回滚。 3.1.3 删除记录命名空间:A
15、Framework 类名:PersistenceManager 方法 Int Delete(string sql) 名称 删除记录 (sql 语句版) 说明 创建一个新的Oralce连接,执行该sql 语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Delete(string sql, int sessionID) 名称 删除记录 (sql 语句+事务版) 说明 使用指定的会话连接,执行该sql 语句,完成操作后不提交,不关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Delete(QueryStatement query) 名称 删除记录 (Dat
16、aModel版) 说明 创建一个新的Oralce连接,根据query自动构造删除语句,完成操作后自动提交,并关闭连接。遇到异常则抛出异常并自动回滚。 方法 Int Delete(QueryStatement query, int sessionID) 名称 删除记录 (DataModel+事务版) 9名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 说明 使用指定的会话连接, 根据query自动构造删除语句, 完成操作后不提交,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年框架设计 2022 框架 设计

限制150内