成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

適用于簡單MIS系統的控件關系映射組件設計思路分享

開發 后端
文章分享了一個控件關系映射組件的設計思路。這個組件只適用于簡單的MIS系統快速開發,而且由于.NET中現在有了綁定控件功能,所以這個控件現在用處有限。只是希望能夠給初學者一些幫助。

MIS系統就是信息管理系統,用于信息的收集、傳遞、維護和使用等等。控件關系映射(Control Relation Mapping,CRM)是我在2005年研究生一年級給導師做項目的時候提出來的一種針對大表單的快速解決方案(解決方案很多種),其設計從UI映射和OR映射借鑒了點思想,加上點自己的體會設計的,不過這個組件屬于業余級別的。

這個組件的設計背景是:給導師做一個項目(20萬的企業MIS),MIS系統就是有一個大表單用于輸入信息,實現數據庫記錄CRUD操作。不過這個項目表單有點夸張,少的有70~80個字段,多的有幾百個,最夸張的是一個同學設計了1000多個字段的表單,他做好后,很有成就感的給顯了一下。不過,我可以沒有他那么有耐心,從小到大我都是偷懶過來的,因此我就在琢磨怎么省點事。整個項目有9大模塊,必須采用Delphi開發(現在忘光了,我原來就沒想學這玩意,Pascal語言讓我感覺很別扭)。我負責框架設計和其中一個模塊。框架的設計采用模塊化支持,集成界面配置、權限管理、包管理、基本UI操作,由框架加載各個模塊(BPL庫,類似DOTNET的程序集),根據需要呈現各個模塊其中的UI。我負責的模塊需要輸入一堆數據,因此我設計了一個小型的控件關系映射(由于業務簡單,沒有采用ORM等先進技術),其思想非常簡單,即利用一個XML封裝界面的輸入、處理和輸出,XML文件由可視化工具自動生成。

CRM概念設計圖如下,其思想是利用一個XML配置文件,實現界面表單與數據庫記錄映射,中心思想是一條映射SQL。映射SQL的參數來自界面控件、某個類成員或方法,或者常量;映射SQL執行數據庫的操作;映射執行結果是控件屬性賦值、控件賦值、成員賦值、數據綁定、調用方法等。通過映射SQL很容易實現:1 進入頁面后查詢,執行Bind映射SQL,填充DataGrid;2 點擊添加,顯示一個Panel,隱藏DG Panel,保存后,執行Create映射SQL,映射結果是隱藏添加記錄Panel、顯示DG Panel、執行Bind映射SQL;3 Update和Create類似。因此,在我的應用中,無論表單如何復雜,代碼都不會超過100行。

CRM概念設計圖

CRM體系結構圖下:

CRM體系結構圖

它由映射配置工具、映射文件、映射配置層、核心層和窗體層組成,相當于關系數據庫與用戶界面的適配器,為雙方的數據交互提供橋梁作用。當用戶輸入信息提交系統后,(1)核心層利用窗體層提供的功能從用戶界面獲取用戶數據;(2)核心層利用映射配置層讀取映射配置并解析;(3)核心層利用數據訪問層訪問關系數據庫;(4)如果本次訪問需要返回結果,則核心層利用映射配置層讀取配置數據,然后利用窗體層將返回結果顯示給用戶。如果用戶僅需從關系數據庫獲取數據時,則只需要執行上述過程的(2)~(4)步驟。

舉個非常簡單的例子(基于.NET,做完Delphi項目后,我移植到DotNET 1.1了):

(1)插入派遣單位表單

插入派遣單位表單

(2)利用可視化配置工具生成映射SQL如下

生成映射SQL

(3)在“保存”按鈕的OnClick事件響應函數編寫一行代碼即可完成該功能:

MappingFactory.ExecuteMapping(this,"HumanDispSolution.SpreadFaculty.Web_DispDepart","InsertDispDepartment")。執行結果就是插入記錄并記錄日志。

在實際應用中表單要比這復雜多了,這個小東西幫了我不少忙,在幾個業余項目都用它來開發。這個小組件,只適用于簡單的MIS系統快速開發,在DOTNET2005以后微軟開始在DataSource支持綁定控件了,現在CRM.NET有點不入流了,不過還是希望對一些初學者有點幫助吧。

【編輯推薦】

  1. .NET平臺構成:操作系統,.NET框架到IDE
  2. .NET框架與COM:背景和歷史,關系的發展
  3. .NET框架與XML:Web服務的未來之道
  4. Windows 7 API Code Pack介紹
  5. .NET內存映射文件原理、創建及進程通訊
責任編輯:yangsai 來源: 道法自然的博客
相關推薦

2021-03-18 10:46:00

Linux監控工具命令

2018-10-24 10:43:13

2013-07-23 10:05:12

UI設計交互設計

2023-10-26 14:34:32

2022-11-29 08:45:44

Vue 3UI 組件庫

2022-02-10 00:16:01

開發者元宇宙系統

2009-11-29 17:10:01

NetgearLinux系統路由器

2022-09-02 17:47:46

Linux筆記應用

2020-05-14 17:54:54

查看器 Linux 系統

2019-08-15 15:48:30

Linux系統軟件

2011-12-08 09:43:56

虛擬化vmwareVMware Fusi

2023-11-30 08:55:15

LinuxLibreOffic

2024-01-23 16:48:32

2013-02-21 10:13:25

2021-11-03 10:14:31

PowerEdge

2011-05-13 09:56:23

Ubuntu 11.0

2021-12-13 12:56:26

Linux瀏覽器

2018-06-13 09:00:00

2019-08-23 11:00:00

云計算網絡安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91av在线免费 | 欧美三区 | 日日摸日日爽 | 午夜不卡一区二区 | 日本淫视频 | 日韩中文字幕一区 | 精品亚洲二区 | 国产日韩欧美精品一区二区 | 欧美日韩精品影院 | 欧美久久一级特黄毛片 | 久久国内精品 | 欧美一区二区免费电影 | 九色视频网 | 国产真实精品久久二三区 | 亚洲免费在线观看视频 | 欧美亚洲综合久久 | 日韩精品中文字幕一区二区三区 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品视频入口 | 久久国产精品久久久久久 | 成人在线播放网站 | 欧美区在线 | 伊人成人免费视频 | 一区二区三区欧美大片 | 在线看日韩 | 综合色婷婷 | 亚洲一区二区三区四区五区午夜 | 亚洲成人日韩 | 99re热这里只有精品视频 | 亚洲视频一区在线观看 | 天堂va在线| 女同久久 | 亚洲免费在线观看 | 欧美天堂 | 免费a级毛片在线播放 | 天天躁日日躁狠狠躁白人 | 婷婷久久精品一区二区 | 一级片免费视频 | 婷婷中文字幕 | 欧美久久久久久 | 日韩成人一区 |