999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASP.NET的Web表單自動生成引擎

2015-11-08 07:48:53李維佳汪洪江
計算機與網絡 2015年17期
關鍵詞:引擎頁面數據庫

李維佳 汪洪江

(1中國電子科技集團公司第五十四研究所,河北 石家莊 050002)

(2遼寧省高中等教育考試招生委員會辦公室,遼寧 沈陽 110031)

基于ASP.NET的Web表單自動生成引擎

李維佳1汪洪江2

(1中國電子科技集團公司第五十四研究所,河北石家莊050002)

(2遼寧省高中等教育考試招生委員會辦公室,遼寧沈陽110031)

針對信息系統開發中Web表單頁面開發工作量大、重復性高和內容結構相似的特點,提出了一種基于ASP.NET的自定義頁面生成引擎。該引擎基于XML格式的配置文件動態生成Web表單頁面,同時提供對表單的設計、展示、讀取和操作的支持。在實際應用中,該引擎有效降低了信息系統開發和維護成本,且由于引擎表單元素重用的特點,引擎生成的Web表單頁面具有很高的穩定性。

ASP.NET 自定義頁面 自動生成引擎

1 引言

在企業信息化飛速發展的進程中,企業對于信息系統的功能要求越來越高。信息系統開發中通常會遇到一個令開發者頭疼的問題,就是需求是不斷變化的,而最常見的是對表單數據項的更改。傳統的表單開發方法,是將定制好的表單以硬編碼的方式固化在系統中。當業務需求發生變更時,必須對原來系統的數據結構及功能進行代碼級的改動。每次需求變化都要更改程序,更改數據庫表結構,重新對程序進行測試,工作量大,導致系統不易維護[1]。如果表單數據項變化,只更改表單配置文件,而不更改底層代碼和數據底表,系統會變得更易維護。因此本文設計和實現了基于ASP.NET的Web表單自動生成引擎。該引擎首先解析XML格式的Web表單內容配置文件,動態生成表單元素并將其添加到Web表單中。實際應用表明,該引擎有效降低了信息系統開發和維護成本。

2 相關技術介紹

2.1Asp.NET技術

ASP.NET是由微軟在.NET框架中提供,用來開發Web應用程序的類庫,包含在System.Web命名空間中,并提供網頁處理、擴充以及HTTP通道的應用程序和通信處理等工作[2]。嚴格意義上講,ASP.NET并不是一門編程語言,是有.NET提供的開發平臺。

在ASP.NET運行的時候,經常會有網頁的來回動作(round-trip),在ASP.NET中稱為PostBack。開發人員可以用Page.IsPostBack來判斷是否為第一次運行,它可以保證ASP. NET的控件事件只會運行一次,客戶端和服務器之間的通訊是無狀態的和斷續的[3]。但是為了保證用戶體驗,需要使用戶感覺到這是一個連續執行的過程。為了獲得連續性效果,頁面開發人員必須知道頁面的執行順序。開發人員需要了解:在頁面生命周期的各個階段,可以進行哪些操作,頁面生命周期中各階段的概述如表1所示。

表1 ASP.NET頁面生命周期

2.2Web表單

Web表單相當于傳統Web頁面,二者之間的區別在于Web表單的所有頁面元素是由表單元素構成的,可以說Web表單是由表單元素所構成的集合[4]。在企業信息系統中,Web表單與企業的業務流程相關,是企業中的紙質流程單的電子化表現,一般用于收集和展示用戶填寫的各種數據[5],如圖1所示。Web表單通常由兩部分組成:表頭和列表。表頭用來描述該表單的總體信息,例如:名稱、編號和負責人等信息。列表用來展示表單細節,例如:處理流程及每步流程的處理細節。表單元素是組成Web表單的基本單元,它是一個抽象的概念,用于描述用戶填寫的一個數據項,而具體的實現是通過ASP.NET中的Web服務器控件來表示的。

圖1 Web表單示例

3 解決方案

3.1設計思想

通過總結企業信息系統開發經驗可以發現,Web表單是系統開發的核心。Web表單主要有2個用途:收集和展示數據。B/S架構的系統中:數據收集通過HTML頁面輸入元素(例如:文本框和下拉列表)并配合彈窗等動作完成;數據展示則通過HTML頁面元素配合表格(例如:Table和GridView)的方式;Web表單還需要支持對數據的增刪改等操作。信息系統中包含大量的Web表單,對這些表單內容進一步分析發現:不同的Web表單在數據內容和結構上具有很高的相似度,只是在某些屬性上有所取舍而形成了不同的表單。

現有的開發方式是為這些大體相同的表單開發不同的Web頁面。在實際應用中,系統的需求和數據的結構會較為頻繁的變化。Web表單是根據數據表的列來設計和實現的,用戶要填寫對應于數據表列的信息,所以數據結構的變化,必然導致Web表單的改變。這些變化為系統開發和維護人員帶來了大量的重復性勞動。為了減少這種重復低效的工作,設計和實現了基于ASP.NET的Web表單自動生成引擎。該引擎在統一的Web表單框架的基礎上,通過讀取不同的配置文件,生成不同的Web表單。另外Web表單是信息系統的重要組成部分,所以引擎考慮了與現有開發環境的集成,可以方便快捷地嵌入ASP.NET環境中,最后引擎還可以靈活調整以適應實際應用中的復雜情景。

3.2設計方案

Web表單的用途是對數據的收集和展示,因此引擎在整體設計上借鑒了信息系統的設計思路采用經典MVC(Model、View和Control)三層架構,如圖2所示。

圖2 引擎架構示意圖

Model層負責解析表單配置文件,并將配置信息提供給View層和Control層。每個Web表單對應2個XML格式的配置文件(SheetHeader和SheetDetail),分別描述表單的表頭和列表部分。SheetHeader將具有數據采集功能的表單元素(文本框、下拉列表和彈出選擇窗口等)與數據庫中對應表的字段建立聯系。SheetDetail將列Table中的列與數據庫中對應的字段建立聯系。Control層負責表單元素的動態生成及操作。Web表單的表頭和列表分別動態生成:在生成表頭時,根據Model層提供的表單元素詳細信息,動態生成表單元素并添加到Web頁面中;生成列表時引擎將從數據庫中獲取的數據添加到網頁Table中對應的字段。Control層對表單元素的操作包括讀取用戶輸入和將數據庫中的值賦值到對應的表單元素中。

View層負責將引擎生成的Web表單頁面調整到用戶最終見到的效果。Control層生成的Web表單沒有格式,只是將Web表單所需的元素羅列到頁面中。View層按照配置文件的描述對表單元素進行排序和格式化,并添加用戶輸入驗證。最后再根據信息系統的界面風格,采用對應的布局文件美化頁面,提高用戶體驗。View層處理前后如圖3所示。

圖3 View層處理前后對比

4 引擎關鍵技術

4.1表單對象抽象

圖4 Workitem和Worksheet E-R圖

目前信息系統開發在數據層通常采用ORM工具來建立程序操作的對象和數據庫中的表之間的應關系。同時引擎的目的是通過修改配置文件的方式來滿足系統需求的更改,從而降低甚至避免修改數據庫表結構、程序代碼和重新測試所帶來的高昂成本。因此結合數據庫和信息系統的實際應用特點,對所有的類型的表單進行分析,抽象并建立統一的表單對象,并以此為依據在數據庫中創建實體對象表。以制造執行系統中的Web表單(圖1所示)為例,結合Model層的設計方式,表單對象也由Worksheet(表頭對象)和Workitem(列表對象)兩部分組成。綜合分析在實際中各種場景下的應用對2個對象進行建模,同時為后期需求或某些特殊應用預留若干屬性。該表單對象對應的數據庫E-R圖如圖4所示。

4.2配置文件設計

表單的生成和最終頁面的展現都基于配置文件,同時表單是由表單元素組成,因此配置文件需要能夠準確和完整地描述Web表單中的表單元素,其中幾個常用關鍵屬性如表2所示。一個表單由Worksheet和Workitem兩種對象組成。2種對象通過對同一配置文件采用不同的解析方式可以得到不同的表單對象,增加了表單的復用性,減少了配置文件數量,提高了利用率。

表2 表單元素關鍵屬性

4.3信息采集表單元素實現

信息采集是Web表單的一項重要功能。根據業務需求不同,數據錄入形式多種多樣。通過分析信息系統中的表單數據錄入的方式和特點,總結出了5種常用的信息采集表單元素。針對這5種表單元素引擎采用設計模式中的抽象工廠方式[6],根據配置文件向頁面動態創建并添加到Web表單中,設計UML圖,如圖5所示。IFormElement包含了表單對象的創建、賦值和取值等操作,各表單元素類實現該接口,并通過反射+配置文件的方式向IFormElement接口編程。通過該方式可以在后續開發中靈活的增加表單元素類型,逐步完善該引擎。

圖5 表單元素UML圖

4.4頁面排版

頁面排版用JavaScript實現,引擎所生成Web表單元素是以HTML格式呈現給系統用戶。引擎對HTML中的元素ID是按照預先定義好的規則命名。根據不同信息系統的界面和排版風格,在瀏覽器端對符合規則的HTML元素進行排版。這種處理方式使引擎具有如下優點:降低了實現難度和代碼復雜度、保證了引擎的適應性及提高系統運行效率。

4.5數據操作策略

引擎對Web表單的操作分為4種類型:添加表單元素、設置表單元素數據、讀取表單元素數據和修改表單元素數據。結合表單操作類型和ASP.NET頁面生命周期特點,引擎采用不同的策略:①添加表單元素在Web表單所在頁面的OnInit()方法中完成;②設置表單元素數據在頁面的OnLoad()方法中完成;③讀取表單元素數據在頁面對應的動作事件(如按鈕點擊等)中完成;④修改表單元素數據在頁面動作事件結合彈窗操作來完成。

5 結束語

目前該引擎已經應用到某制造執行系統的開發中,通過引擎+配置文件的方式,滿足了該系統6種類型表單的創建、編輯、錄入和展示的功能需求。同時該引擎也可以靈活應對客戶需求不確定的特點,大大縮短了Web表單開發時間,在后續工作中會不斷增加引擎所支持的表單元素類型,以滿足更多的系統需求。

[1]吳賀,及俊川,李新,等.基于XML的動態表單快速生成技術[J].計算機系統應用,2010(9):60-63.

[2]Worley S.ASP.NET技術內幕[M].北京:人民郵電出版社,2002.

[3]李明剛,肖建.ASP.NET Web站點高級編程范例[M].北京,清華大學出版社,2004.

[4]林向.Web表單可視化定制原理研究[J].電腦開發與應用. 2013(6):34-36.

[5]徐鵬,王克宏.基于Browser/Webserver模式的電子表單系統[J].計算機科學.2001(1):106-110.

[6]程杰.大話設計模式[M].北京:清華大學出版社,2008.

An Automatic Generation Engine for Web Form Based on ASP. NET

LI Wei-jia1,WANG Hong-jiang2
(1 The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
(2 Office,Liaoning Enrollment and Examination Commission of Higher and Secondary Education,Shenyang Liaoning 110031,China)

Aiming at the characteristics of high workload,high repeatability and similar structure in web forms development,this paper puts forward an automatic generation engine for web form based on ASP.Net.This engine generates web form page dynamically based on XML configuration file.At the same time it provides such capabilities as form design,display,read and operation.In practical applications,the engine can significantly reduce the cost of development and maintenance for information system.Besides,because of the characteristic of reuse,the web forms generated by the engine have higher stability.

ASP.NET;custom webpage;automatic generation engine

TP311

A

1008-1739(2015)17-60-4

定稿日期:2015-08-12

猜你喜歡
引擎頁面數據庫
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 欧美日韩一区二区在线免费观看 | 日本欧美中文字幕精品亚洲| 四虎永久在线精品国产免费 | 亚洲日本韩在线观看| 国产黄色免费看| 香蕉视频在线精品| 久久综合九九亚洲一区| 99精品热视频这里只有精品7| 伊人婷婷色香五月综合缴缴情| 女人18毛片水真多国产| 亚洲综合经典在线一区二区| 波多野结衣第一页| 国产91丝袜在线播放动漫| 久久久成年黄色视频| 无码有码中文字幕| 国产精品第一区| 精品久久久无码专区中文字幕| 亚洲美女高潮久久久久久久| 亚洲综合激情另类专区| 国产91精品调教在线播放| 中文字幕永久视频| 丁香六月激情婷婷| 国产在线精品99一区不卡| 国产精品久久自在自线观看| 亚洲aaa视频| 熟妇无码人妻| 久久综合五月婷婷| 久久精品91麻豆| 久热99这里只有精品视频6| 777午夜精品电影免费看| 久久天天躁狠狠躁夜夜2020一| 国产一区二区三区在线观看视频 | 黄色网在线免费观看| 视频国产精品丝袜第一页| 久久成人国产精品免费软件| 人妻丰满熟妇啪啪| 亚洲视频在线网| 99久久精品免费观看国产| 国产门事件在线| lhav亚洲精品| 国产不卡国语在线| 在线高清亚洲精品二区| 亚洲天堂免费观看| 久久午夜夜伦鲁鲁片无码免费| 中文字幕在线免费看| 成人无码区免费视频网站蜜臀| 亚洲无线一二三四区男男| 国产精品 欧美激情 在线播放| 97国产精品视频自在拍| 一级黄色网站在线免费看| 国产99热| 尤物国产在线| 99热这里只有免费国产精品 | 国产视频欧美| 干中文字幕| 久久伊人久久亚洲综合| 国产高潮流白浆视频| 久视频免费精品6| 日韩精品专区免费无码aⅴ| 91精品综合| 黄色网站不卡无码| 久久熟女AV| 亚洲婷婷丁香| 99热这里只有精品国产99| 9啪在线视频| 国产自产视频一区二区三区| 国产日韩丝袜一二三区| 中文字幕久久亚洲一区| 91亚瑟视频| 亚洲一区精品视频在线| 亚洲伦理一区二区| 欧美午夜视频| 国产精品亚洲日韩AⅤ在线观看| 欧美在线网| 久久综合AV免费观看| 日韩午夜福利在线观看| 97精品国产高清久久久久蜜芽| 成人毛片免费观看| 香蕉eeww99国产在线观看| 色综合久久88色综合天天提莫 | 亚洲欧美综合另类图片小说区| 国产丝袜啪啪|