亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ASP.NET的Web表單自動(dòng)生成引擎

        2015-11-08 07:48:53李維佳汪洪江
        關(guān)鍵詞:表單配置文件引擎

        李維佳 汪洪江

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

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

        基于ASP.NET的Web表單自動(dòng)生成引擎

        李維佳1汪洪江2

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

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

        針對(duì)信息系統(tǒng)開(kāi)發(fā)中Web表單頁(yè)面開(kāi)發(fā)工作量大、重復(fù)性高和內(nèi)容結(jié)構(gòu)相似的特點(diǎn),提出了一種基于ASP.NET的自定義頁(yè)面生成引擎。該引擎基于XML格式的配置文件動(dòng)態(tài)生成Web表單頁(yè)面,同時(shí)提供對(duì)表單的設(shè)計(jì)、展示、讀取和操作的支持。在實(shí)際應(yīng)用中,該引擎有效降低了信息系統(tǒng)開(kāi)發(fā)和維護(hù)成本,且由于引擎表單元素重用的特點(diǎn),引擎生成的Web表單頁(yè)面具有很高的穩(wěn)定性。

        ASP.NET 自定義頁(yè)面 自動(dòng)生成引擎

        1 引言

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

        2 相關(guān)技術(shù)介紹

        2.1Asp.NET技術(shù)

        ASP.NET是由微軟在.NET框架中提供,用來(lái)開(kāi)發(fā)Web應(yīng)用程序的類(lèi)庫(kù),包含在System.Web命名空間中,并提供網(wǎng)頁(yè)處理、擴(kuò)充以及HTTP通道的應(yīng)用程序和通信處理等工作[2]。嚴(yán)格意義上講,ASP.NET并不是一門(mén)編程語(yǔ)言,是有.NET提供的開(kāi)發(fā)平臺(tái)。

        在ASP.NET運(yùn)行的時(shí)候,經(jīng)常會(huì)有網(wǎng)頁(yè)的來(lái)回動(dòng)作(round-trip),在ASP.NET中稱(chēng)為PostBack。開(kāi)發(fā)人員可以用Page.IsPostBack來(lái)判斷是否為第一次運(yùn)行,它可以保證ASP. NET的控件事件只會(huì)運(yùn)行一次,客戶(hù)端和服務(wù)器之間的通訊是無(wú)狀態(tài)的和斷續(xù)的[3]。但是為了保證用戶(hù)體驗(yàn),需要使用戶(hù)感覺(jué)到這是一個(gè)連續(xù)執(zhí)行的過(guò)程。為了獲得連續(xù)性效果,頁(yè)面開(kāi)發(fā)人員必須知道頁(yè)面的執(zhí)行順序。開(kāi)發(fā)人員需要了解:在頁(yè)面生命周期的各個(gè)階段,可以進(jìn)行哪些操作,頁(yè)面生命周期中各階段的概述如表1所示。

        表1 ASP.NET頁(yè)面生命周期

        2.2Web表單

        Web表單相當(dāng)于傳統(tǒng)Web頁(yè)面,二者之間的區(qū)別在于Web表單的所有頁(yè)面元素是由表單元素構(gòu)成的,可以說(shuō)Web表單是由表單元素所構(gòu)成的集合[4]。在企業(yè)信息系統(tǒng)中,Web表單與企業(yè)的業(yè)務(wù)流程相關(guān),是企業(yè)中的紙質(zhì)流程單的電子化表現(xiàn),一般用于收集和展示用戶(hù)填寫(xiě)的各種數(shù)據(jù)[5],如圖1所示。Web表單通常由兩部分組成:表頭和列表。表頭用來(lái)描述該表單的總體信息,例如:名稱(chēng)、編號(hào)和負(fù)責(zé)人等信息。列表用來(lái)展示表單細(xì)節(jié),例如:處理流程及每步流程的處理細(xì)節(jié)。表單元素是組成Web表單的基本單元,它是一個(gè)抽象的概念,用于描述用戶(hù)填寫(xiě)的一個(gè)數(shù)據(jù)項(xiàng),而具體的實(shí)現(xiàn)是通過(guò)ASP.NET中的Web服務(wù)器控件來(lái)表示的。

        圖1 Web表單示例

        3 解決方案

        3.1設(shè)計(jì)思想

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

        現(xiàn)有的開(kāi)發(fā)方式是為這些大體相同的表單開(kāi)發(fā)不同的Web頁(yè)面。在實(shí)際應(yīng)用中,系統(tǒng)的需求和數(shù)據(jù)的結(jié)構(gòu)會(huì)較為頻繁的變化。Web表單是根據(jù)數(shù)據(jù)表的列來(lái)設(shè)計(jì)和實(shí)現(xiàn)的,用戶(hù)要填寫(xiě)對(duì)應(yīng)于數(shù)據(jù)表列的信息,所以數(shù)據(jù)結(jié)構(gòu)的變化,必然導(dǎo)致Web表單的改變。這些變化為系統(tǒng)開(kāi)發(fā)和維護(hù)人員帶來(lái)了大量的重復(fù)性勞動(dòng)。為了減少這種重復(fù)低效的工作,設(shè)計(jì)和實(shí)現(xiàn)了基于ASP.NET的Web表單自動(dòng)生成引擎。該引擎在統(tǒng)一的Web表單框架的基礎(chǔ)上,通過(guò)讀取不同的配置文件,生成不同的Web表單。另外Web表單是信息系統(tǒng)的重要組成部分,所以引擎考慮了與現(xiàn)有開(kāi)發(fā)環(huán)境的集成,可以方便快捷地嵌入ASP.NET環(huán)境中,最后引擎還可以靈活調(diào)整以適應(yīng)實(shí)際應(yīng)用中的復(fù)雜情景。

        3.2設(shè)計(jì)方案

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

        圖2 引擎架構(gòu)示意圖

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

        View層負(fù)責(zé)將引擎生成的Web表單頁(yè)面調(diào)整到用戶(hù)最終見(jiàn)到的效果。Control層生成的Web表單沒(méi)有格式,只是將Web表單所需的元素羅列到頁(yè)面中。View層按照配置文件的描述對(duì)表單元素進(jìn)行排序和格式化,并添加用戶(hù)輸入驗(yàn)證。最后再根據(jù)信息系統(tǒng)的界面風(fēng)格,采用對(duì)應(yīng)的布局文件美化頁(yè)面,提高用戶(hù)體驗(yàn)。View層處理前后如圖3所示。

        圖3 View層處理前后對(duì)比

        4 引擎關(guān)鍵技術(shù)

        4.1表單對(duì)象抽象

        圖4 Workitem和Worksheet E-R圖

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

        4.2配置文件設(shè)計(jì)

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

        表2 表單元素關(guān)鍵屬性

        4.3信息采集表單元素實(shí)現(xiàn)

        信息采集是Web表單的一項(xiàng)重要功能。根據(jù)業(yè)務(wù)需求不同,數(shù)據(jù)錄入形式多種多樣。通過(guò)分析信息系統(tǒng)中的表單數(shù)據(jù)錄入的方式和特點(diǎn),總結(jié)出了5種常用的信息采集表單元素。針對(duì)這5種表單元素引擎采用設(shè)計(jì)模式中的抽象工廠(chǎng)方式[6],根據(jù)配置文件向頁(yè)面動(dòng)態(tài)創(chuàng)建并添加到Web表單中,設(shè)計(jì)UML圖,如圖5所示。IFormElement包含了表單對(duì)象的創(chuàng)建、賦值和取值等操作,各表單元素類(lèi)實(shí)現(xiàn)該接口,并通過(guò)反射+配置文件的方式向IFormElement接口編程。通過(guò)該方式可以在后續(xù)開(kāi)發(fā)中靈活的增加表單元素類(lèi)型,逐步完善該引擎。

        圖5 表單元素UML圖

        4.4頁(yè)面排版

        頁(yè)面排版用JavaScript實(shí)現(xiàn),引擎所生成Web表單元素是以HTML格式呈現(xiàn)給系統(tǒng)用戶(hù)。引擎對(duì)HTML中的元素ID是按照預(yù)先定義好的規(guī)則命名。根據(jù)不同信息系統(tǒng)的界面和排版風(fēng)格,在瀏覽器端對(duì)符合規(guī)則的HTML元素進(jìn)行排版。這種處理方式使引擎具有如下優(yōu)點(diǎn):降低了實(shí)現(xiàn)難度和代碼復(fù)雜度、保證了引擎的適應(yīng)性及提高系統(tǒng)運(yùn)行效率。

        4.5數(shù)據(jù)操作策略

        引擎對(duì)Web表單的操作分為4種類(lèi)型:添加表單元素、設(shè)置表單元素?cái)?shù)據(jù)、讀取表單元素?cái)?shù)據(jù)和修改表單元素?cái)?shù)據(jù)。結(jié)合表單操作類(lèi)型和ASP.NET頁(yè)面生命周期特點(diǎn),引擎采用不同的策略:①添加表單元素在Web表單所在頁(yè)面的OnInit()方法中完成;②設(shè)置表單元素?cái)?shù)據(jù)在頁(yè)面的OnLoad()方法中完成;③讀取表單元素?cái)?shù)據(jù)在頁(yè)面對(duì)應(yīng)的動(dòng)作事件(如按鈕點(diǎn)擊等)中完成;④修改表單元素?cái)?shù)據(jù)在頁(yè)面動(dòng)作事件結(jié)合彈窗操作來(lái)完成。

        5 結(jié)束語(yǔ)

        目前該引擎已經(jīng)應(yīng)用到某制造執(zhí)行系統(tǒng)的開(kāi)發(fā)中,通過(guò)引擎+配置文件的方式,滿(mǎn)足了該系統(tǒng)6種類(lèi)型表單的創(chuàng)建、編輯、錄入和展示的功能需求。同時(shí)該引擎也可以靈活應(yīng)對(duì)客戶(hù)需求不確定的特點(diǎn),大大縮短了Web表單開(kāi)發(fā)時(shí)間,在后續(xù)工作中會(huì)不斷增加引擎所支持的表單元素類(lèi)型,以滿(mǎn)足更多的系統(tǒng)需求。

        [1]吳賀,及俊川,李新,等.基于XML的動(dòng)態(tài)表單快速生成技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010(9):60-63.

        [2]Worley S.ASP.NET技術(shù)內(nèi)幕[M].北京:人民郵電出版社,2002.

        [3]李明剛,肖建.ASP.NET Web站點(diǎn)高級(jí)編程范例[M].北京,清華大學(xué)出版社,2004.

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

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

        [6]程杰.大話(huà)設(shè)計(jì)模式[M].北京:清華大學(xué)出版社,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

        猜你喜歡
        表單配置文件引擎
        提示用戶(hù)配置文件錯(cuò)誤 這樣解決
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        搭建簡(jiǎn)單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機(jī)root密碼怎么辦
        淺談網(wǎng)頁(yè)制作中表單的教學(xué)
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        無(wú)形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
        基于Infopath實(shí)現(xiàn)WEB動(dòng)態(tài)表單的研究
        電子世界(2012年24期)2012-12-17 10:49:06
        日本精品αv中文字幕| 亚洲av午夜福利精品一区不卡| 中文字幕一区二区av| 久久性爱视频| 无码专区天天躁天天躁在线| 久久久久久久综合日本| 国产精品美女主播在线| 欧美颜射内射中出口爆在线 | 国产极品美女高潮抽搐免费网站 | 亚洲乱码中文字幕在线| 天天躁日日躁狠狠久久| 欧美中文在线观看| 日韩av中文字幕一卡二卡| 亚洲一区二区三区乱码在线中国| 欧美成人片在线观看| 手机看片福利盒子久久青| 色婷婷亚洲一区二区在线| 丝袜美腿一区二区国产| 国产伦久视频免费观看视频| 伊香蕉大综综综合久久| 亚洲av毛片在线播放| 成人免费无码大片a毛片抽搐色欲 日本动漫瀑乳h动漫啪啪免费 | 亚洲一区二区三区日本久久九 | 曰韩亚洲av人人夜夜澡人人爽| 亚洲 都市 校园 激情 另类| 久久精品国产一区二区涩涩| 粉嫩国产av一区二区三区| 亚洲成av人片在线观看麦芽| 亚洲日韩精品欧美一区二区三区不卡 | 亚洲国产色婷婷久久精品| 猫咪av成人永久网站在线观看| 国产目拍亚洲精品一区二区| 日本女优中文字幕在线观看| 色佬精品免费在线视频| 精品少妇人妻av一区二区| 高清国产美女av一区二区| 国产精品亚洲一区二区三区在线看 | 日本人妻伦理在线播放| 97精品一区二区视频在线观看| 91天堂素人精品系列全集亚洲 | 亚洲字幕av一区二区三区四区|