zoukankan      html  css  js  c++  java
  • 浅谈企业软件架构(3)

     

    第三章 层次优势

     

    前一章我们谈到了分层有很多好处,那么到底有些什么好处呢,本章我们在上一章的例子的基础上增加两个不同类型的客户端来简要说明,分层后我们在某些需求发生变化是如View的要求变了,我们只是通过增加View来解决问题,而不是在单层例子的时候,需要几乎全部的重写来完成这一工作。 

    3.1 WinForm的客户端例子

    假定一个场景由于客户某些需求发生了变化,或者通过Web开发的界面无法实现客户要求的客户端展现,我们需要把切换到WinForm的界面来,现在就上一章的例子来实现这样一个切换过程。

    在解决方案中增加一个Windows Forms Application类型的DemoWinForm的项目,接着我们把Form.cs修改成FormCustomer.cs,添加我们需要的控件如下图:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    给项目添加Application Configuration File如下图:

     

     App.config文件代码如下: 

    Code

     

    现在我们来看看FormCustomer.cs的代码: 

    Code

    页面事件交互代码: 

    Code

          界面交互的代码与Web的例子比较接近,主要是实现界面事件的响应和界面数据处理。完成这样一个切换基本上没有太大的开发量。当然大家会说如果界面操作比较复杂的时候工作量也较大!是的,但是至少我们减少了不少工作量,尤其如果我们在Biz层开发的时候采用了测试驱动的开发模式,编写了大量的测试单元的话,还可以大大的减少后期测试工作量。如果没有分层处理,这样的迁移在项目上绝对就是一个巨大的灾难! 

    3.2 Extjs的客户端例子

    这一节我们实现一个采用Extjs作为前端展示技术的界面层,分层给我们带来的好处之一就是,采用什么样的界面技术对业务来说不会有太多的影响,只是不同的展现形式而已。ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript 的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。因此,可以把ExtJS用在.NetJavaPhp等各种开发语言开发的应 用中。ExtJs最开始基于YUI技术,由开发人员Jack Slocum开发,通过参考Java Swing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品。采用该技术来做界面层展现工具好处就是很多展现组件很好很强大,但是弊病就是对项目组来说开发技术门槛较高,较传统的界面开发方式跟踪调试难度大。 

    3.2.1. 添加类型为Asp.Net Web ApplicationDemoExtjs项目

     

      extjs2.2目录拷贝到项目中,系统会自己把该目录复制项目目录下。如下图:

     

     

    3.2.2.    添加Customer.js文件

    Customer.js文件包含Extjs的界面的控件及控件响应事件Javascript脚本,界面效果如下图:

     

     Customer.js脚本代码如下: 

    Code

     

    3.2.3.    添加CustomerExtjs.aspx文件

    更名Default.aspxCustomerExtjs.aspx添加对Javascript脚本的引用代码,代码如下:

     

    Code

     

    关于更多的Extjs的使用请参考Extjs相关文档。 

    3.2.4.    添加CustomerData.aspx文件

    Code

     

    注意上面的Javascript脚本代码,我们在Customer.js中定义了数据处理的页面为url:"CustomerData.aspx"可以把CustomerData.aspx看成是在Web端响应界面事件的后台服务页面。Extjs开发需要两个页面来完成数据的交互,一个是Javascript脚本控件渲染的页面,一个是响应界面事件的服务端处理页面。

    CustomerData.aspx代码如下: 

    Code

    3.2.4.1.            增加Customer对象函数

    Code

     

    3.2.4.2.            获取Customer对象函数

    Code

     

    3.2.4.3.            修改Customer对象函数 

    Code

     

    3.2.4.4.            删除Customer对象函数

    Code

     

    3.3 结语

    通过两个不同的界面层的实现来描述界面层与业务层的关系,在企业开发过程中,实际的业务逻辑层随着时间的推移和企业应用的不断提高,往往会越来越复杂,那么这样的层次结构就会给升级维护和开发带来一个全新的局面。同时,如果采用测试驱动的开发模式的话,大部分的业务通过对业务逻辑层的单元测试编写就可以获得测试验证。这样的当某个时间点增加业务逻辑时,原来的单元测试代码就可以覆盖测试本次修改可能影响的所有代码,从而大大提高维护的效率,减少因为紧急维护带进更多BUG的可能性。

    下一章我们会简要的谈谈单元测试在三层开发中的使用,TDD开发模式会给初学者开发过程带来新的思路。

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    【QT】读取目录文件,双击显示文件内容
    【QT】简易计算器实现
    【QT】使用代码方式实现简单的界面布局
    【QT】event事件使用鼠标位置
    【ffmpeg】FFMPEG常用命令
    【QT】简单文本编辑器,open,save功能
    Nginx--try_files尝试读取文件
    深浅拷贝
    CNN卷积神经网络学习笔记
    深度学习基础学习-第二章-感知器
  • 原文地址:https://www.cnblogs.com/haozi0804/p/1507885.html
Copyright © 2011-2022 走看看