c#

位置:IT落伍者 >> c# >> 浏览文章

Web应用的UML建模与.NET框架开发


发布日期:2024年04月02日
 
Web应用的UML建模与.NET框架开发

引言

基于Web的应用系统一般包含两部分服务器和客户端浏览器服务器主要对事务进行逻辑处理而用户对服务器上业务逻辑的影响使Web应用往往具有复杂性和高度动态性的特点这种特点使得基于Web应用的系统开发比较复杂管理困难为了有效地解决上述问题缩短开发周期减少维护费用主要策略是对Web应用进行建模UML是面向对象技术领域中占主导地位的统一建模语言此外NET框架在通用语言运行时CLR的基础上提供了完善的基础类库数据库访问技术ADONET和网络开发技术ASPNET使开发者可以快速构建Web应用因此本文主要探讨基于NET框架Web应用的UML建模及开发方法并将该方法用于作者开发的研究所管理系统中实际应用表明该方法可以有效地降低系统开发和管理的复杂性提高经济效益

Web 应用的构架模式

Web应用的基本构架包括浏览器网络和Web服务器浏览器向服务器请求Web页Web页可能包括由浏览器解释执行的客户端脚本而且可以与浏览器页内容和页中包含的其他控件( Java Applet ActiveX控件和插件等)进行交互用户向Web页输入信息或通过超级链接导航到其它Web页与系统进行交互改变系统的业务状态

瘦Web客户端

主要适用于基于Internet的应用对客户端配置几乎没有控制客户端只需要标准Web浏览器可以请求和显示标准的HTML页面所有的业务逻辑都在服务器上执行

客户端浏览器通过HTTP协议向服务器请求页面资源服务器将被请求的URL解析为文件系统中的文件或者由应用服务器处理并可能改变业务状态得到请求的页面返回给客户端

胖Web客户端

胖Web客户端对于可以确定客户端配置和浏览器版本的Web应用是最适合的客户端通过HTTP与服务器通信使用DHTMLJava applet或者ActiveX控件执行业务逻辑HTTP的无连接特性决定了客户端脚本ActiveX控件和Java Applet只能同客户端对象进行交互显示了构架中对象之间的关系

客户端显示接收的页面时执行嵌入的脚本这些脚本通常可以在不同的线程中执行通过DOM接口与页面内容进行交互

Web传输

Web传输模式除了使用HTTP负责客户端和服务器的通信之外还可以使用IIOP和DCOM等协议以支持分布式对象系统Web页面通过远程对象桩和远程对象传输协议与远程对象服务器通信由服务器管理远程业务对象的生命周期向客户端对象提供服务显示了各组件之间的关系

远程对象桩是一个对象在客户端执行并与远程对象具有相同的接口当通过这个对象调用方法时这些方法被封装起来使用远程对象传输协议RMI/DCOM发送到远程对象服务器服务器解释请求实例化并调用实际对象实例中的方法

实际应用中往往根据业务需要综合使用上述构架在我们的研究所管理系统中综合采用了瘦Web客户端和Web传输构架客户端使用了JavaScript进行客户端验证把经过验证的数据提交服务器处理在数据的后台管理上采用了Web传输构架保持客户端与服务器的开放连接以便进行较长时间的较复杂的会话

UML 的 Web 应用扩展

UML(Unified Modeling Language)是一种通用的可视化建模语言适用于各种软件开发方法软件生命周期的各个阶段各种应用领域以及各种开发工具但在对Web应用进行建模时它的一些构件不能与标准UML建模元素一一对应因此必须对UML进行扩展

UML的三种核心扩展机制包括构造型标记值和约束其中最重要的扩展机制是构造型它不能改变原模型的结构但可以在模型元素上附加新的语义通常用《构造型名》来表示约束是模型元素中的语义关系定义了模型如何组织在一起通常用一对{}之间的字符串表示标记值是对模型元素特性的扩展大多数的模型元素都有与之关联的特性通常用带括号的字符串表示

Web页建模

Web页可能同时包含客户端脚本和服务器端脚本因此必须分别进行建模服务器端Web页面一般包含由服务器执行的脚本每一次被请求时都在服务器上组合更新业务逻辑状态返回给浏览器客户端Web页可能包含数据表现形式甚至业务逻辑由浏览器解释执行并可以与客户端组件相关联如Java AppletActiveX插件等两者之间通过定向关系相互关联这种关联关系的构造型为?build?

Web应用中的超级链接代表导航路径用构造型为?link?的关联关系表示标记值用于定义随超级链接请求传递的参数列表供服务器端Web页使用描述了Web页之间的关系

NET框架中大多数建立的是服务器端Web页经编译后生成HTML代码传递到客户端浏览器同时为了提高效率对于那些不包含业务逻辑的Web页NET框架中可以直接用HTML元素建立客户端Web页再建立起与对应的服务器端Web页之间的调用关系

表单建模

表单是Web页的基本输入机制包括<input><select> 和 <textarea>等输入元素

用《Form》构造型进行建模《Form》没有操作与之交互的操作是包含表单的Web页的特性它可以与作为输入控件的 Applet或ActiveX 控件关联还可以把表单内容提交到服务器进行处理描述了含有表单的客户端Web页与服务器的交互过程

组件建模

Web应用中的组件分为服务器端组件和客户端组件两类服务器端较复杂的业务逻辑通常由中间层完成包括一组封装了所有业务逻辑的已编译好的组件因此使用中间层不仅可以提高性能而且可以共享整个应用的业务功能客户端Web页中常见的组件是Java Applet和ActiveX利用它们访问浏览器和客户端的各种资源实现HTML无法实现的功能

Web应用扩展定义了《static page》和《dynamic page》两个抽象组件构造型《static page》实现客户端组件《dynamic page》的主要任务是在运行时系统的物理文件和逻辑视图中的逻辑表现之间提供映射和图分别表示这两种组件实现的逻辑视图

框架建模

Web应用扩展定义了构造型《frameset》和《target》以及关联关系构造型《targeted link》来实现对框架的建模《frameset》直接映射到HTML的<frameset>标记《target》表示当前Web页引用的其它Web页或框架《targeted link》是指向另一个Web页的超级链接但它要在特定目标中才能提供显示了论文管理的框架模型

基于 NET 框架的 Web 应用开发

NET框架是一种基于通用语言的编程框架提供了崭新的编程模型WebForm模型和WebService模型提供了完善的基础类库数据库访问技术ADONET和网络开发技术ASPNET为Web应用的开发提供了强有力的支持

Web页的实现

NET框架提供了WebForm开发模型利用内嵌的各种服务器组件来生成服务器端Web页它可以包含一些重要的页面元素用户控件或者自定义控件等用户控件User Control在NET框架中是以ascx为扩展名的文件可以在多个Web页面中使用实现代码的重用自定义控件Custom Control是在NET中创建或在原有控件上进行修改添加新功能以实现特定需求的控件可以被多个应用程序调用

Web页导航方式

NET框架中的页面导航方式体现了Web页之间的关系可以用下列四种方式实现

)超级链接 使用HTML超链接控件或HyperLink控件可以实现页面之间的链接其中HyperLink服务器控件允许在代码中改变其NavigateUrl属性从而构造出具体目标可根据应用的当前状态动态变化的超链接

)用ResponseRedirect 实现 当ResponseRedirect( )方法被调用时创建HTTP应答

其中指出了状态代码(表示目标已经改变)和新的目标URL浏览器接收到该应答发出一个对新URL的请求 即重定向操作发生在客户端涉及到两次与服务器的通信

)用ServerTransfer 实现 这种方法把执行流程从当前的ASPX页面转到同一服务器上的另一个ASPX页面但新的页面仍使用前一页面创建的应答流 浏览器中的URL不会改变重定向完全在服务器端进行因此这种方法能够避免不必要的网络通信获得较好的性能和浏览效果

)用ServerExecute 实现 此方法允许当前的ASPX页面执行同一服务器上的指定ASPX页面指定的ASPX页面执行完毕后控制流程返回原页面中发出ServerExecute( )调用的位置被调用页面能够访问调用页面的表单数据和查询字符串集合默认情况下被调用页面的输出追加到当前应答流但是ServerExecute( )方法有一个重载的方法允许通过一个TextWriter对象获取被调用页面的输出而不是直接追加到输出流这样在调用页面中可以方便地调整被调用页面输出结果的位置

数据库操作

数据库处于Web应用的最底层存放系统数据和部分后台数据库逻辑如存储过程触发器等它与业务逻辑层和用户界面分开易于管理和维护执行效率高安全性能好

)Oracle数据库操作 NET框架提供了SystemDataOracleClient和SystemDataOleDb 命名空间实现对Oracle数据库的支持其中前者的针对性较强本文的实例中使用了此命名空间 数据库连接字符串为连接数据库提供必要的参数通常保存在配置文件nfig中以简化代码实现和便于部署 Web应用中对数据库的操作频繁通常情况下把对数据库的各种操作集成在一个数据库操作类中在需要进行数据库操作的地方只需调用此类的各种方法即可

)Oracle数据库中LOB对象的存取 Web应用中的二进制文件图片大段文本等在数据库中的存取通常都要用大对象(LOB)实现NET框架提供了OracleLob类来完成对Oracle中BLOBCLOBNCLOB等数据类型的操作Oracle中实现大段文本存入CLOB字段的过程可以表示为

①用SQL语句向数据库中添加一个CLOB字段为empty_clob( )的记录

②开始事务锁定刚加入的记录把要写入CLOB字段的内容用流或CLOB的Write( )方法写入

③提交事务完成对CLOB字段的写入

Oracle中对CLOB类型数据的读取过程相对简单不需要对数据库记录进行锁定

①执行SQL 语句获得OracleDataReader对象

②用OracleDataReader对象的GetOracleLob( )方法得到

要读取的CLOB字段的OracleLob对象

③用OracleLob对象的Read( )方法或流读出CLOB字段的内容

结束语

系统建模对软件开发过程相当重要UML的扩展机制为Web应用的建模提供了必要的支持NET框架为Web应用的开发提供了很好的解决方案本文首先分析了常见的Web应用的构架模式然后把Web应用的UML建模与基于NET框架的开发结合起来提出了对Web应用中的各种对象进行建模的方法对开发过程中的相关重要问题进行了阐述并针对现有文献中较少涉及的Oracle数据库的操作提供了详细的解决步骤希望能起到抛砖引玉的作用

上一篇:.net程序中资源文件的保护办法探讨

下一篇:IIS 7完全攻略之.NET角色配置