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

.Net下基于數據庫組件的ORM中間件的設計與實現

2016-09-13 07:25:25郭亞平馬新春
電子設計工程 2016年3期
關鍵詞:數據庫用戶設計

郭亞平,馬新春,張 麗

(新疆電子研究所有限公司 新疆 烏魯木齊 830049)

.Net下基于數據庫組件的ORM中間件的設計與實現

郭亞平,馬新春,張 麗

(新疆電子研究所有限公司 新疆 烏魯木齊830049)

文中介紹.Net開發環境下,通過自定義數據庫訪問控件和對象關系映射技術(Object Relational Mapping,簡稱ORM)實現的一種全新的數據持久層中間件。該中間件實現數據庫表對象到用戶UI控件的自動映射,在降低對開發人員數據庫開發技術掌握水平要求的同時,大大提高開發效率,使開發人員可以致力于后臺邏輯與用戶UI設計,為用戶帶來更好的體驗。本中間件通過我公司在新疆維吾爾自治區開發的多個管理信息系統(MIS)的應用與實踐,已經驗證了其快捷性、穩定性和可伸縮性,能夠有效的提高軟件開發效率。

.Net;數據庫控件;對象關系映射;中間件;管理信息系統

管理信息系統 (Management Information System,MIS)是一個以人為主導,利用計算機硬件、軟件、網絡通信設備以及其他辦公設備,進行信息的收集、傳輸、加工、儲存、更新、拓展和維護的系統[1]。是當前企事業以及政府信息化的一種主流的系統軟件模式。在管理信息系統中,通過數據訪問層操作數據庫實現對信息的存儲訪問是其最基本而且必不可少的組成部分。用傳統的方法開發數據訪問層,存在編碼工作重復、編碼質量不一、代碼可移植性差、可重用性低、難以維護等問題。對象關系映射(Object Relational Mapping,ORM)是通過使用描述對象和數據庫之間映射的元數據,將應用中的對象自動持久化到關系數據庫中,從而可以有效解決上述傳統數據訪問層存在的問題。目前已有的.Net下的幾種ORM中間件解決方案,如Nhibernate、Subsonic、Genome等,分別存在配置使用復雜、靈活性差以及開發價格成本昂貴的缺點。

筆者曾經有過使用 Delphi開發 MIS的經驗,對使用Delphi下使用Data Controls組件開發數據庫管理信息系統的靈活和便捷深有體會。針對以上問題,筆者認為采用類似于Delphi下數據庫控件技術實現ORM持久層不失為一種快捷而且靈活的方案。本文從對數據庫管理信息系統的數據訪問層一般實現方法的總結和分析出發,介紹和討論了ORM技術的原理、實現方法和技術優勢。在以上理論研究的基礎上,本文從用戶需求出發,使用組件技術和可擴展接口技術,設計實現了一個.NET平臺下的基于ORM技術的跨數據庫的數據訪問中間件。該中間件以自定義數據庫控件接口標準為基礎,通過ORM技術屏蔽不同數據庫和數據對象間的差異,提供一個通用的數據訪問層中間件,實現對用戶UI數據與數據庫關系數據的自動映射,最大程度的縮減代碼編制人員編寫數據訪問層的代碼數量,有效的提高管理信息系統開發過程中的代碼編制效率。

1 ORM技術簡介

對象關系映射(Object Relational Mapping,ORM)是通過使用描述對象和數據庫之間映射的元數據,將數據庫應用中的對象自動持久化到關系數據庫中。本質上就是將數據從一種形式轉換到另外一種形式。

ORM技術是跟隨著面向對象的軟件開發方法發展而產生的。面向對象的開發方法是當前企業級應用開發環境中的主流開發方法[2]。關系數據庫是企業級應用環境中永久存放數據的主流數據存儲系統[3]。對象和關系數據是業務實體的兩種抽象表現形式,業務實體在內存中表現為對象,在數據庫中表現為關系數據。內存中的對象之間存在關聯和繼承關系,而在關系數據庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)中間件主要用于實現對象到關系數據庫關系數據的映射。

實際應用中,我們通過ORM中間件在關系型數據庫和業務實體對象之間作一個映射,通過中間件屏蔽不同數據庫的差異,這樣我們在具體編寫應用邏輯的時候,就不需要再去編寫復雜的SQL語句,只要通過操作ORM中間件就可以實現對象到關系的持久化任務。從而大大降低對開發人員數據庫開發技術掌握水平的要求,提高開發效率。

2 中間件技術

中間件(Middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間[4]。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。

ORM中間件介于底層數據庫與上層管理信息系統應用之間,以屏蔽不同數據庫之間的差異,支持數據庫管理信息系統的開發、運行時共享,保障數據庫管理信息系統的可靠部署與管理等內容為主要目標。為數據庫管理信息系統提供了快速構建的架構支撐的工具與手段,對于數據庫管理信息系統的規范化和標準化具備凝煉作用。中間件結構示意圖如圖1所示。

圖1 中間件功能示意圖Fig.1 Middleware function diagram

3 .Net開發環境

.Net是微軟的新一代技術平臺,為敏捷商務構建互聯互通的應用系統,這些系統是基于標準的,聯通的,適應變化的,穩定的和高性能的。從技術的角度,一個.NET應用是一個運行于.Net Framework之上的應用程序[5]。

本中間件設計理念全部基于.Net開發平臺,屬于.Net開發技術在數據庫管理信息系統開發方面的應用拓展。本中間件設計理念針對于客戶端/服務器(C/S)和瀏覽器/服務器(B/ S)架構均適用。

4 數據庫控件設計概念

文中所述的數據庫控件是指滿足本中間件所規定的標準數據庫接口定義的控件。為充分利用已有的各種控件,本中間件規定了一種標準的數據庫控件接口,現有的各類系統控件以及第三方控件通過實現該接口即可成為數據庫控件,從而保證本中間件的開放性、兼容性和可擴展性。該接口的主要定義如下:

屬性:

1)DBField:控件對應數據到數據庫字段的映射。

2)AllowEmpty:是否允許控件為空。

3)DefalutValue:控件為空時候的默認值。

4)ValueType:控件值類型。

5)Format:控件值格式。

6)Caption:控件代表字段的中文含義。

方法:

1)CheckEmpty:檢查控件是否空值。

2)CheckFormat:檢查控件值格式。

3)GetValue:從控件取值。

4)SetValue:向控件賦值。

5)SetDefaultValue:為控件賦默認值。

事件:

A、TriggerValueChangedEvent:觸發控件值改變事件。

數據庫控件是本中間件的基礎。本中間件通過數據庫控件實現數據庫數據到用戶UI的自動映射,同時自動完成用戶UI控件數據到數據庫的持久化存儲功能,最大化的縮減數據訪問層的代碼編寫量。這里筆者只針對數據庫持久化的過程中的一對一模型接口設計做出了說明。一對多模型接口設計類似,在此筆者不再縟述。

5 ORM中間件的設計與實現

5.1ORM中間件的設計目標

ORM中間件的主要目的是提供一個獨立的、可復用的數據持久化解決方案[6]。數據庫管理信息系統編碼人員利用這個中間件通過簡單配置和屬性設定就可以完成用戶UI數據到數據庫的持久化工作,而基本不需要了解底層數據庫的的任何細節。在降低對開發人員技能掌握要求的同時,使開發人員從傳統數據訪問層代碼編寫過程中繁瑣的、機械的工作中解脫出來,致力于系統邏輯和用戶UI設計,在提高軟件開發效率的同時,能夠為用戶帶來更好的用戶體驗。

5.2ORM中間件功能需求

O/R Maping中間件主要功能特點如下:

1)中間件應忽略不同數據庫間的差異,通過定義標準數據庫訪問接口來提供對不同數據庫的擴展支持。

2)中間件應能夠根據目標數據庫準確的生成標準的增刪改sql語句,省去開發人員代碼重復編寫的麻煩。

3)開發人員通過簡單的定義即可完成數據庫關系數據到用戶界面的映射和采集工作,從而使程序員專注于業務邏輯處理。

4)支持單表、一對一以及一對多表間的數據處理工作,同時支持數據庫事務處理,保證不同表數據間的完整性。

5)提供豐富的事件處理接口,便于開發人員應對變化多樣的客戶端開發要求。

6)以組件、類的多態性和繼承性保證中間件的可擴展性和可伸縮性。

5.3ORM中間件結構設計

整個中間件由數據庫訪問層(Data Access Layer)、持久層(Persistent Layer)和由數據庫控件組成的UI設計層組成。如圖2所示。

其中數據訪問層主要類和接口設計如下:

DatabaseFactory類:數據庫工廠類,其主要作用是根據目標數據庫的不同產生不同的數據庫訪問類。

ISqlMaker接口:主要實現自動編寫目標數據庫的增刪改Sql語句。

DbOperator類:調用ISqlMaker結果實現對具體數據表的增刪改操作。

圖2 中間件結構設計示意圖Fig.2 Middleware design schematic

SortedListRow類:Dictionary類數據結構,類似于數據表的行對象,數據表對象以行對象集合SortedListRowCollection的形式展現。

持久層主要類和接口設計如下:

IDBControl接口:數據庫控件接口定義標準。

IDBControlsContainer接口:數據庫控件容器接口,該接口負責在數據訪問層和UI層之間傳輸數據。

DbTransactionController類:事務處理類,負責多個數據庫容器間數據持久化的事務統一性處理工作。

InputHelper類:UI數據有效性檢查及數據收集類,主要負責向用戶界面的數據控件收集數據以及賦值。

UI層主要包括各種實現了數據庫接口定義的系統控件、第三方控件以及自定義控件。

5.4ORM中間件主要類工作流程說明

中間件主要類工作流程如圖3所示。

圖3 中間件工作流程示意圖Fig.3 Middleware work flow diagram

如3圖中所示IDBControlsContainer容器接口類調用Input Helper類從符合IDBControl接口的數據庫控件獲取用戶數據,同時進行數據有效性驗證,同時調用 DbTransaction Controller類將用戶數據封裝成為行數據對象SortedListRow及表數據對象 SortedListRowCollection。DbOperator類接收SortedListRow及 SortedListRowCollection類型對象,調用DatabaseFactory類創建目標數據庫對象,進而調用ISqlMaker接口對象自動構造相應數據持久化SQL語句,從而完成用戶UI數據到目標數據庫的持久化工作。反之,則可完成持久化數據到用戶UI界面的自動映射工作。

從上述類工作流程中我們可以看到,在UI設計人員完成用戶界面設計并設置相應控件屬性之后,中間件就可以自動完成用戶數據向底層數據庫的持久化工作,大量減少了代碼編寫人員的代碼編寫任務,避免了重復而且機械性的工作,對提高工作效率,減少程序編制Bug有著重要意義。

6 結束語

數據庫管理信息系統是目前各類企事業單位實現信息化的主要手段,如何提高管理信息系統的開發效率,有效解決傳統數據庫管理信息系統編制過程中編碼工作重復、編碼質量不一、代碼可移植性差、可重用性低、難以維護等問題,對于提高社會生產力有著重要意義。

文中從上述問題出發,根據本人多年的.Net平臺管理信息系統的開發經驗,提出了一種全新的.Net平臺下基于數據庫控件的ORM中間件模式。該中間件已在我單位完成編制工作,并通過我單位在新疆維吾爾自治區實施的多個項目的應用和實踐之后,取得了較為良好的使用效果。使用該中間件后,可以減少一般性管理信息系統數據訪問層80%以上的代碼編寫任務,極大的提高了我單位的工作效率并帶來了良好的經濟效益,極大地提高了我公司在新疆軟件行業的行業競爭力。

[1]史益芳,王志平.管理信息系統(2013版)[M].北京:人民郵電出版社,2013.

[2]Timothy A.Budd.面向對象編程導論[M].北京:機械工業出版社,2003.

[3]薩師煊,王珊.數據庫系統概論(第四版)[M].北京:高等教育出版社,2006.

[4]李文菲.基于中間件技術的數據交換平臺的設計與實現[D].北京:中國科學院.2006

[5]李律松.VisualC#數據庫高級教程[M].北京:清華大學出版社,2005.

[6]韓萬江.軟件工程案例教程[M].北京:機械工業出版社,2007.

Design and implementation of the.Net ORM Middleware based on database control

GUO Ya-ping,MA Xin-chun,ZHANG Li
(Xinjiang electronic institute Co.,LTD,Urumqi 830049,China)

This article describes how to achieve a brand new middleware of data persistence layer under the.Net environment through custom database access controls and object relational mapping technology.The middleware can map database tables with UI controls automatically,reducing database development requirement of the developers,and greatly Improve development efficiency,allows developers and users committed to the buiness logic and UI designment for better user experience.Through our several management information systems in Xinjiang Uygur Autonomous Region,The middleware has verified its quickness,stability and scalability.It can make software development more effectively.

.Net;database access control;ORM;middleware;MIS

TN02

A

1674-6236(2016)03-0029-03

2015-03-19稿件編號:201503253

郭亞平(1978—),男,新疆阿克蘇人,工程師。研究方向:架構設計。

猜你喜歡
數據庫用戶設計
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 一级毛片中文字幕| 亚洲国产一区在线观看| 亚洲全网成人资源在线观看| 国内熟女少妇一线天| av手机版在线播放| 亚洲一区网站| 她的性爱视频| 亚洲一区二区约美女探花| 婷婷综合缴情亚洲五月伊| 91成人免费观看在线观看| 国产91在线免费视频| 91欧美亚洲国产五月天| 97国产精品视频自在拍| 黄色福利在线| 国产成人综合在线观看| 中文字幕日韩视频欧美一区| 亚洲欧美成人网| 乱人伦视频中文字幕在线| 欧美一级高清片久久99| 日韩欧美综合在线制服| 精品少妇人妻一区二区| 激情影院内射美女| 欧美一级高清片欧美国产欧美| 女人18毛片一级毛片在线 | 色综合中文字幕| 亚洲第一成人在线| 久久99国产乱子伦精品免| 欧美在线视频不卡| 亚洲精品欧美日本中文字幕| 亚洲swag精品自拍一区| 91精品国产无线乱码在线| 911亚洲精品| 欧美国产在线看| 青青热久免费精品视频6| 国产97公开成人免费视频| 欧美激情伊人| 欧美性天天| 真人高潮娇喘嗯啊在线观看| 久久福利网| 亚洲欧美日本国产综合在线| 久久99热这里只有精品免费看| 日韩欧美综合在线制服| av一区二区无码在线| 97国产在线视频| 99国产在线视频| 高清色本在线www| 高清久久精品亚洲日韩Av| 全午夜免费一级毛片| 成人国产精品2021| 激情无码视频在线看| 亚洲午夜福利精品无码| 九九热视频在线免费观看| 亚洲欧美h| 一级不卡毛片| 国产无人区一区二区三区| 亚洲激情区| 在线观看av永久| 99r在线精品视频在线播放| 国产91色| 国产精品精品视频| 一区二区理伦视频| 国产黄色免费看| 精品国产网| 99九九成人免费视频精品| 2021最新国产精品网站| 毛片一级在线| 欧美午夜小视频| 夜夜操天天摸| 国产免费久久精品99re丫丫一| 黄色污网站在线观看| 精品99在线观看| 玖玖精品视频在线观看| 国产成人a在线观看视频| 亚洲人成影视在线观看| 精品国产欧美精品v| 日本福利视频网站| 国产成人一区免费观看| 久久久久国产精品熟女影院| 色亚洲激情综合精品无码视频| 国产一级妓女av网站| 99精品在线视频观看| 久久国产V一级毛多内射|