国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Asp.Net MVC框架的礦山地質(zhì)環(huán)境信息系統(tǒng)的研究與實(shí)現(xiàn)

2020-03-31 19:25張熠斌朱喜君劉傳深宋金紅
城市地質(zhì) 2020年1期
關(guān)鍵詞:趨勢(shì)分析

張熠斌 朱喜君 劉傳深 宋金紅

摘? 要:在Asp.Net MVC框架下,基于Nhibernate數(shù)據(jù)庫(kù)映射、IoC控制反轉(zhuǎn)和Razor模板引擎等關(guān)鍵技術(shù),采用C#語(yǔ)言編碼,研發(fā)了具備數(shù)據(jù)管理、數(shù)據(jù)查詢、數(shù)據(jù)統(tǒng)計(jì)、趨勢(shì)分析和數(shù)據(jù)導(dǎo)入導(dǎo)出等功能為一體的礦山地質(zhì)環(huán)境信息系統(tǒng),并通過(guò)單點(diǎn)登錄、WCF數(shù)據(jù)服務(wù)和插件式軟件開(kāi)發(fā)等技術(shù)與地質(zhì)環(huán)境一張圖信息平臺(tái)進(jìn)行了深度集成,實(shí)現(xiàn)了在三維一張圖環(huán)境下的礦山地質(zhì)環(huán)境數(shù)據(jù)的管理、查詢、統(tǒng)計(jì)、分析和展示,深化了系統(tǒng)應(yīng)用。

關(guān)鍵詞:礦山地質(zhì)環(huán)境;趨勢(shì)分析;MVC;Nhibernate;IoC;Razor

Research and Implementation of Mine Geological Environment

Information System based on Asp.Net MVC Framework

ZHANG Yibin1, ZHU Xijun1, LIU Chuanshen1, SONG Jinhong2

(1.Jilin Geological Environment Monitoring Center (Jilin Geological Disaster Emergency Technical Guidance Center),

Changchun 130021; 2. College of Resources and Environment, Jilin Agricultural University, Changchun 130118)

Abstract: Under Asp.Net MVC framework, mine geological environment information systems is developed by C# language coding with functions of data management, data query, data statistics, trend analysis, data import and export as a whole based on Nhibernate database mapping, inversion of control and Razor template engine and other key technologies. The system application is deepened by integration of single sign on, WCF data services, plug-in software development and other technologies with one map of geological environment to realize the management, query, analysis and display of data in a three-dimensional one map environment.

Keywords: Mine geological environment; Trend analysis; MVC; Nhibernate; IoC; Razor

0 引言

經(jīng)過(guò)多年礦山地質(zhì)環(huán)境調(diào)查和監(jiān)測(cè),形成了多期礦山地質(zhì)環(huán)境調(diào)查成果數(shù)據(jù),這些數(shù)據(jù)具有多源、異構(gòu)和分散等特性(劉傳正等,2006;邢麗霞等,2011),且未能形成一套完整的從數(shù)據(jù)生產(chǎn)到管理和更新的信息系統(tǒng),對(duì)數(shù)據(jù)進(jìn)行系統(tǒng)化的管理,形成了數(shù)據(jù)孤島,難以為礦山地質(zhì)環(huán)境調(diào)查、監(jiān)測(cè)以及生態(tài)修復(fù)提供科學(xué)的數(shù)據(jù)依據(jù),更無(wú)法建立數(shù)據(jù)共享服務(wù)體系。在當(dāng)前大數(shù)據(jù)建設(shè)的背景下,進(jìn)一步推動(dòng)礦山地質(zhì)環(huán)境調(diào)查、監(jiān)測(cè)成果的深度轉(zhuǎn)換與應(yīng)用,提升數(shù)據(jù)服務(wù)的廣度和深度,促使礦山地質(zhì)環(huán)境調(diào)查、監(jiān)測(cè)成果走向量化分析階段,已是亟待解決的問(wèn)題(吉林省地質(zhì)環(huán)境監(jiān)測(cè)總站,2018)。因此,亟需研發(fā)一套功能完整化、數(shù)據(jù)集成化、信息綜合化和成果可視化的礦山地質(zhì)環(huán)境信息系統(tǒng)。

1 系統(tǒng)設(shè)計(jì)

1.1 層次結(jié)構(gòu)

本系統(tǒng)按照B/S設(shè)計(jì)模式,在.Net平臺(tái)下,基于Asp.Net MVC技術(shù)、WCF技術(shù)、數(shù)據(jù)庫(kù)技術(shù)和三層體系架構(gòu)技術(shù),結(jié)合礦山地質(zhì)環(huán)境調(diào)查評(píng)價(jià)數(shù)據(jù)庫(kù)規(guī)范,采用C#語(yǔ)言編碼研發(fā)而成。在功能結(jié)構(gòu)方面,按礦山地質(zhì)環(huán)境實(shí)際業(yè)務(wù)需求,劃分了數(shù)據(jù)管理、數(shù)據(jù)查詢、統(tǒng)計(jì)分析、數(shù)據(jù)導(dǎo)出和數(shù)據(jù)導(dǎo)入5個(gè)核心模塊。在系統(tǒng)登錄和權(quán)限管理方面,借助統(tǒng)一的單點(diǎn)登錄身份認(rèn)證系統(tǒng)提供的WCF服務(wù)進(jìn)行集中化的管理,以實(shí)現(xiàn)一次登錄多系統(tǒng)同時(shí)授權(quán)的機(jī)制,避免重復(fù)登錄,提高用戶體驗(yàn)。在系統(tǒng)研發(fā)和集成方面,考慮到與面向服務(wù)架構(gòu)( Service Oriented Architecture,SOA) 的地質(zhì)環(huán)境一張圖信息平臺(tái)進(jìn)行無(wú)縫集成,以實(shí)現(xiàn)地質(zhì)環(huán)境數(shù)據(jù)的一張圖展示、管理、統(tǒng)計(jì)查詢與分析等功能(張熠斌等,2017), 礦山地質(zhì)環(huán)境信息系統(tǒng)在設(shè)計(jì)和研發(fā)上采取了既獨(dú)立又分散的策略,建立了礦山地質(zhì)環(huán)境WCF數(shù)據(jù)服務(wù)通道,有效的與地質(zhì)環(huán)境一張圖信息平臺(tái)進(jìn)行了無(wú)縫集成。系統(tǒng)層次結(jié)構(gòu)如圖1所示。

1.2 數(shù)據(jù)源

數(shù)據(jù)源主要包括基礎(chǔ)地理數(shù)據(jù)和礦山地質(zhì)環(huán)境調(diào)查數(shù)據(jù)。基礎(chǔ)地理數(shù)據(jù)采用天地圖作為底圖(https://www.tianditu.gov.cn/),DEM選用分辨率為30m的公開(kāi)版數(shù)據(jù)(從地理空間數(shù)據(jù)云下載,http://www.gscloud.cn/)。礦山地質(zhì)環(huán)境調(diào)查數(shù)據(jù)包括2006年、2013年和2017年野外調(diào)查數(shù)據(jù),其中2006年調(diào)查3307座礦山,2013年調(diào)查2880座礦山,2017年調(diào)查2915座礦山。此外,還包括礦山地質(zhì)環(huán)境空間專題圖層數(shù)據(jù)、野外調(diào)查照片、視頻和各類文檔資源。

1.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

考慮到與國(guó)家級(jí)地質(zhì)環(huán)境數(shù)據(jù)節(jié)點(diǎn)的互聯(lián)互通和數(shù)據(jù)庫(kù)結(jié)構(gòu)的可伸縮性,數(shù)據(jù)庫(kù)選用SQL Server 2012,參照礦山地質(zhì)環(huán)境調(diào)查評(píng)價(jià)數(shù)據(jù)庫(kù)規(guī)范和全國(guó)礦山地質(zhì)環(huán)境信息采集系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)組織,圖2為系統(tǒng)數(shù)據(jù)庫(kù)物理模型。為便于數(shù)據(jù)管理維護(hù)、統(tǒng)計(jì)分析和綜合展示,加強(qiáng)本地化應(yīng)用,新建立了項(xiàng)目表和基礎(chǔ)表,且將其他數(shù)據(jù)表統(tǒng)稱為調(diào)查表。項(xiàng)目表主要用于存儲(chǔ)礦山地質(zhì)環(huán)境調(diào)查項(xiàng)目名稱、項(xiàng)目編號(hào)(系統(tǒng)自動(dòng)生成)、調(diào)查單位、項(xiàng)目基本信息等,是系統(tǒng)頂層數(shù)據(jù)表,通過(guò)主鍵項(xiàng)目編號(hào)與基礎(chǔ)表和調(diào)查表進(jìn)行關(guān)聯(lián)。在實(shí)際數(shù)據(jù)庫(kù)建庫(kù)和系統(tǒng)開(kāi)發(fā)時(shí),將2006年、2013年和2017年三期調(diào)查數(shù)據(jù)進(jìn)行了綜合對(duì)比分析,發(fā)現(xiàn)三期調(diào)查數(shù)據(jù)中,礦山基本信息諸如礦山名稱、野外編號(hào)、礦山企業(yè)名稱、采礦許可證號(hào)、所屬圖幅、中心坐標(biāo)經(jīng)緯度、開(kāi)采礦類、礦區(qū)面積、開(kāi)采礦種、開(kāi)采方式、開(kāi)采層位、礦山規(guī)模、服務(wù)年限、建礦時(shí)間、法人代表、郵編、電話、傳真等字段值有較多的重復(fù),為減少數(shù)據(jù)冗余,將這些重復(fù)率較高的礦山基本信息進(jìn)行篩選匯總,統(tǒng)一存儲(chǔ)到基礎(chǔ)表,形成一座礦山多條調(diào)查記錄的關(guān)系,即基礎(chǔ)表與調(diào)查表為一對(duì)多的關(guān)系。然后將基礎(chǔ)表中的礦山與三期調(diào)查數(shù)據(jù)中對(duì)應(yīng)的礦山進(jìn)行一一關(guān)聯(lián),亦即建立起礦山地質(zhì)環(huán)境調(diào)查檔案卡片,這為后期系統(tǒng)開(kāi)發(fā)趨勢(shì)分析和數(shù)據(jù)錄入等功能提供了便利。如通過(guò)基礎(chǔ)表可對(duì)礦山地質(zhì)環(huán)境調(diào)查監(jiān)測(cè)的指標(biāo)值進(jìn)行快速統(tǒng)計(jì)匯總,提高查詢檢索的效率。在錄入新調(diào)查數(shù)據(jù)時(shí),可先檢索基礎(chǔ)表中是否已包含該礦山的基本信息,如有則可將基礎(chǔ)表中的礦山基本信息直接導(dǎo)入到新調(diào)查數(shù)據(jù)中進(jìn)行編輯,如沒(méi)有則系統(tǒng)將錄入的礦山基本信息自動(dòng)存儲(chǔ)到基礎(chǔ)表中,最大程度的提高系統(tǒng)的自動(dòng)化程度。

1.4 數(shù)據(jù)服務(wù)接口

在本系統(tǒng)中,充分應(yīng)用了C/S和B/S混合開(kāi)發(fā)模式的優(yōu)勢(shì),三維客戶端C/S功能(空間綜合查詢模塊)通過(guò)調(diào)用Wcf服務(wù)查詢數(shù)據(jù),礦山調(diào)查數(shù)據(jù)管理、數(shù)據(jù)導(dǎo)出及詳情等Web頁(yè)面通過(guò)調(diào)用Web Api進(jìn)行數(shù)據(jù)的增刪改查。Wcf服務(wù)和Web Api底層共用BLL層、DAL層,減少了代碼開(kāi)發(fā)工作量,增加了代碼的可維護(hù)性。同時(shí),在Controller層和Service層(WCF服務(wù))調(diào)用已有的SSO單點(diǎn)登錄系統(tǒng)進(jìn)行token驗(yàn)證,實(shí)現(xiàn)用戶角色和權(quán)限的綁定,為系統(tǒng)在網(wǎng)絡(luò)環(huán)境下提供了安全保障。圖3為數(shù)據(jù)服務(wù)接口調(diào)用流程圖。

2 關(guān)鍵技術(shù)

2.1 ASP.Net MVC技術(shù)

ASP.NET MVC是微軟的Web研發(fā)框架,MVC(Model-View-Controller)是一種設(shè)計(jì)模式,即模型、視圖和控制器,使復(fù)雜項(xiàng)目更加容易維護(hù),減少項(xiàng)目之間的耦合(Freeman,2016;楊曉吟,2018;仝茵,2016;滿高媛,2016;王絮等,2016)。主要功能結(jié)構(gòu)簡(jiǎn)述如圖4所示。

Model是數(shù)據(jù)模型,用來(lái)封裝與程序相關(guān)的數(shù)據(jù),以及對(duì)數(shù)據(jù)操作的處理方法。View負(fù)責(zé)將Controller傳遞的數(shù)據(jù)配合邏輯呈現(xiàn)給用戶,屬于頁(yè)面顯示和頁(yè)面回傳。Controller扮演一個(gè)協(xié)調(diào)者的角色和管道路由的作用,因?yàn)镸-V-C三部分并沒(méi)有直接的關(guān)聯(lián),Controller從Model獲取數(shù)據(jù)后提供給View呈現(xiàn)給用戶。在本系統(tǒng)研發(fā)中,組織了如圖5所示的MVC三層結(jié)構(gòu)和類視圖,Controller層和View層在Web項(xiàng)目里,Model層由BLL、Dao、Repository、Entity、Vo等5個(gè)項(xiàng)目組成,Core和SSO為基礎(chǔ)設(shè)施層,提供各層通用的方法和用戶權(quán)限的驗(yàn)證等,Web為礦山地質(zhì)環(huán)境信息系統(tǒng)主體程序。

2.2 Nhibernate數(shù)據(jù)庫(kù)映射技術(shù)

NHibernate是一個(gè)面向.NET環(huán)境的對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射(Object/Relational Mapping,ORM)工具,用來(lái)把模型表示的對(duì)象映射到關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去(劉金等,2007;崔玉連等,2013;孫志中等,2015;孫棟海等,2006)。具有完全面向?qū)ο蟆⑼该鞒志没?、輕量級(jí)框架、較好的移植性、多數(shù)據(jù)庫(kù)支持、開(kāi)發(fā)效率高等優(yōu)點(diǎn)。在本系統(tǒng)中,對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射在Entity層里進(jìn)行定義,每個(gè)數(shù)據(jù)表分別對(duì)應(yīng)實(shí)體類和映射關(guān)系類兩個(gè)類,如礦山基礎(chǔ)表,對(duì)應(yīng)的實(shí)體類和映射關(guān)系類分別為KsBase.cs和KsBaseMap.cs。

2.3 IoC控制反轉(zhuǎn)技術(shù)

控制反轉(zhuǎn)(Inversion of Control,IoC)是面向?qū)ο缶幊讨械囊环N設(shè)計(jì)原則,可用來(lái)降低計(jì)算機(jī)代碼之間的耦合度(段玉聰?shù)龋?006;楊揚(yáng)等,2009)。最常見(jiàn)的方式有依賴注入(Dependency Injection)和依賴查找(Dependency Lookup)。通過(guò)控制反轉(zhuǎn),對(duì)象在被創(chuàng)建的時(shí)候,由一個(gè)調(diào)控系統(tǒng)內(nèi)所有對(duì)象的外界實(shí)體,將其所依賴對(duì)象的引用傳遞給它,即依賴被注入到對(duì)象中。在本系統(tǒng)中,Wcf服務(wù)端采用了Unity IoC框架實(shí)現(xiàn)了控制反轉(zhuǎn),Asp.Net MVC 中采用Autofac實(shí)現(xiàn)了控制反轉(zhuǎn),充分應(yīng)用了目前最為流行的兩種IoC框架。

2.4 Razor模板引擎技術(shù)

Razor是Asp.Net MVC 3中新加入的技術(shù),作為Aspx引擎的一個(gè)新的替代項(xiàng),Razor不是編程語(yǔ)言,是服務(wù)器端標(biāo)記語(yǔ)言。Razor可提高前端開(kāi)發(fā)速度,減少代碼維護(hù)工作量,還可方便的控制頁(yè)面權(quán)限和可視化內(nèi)容,在本系統(tǒng)中通過(guò)定義_Layout.cshtml母板頁(yè),可將子頁(yè)面公共部分,如header、footer、css樣式、js庫(kù)等提取出來(lái)形成模板,然后子頁(yè)面只需要指定要引用的模板即可。模板頁(yè)通過(guò)@RenderSection("css", required: false)加載子頁(yè)的樣式,通過(guò)@RenderSection("scripts", required: false)加載子頁(yè)的js腳本,通過(guò)@RenderBody和@RenderPage加載子頁(yè)的視圖內(nèi)容。

猜你喜歡
趨勢(shì)分析
化工材料科學(xué)與工程的發(fā)展現(xiàn)狀及趨勢(shì)研究
淺談核電項(xiàng)目設(shè)計(jì)質(zhì)量信息收集與分析
高校微課教學(xué)現(xiàn)狀及未來(lái)發(fā)展趨勢(shì)研究
從《遠(yuǎn)程教育》35年載文看遠(yuǎn)程教育研究趨勢(shì)
基于知識(shí)圖譜的智慧教育研究熱點(diǎn)與趨勢(shì)分析
板桥市| 丰顺县| 大石桥市| 商都县| 讷河市| 伊通| 炉霍县| 界首市| 乐山市| 庆阳市| 通许县| 米泉市| 陈巴尔虎旗| 石嘴山市| 河津市| 德阳市| 兴安县| 军事| 瑞丽市| 永平县| 大竹县| 毕节市| 扶风县| 惠州市| 淳安县| 石景山区| 大竹县| 乡宁县| 获嘉县| 陇西县| 云和县| 富宁县| 克山县| 资源县| 出国| 栾城县| 通城县| 鹤壁市| 莱芜市| 东丰县| 永定县|