熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Web應用的UML建模與.NET框架開發

2013-11-13 09:52:49  來源: .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數據庫的操作提供了詳細的解決步驟希望能起到拋磚引玉的作用


From:http://tw.wingwit.com/Article/program/net/201311/11846.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.