CN104834551A - 一种基于四层架构的.net代码自动生成方法 - Google Patents

一种基于四层架构的.net代码自动生成方法 Download PDF

Info

Publication number
CN104834551A
CN104834551A CN201510218590.XA CN201510218590A CN104834551A CN 104834551 A CN104834551 A CN 104834551A CN 201510218590 A CN201510218590 A CN 201510218590A CN 104834551 A CN104834551 A CN 104834551A
Authority
CN
China
Prior art keywords
layer
data
page
database
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510218590.XA
Other languages
English (en)
Inventor
杨小健
孙娴
成伟
陆文迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Tech University
Original Assignee
Nanjing Tech University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Tech University filed Critical Nanjing Tech University
Priority to CN201510218590.XA priority Critical patent/CN104834551A/zh
Publication of CN104834551A publication Critical patent/CN104834551A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开一种基于四层架构的.NET代码自动生成方法,包括如下步骤:进行项目参数及数据库参数的初始化;生成数据层;生成操作层;生成视图层;生成事件层;整合解决方案,为操作层添加数据层的引用,为事件层添加操作层和数据层的引用,在项目配置文件中,注明各层的关系;根据参数的选择,生成Web.config;整合项目解决方案,生成物理的文件系统,形成SLN解决方案文件。此方法可根据关系数据库实现.NET四层代码的自动生成,提高系统的开发效率和正确率。

Description

一种基于四层架构的.NET代码自动生成方法
技术领域
本发明属于计算机技术领域,特别涉及一种基于四层架构的.NET代码自动生成方法,用于解决.NET编程中实现代码自动生成的问题。
背景技术
由于微软的.NET技术具有较高的稳定性和安全性,目前已经被越来越多的企业所使用。在管理系统开发的过程中,通常需要先创建数据库,组建软件架构,再针对具体需求进行代码开发。为了方便管理项目和保证开发质量,普遍采用分层的设计理念。早期开发中,通常采用MVC三层架构的思想,但是由于控制器承担的工作过多,使得分层效果不佳。
随着软件技术的不断发展,编写软件的复杂度不断提高,人们发现许多底层代码是重复的,于是开始关注如何采用更加高效的手段,降低编码的工作量,减少那些重复机械的工作。如果有一种工具能够根据关系数据库自动生成各层的基本代码,让开发人员将主要精力放在核心逻辑代码的编写上,将会大大提高系统的开发效率。
发明内容
本发明的目的,在于提供一种基于四层架构的.NET代码自动生成方法,其可根据关系数据库实现.NET四层代码的自动生成,提高系统的开发效率和正确率。
为了达成上述目的,本发明的解决方案是:
一种基于四层架构的.NET代码自动生成方法,包括如下步骤:
(1)进行项目参数及数据库参数的初始化;
(2)生成数据层;
(3)生成操作层;
(4)生成视图层;
(5)生成事件层;
(6)整合解决方案,为操作层添加数据层的引用,为事件层添加操作层和数据层的引用,在项目配置文件中,注明各层的关系;根据参数的选择,生成Web.config;整合项目解决方案,生成物理的文件系统,形成SLN解决方案文件。
上述步骤(1)包括如下具体内容:
(11)对项目参数初始化,包括设置项目放置的路径,填写项目的名称,以及选择.NET Framework的版本;
(12)对数据库参数初始化,填写数据库连接字符串,包括数据库服务器地址、数据库名称、数据库管理员账号和密码;
(13)访问数据库并进行分析,采用SQL命令获得数据库中的数据表信息,以及各数据表之间的关系,确定数据类型、主键外键及关系约束。
上述步骤(2)包括如下具体内容:
(21)获取数据库中的数据表结构,为每个数据表新建一个类;
(22)将数据表中每个字段声明为该类的一个属性,将字段的数据类型无损失地转换为.NET的数据类型;
(23)对每个属性设置SET操作,实现属性的写入及GET操作,实现属性的读取。
上述步骤(3)包括如下具体内容:
(31)根据步骤(21)为每个数据表新建各自的实体类和操作类;
(32)分析数据库中数据表的属性和关系,设置无参数构造函数和以主键为参数的构造函数;
(33)根据公共操作类模板生成方法,获得数据模型,获得数据模型列表,添加数据,修改数据及删除数据;
(34)选择定制方式,使用可视化设计器,对操作类进行定制,定制方式有选择特定字段进行查询、添加、修改及删除,针对多表关系进行连接操作,逻辑判断定制操作,以及自定义代码操作。
上述步骤(4)包括如下具体内容:
(41)根据公共DIV+CSS模板,为每个操作类的方法生成一个页面,分为页头、内容及页尾三个部分;
(42)根据所生成操作类的方法,包括GetModel,GetModelList,AddData,UpdateData和DeleteData,在页面中添加控件,包括GridView,TextBox,Lable,DropdownList及Button五种,同时选择CSS类对控件进行定制;
(43)采用流式布局,对已添加的控件进行布局。
上述步骤(5)包括如下具体内容:
(51)对页面中的控件绑定事件,具体来说,对页面绑定Page_Load事件,GridView绑定DataBinding 和PageIndexChanged事件,Button绑定Click事件,DropdownList绑定SelectedIndexChanged事件;
(52)根据页面中不同的控件,将操作类的方法填入控件相应的事件中,从而实现页面层和操作层的连接。
采用上述方案后,本发明通过采用四层架构的思想,实现数据层、操作层、视图层和事件层的代码自动生成,并完成各层之间的连接,形成可以直接使用的项目解决方案,从而大大减少人工代码的干预,使开发人员将主要精力放在核心代码的开发上,增加项目代码的统一性,有利于项目的整合与开发,提高代码开发的效率和软件质量,降低维护的难度。
附图说明
图1是基于本发明生成的体系结构示意图。
图2是本发明的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
结合图1所示,本发明一种基于四层架构的.NET代码自动生成方法,采用四层架构的思想,根据代码的职责,将代码分为数据层、视图层、操作层和事务层,其中,数据层用于封装数据,操作层用于实现逻辑操作,视图层用于显示界面,事务层用于实现事件的处理,通过四层代码层的划分,提高软件的健壮性和可扩展性,可以适用于现有的管理系统开发过程,在深入分析管理系统现有关系数据库的基础上,实现对数据库的封装;使用数据库访问技术ADO.NET,针对数据层模型,实现操作层的生成。采用ASP.NET技术,在DIV+CSS的模板上,自动生成视图层代码;根据已有的视图层,创建对应的事件,并连接操作层,从而实现事件层。
结合图2,本发明包括如下步骤:
(1)对参数进行初始化,包括如下内容:
(11)我们以某信息管理系统为例,对该项目的参数进行初始化,选取该项目文件的物理路径,设置项目名称,选择.NET Framework版本(一般选择.Net Framework 3.5);
(12)对该信息系统的数据库参数初始化,填写数据库连接字符串,包括数据库服务器地址、数据库名称、数据库管理员账号和密码,并保存为XML格式;
(13)访问该信息系统数据库,使用SQL命令获取数据库中information_schema.columns的信息,得到数据库表名,各个字段名,字段数据类型,主键外键及关系约束;
(2)生成数据层:获取该信息系统的数据库中的数据表结构,为每个数据表新建一个实体类,将数据表中每个字段声明为该类的一个属性,将字段的数据类型无损失地转换为.NET的数据类型;对每个属性设置SET操作,实现属性的写入及GET操作,实现属性的读取;
(3)生成操作层,包括如下步骤:
(31)根据前述步骤(2)为每个数据表新建各自的数据操作类;
(32)对该数据操作类设置构造函数,分为无参数和以主键为参数这两种形式;
(33)根据公共操作类模板生成方法,包括GetModel, GetModelList, AddData, UpdateData, DeleteData;
(34)选择定制方式,使用可视化设计器,对操作类进行定制,定制方式有选择特定字段进行查询、添加、修改及删除,针对多表关系进行连接操作,逻辑判断定制操作,以及自定义代码操作;
(4)生成视图层,包括如下步骤:
(41)根据公共DIV+CSS模板,为每个操作类的方法生成一个页面,AddData生成新增数据页面,GetModelList生成查询数据页面,UpdateData生成修改数据页面,DeleteData生成删除数据页面,GetModel生成数据详细信息页面,每个页面分为页头、内容、页尾三个部分;
(42)在页面中添加控件,新增数据页面,修改数据页面,删除数据页面添加TextBox,Lable,DropdownList,Button控件,查询数据页面添加GridView,Lable,Button控件,数据详细信息页面添加Lable控件,同时可以选择CSS类对控件进行定制;
(43)采用流式布局,对已添加的控件进行布局;
(5)生成事件层,包括如下步骤:
(51)对页面中的控件绑定事件,控件本身包含多种事件,对页面绑定Page_Load事件,GridView绑定DataBinding和PageIndexChanged事件,Button绑定Click事件,DropdownList绑定SelectedIndexChanged事件;
(52)根据页面中控件,将操作类的方法填入控件相应的事件中,GetModel填入数据详细页面的Page_Load事件中,GetModelList填入数据查询页面的DataBinding事件中,AddData填入新增数据页面的Click事件中,UpdateData填入修改数据页面的Click事件中,DeleteData填入删除数据页面的Click事件中从而实现页面层和操作层的连接;
(6)整合解决方案,为操作层添加数据层的引用,为事件层添加操作层和数据层的引用,在项目配置文件中,填写数据层,操作层,视图层和时间层的路径和关系,自动生成Web.config;整合项目解决方案,生成物理的文件系统,形成SLN解决方案文件。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (6)

1.一种基于四层架构的.NET代码自动生成方法,其特征在于包括如下步骤:
(1)进行项目参数及数据库参数的初始化;
(2)生成数据层;
(3)生成操作层;
(4)生成视图层;
(5)生成事件层;
(6)整合解决方案,为操作层添加数据层的引用,为事件层添加操作层和数据层的引用,在项目配置文件中,注明各层的关系;根据参数的选择,生成Web.config;整合项目解决方案,生成物理的文件系统,形成SLN解决方案文件。
2.如权利要求1所述的一种基于四层架构的.NET代码自动生成方法,其特征在于所述步骤(1)包括如下具体内容:
(11)对项目参数初始化,包括设置项目放置的路径,填写项目的名称,以及选择.NET Framework的版本;
(12)对数据库参数初始化,填写数据库连接字符串,包括数据库服务器地址、数据库名称、数据库管理员账号和密码;
(13)访问数据库并进行分析,采用SQL命令获得数据库中的数据表信息,以及各数据表之间的关系,确定数据类型、主键外键及关系约束。
3.如权利要求2所述的一种基于四层架构的.NET代码自动生成方法,其特征在于所述步骤(2)包括如下具体内容:
(21)获取数据库中的数据表结构,为每个数据表新建一个类;
(22)将数据表中每个字段声明为该类的一个属性,将字段的数据类型无损失地转换为.NET的数据类型;
(23)对每个属性设置SET操作,实现属性的写入及GET操作,实现属性的读取。
4.如权利要求3所述的一种基于四层架构的.NET代码自动生成方法,其特征在于所述步骤(3)包括如下具体内容:
(31)根据步骤(21)为每个数据表新建各自的实体类和操作类;
(32)分析数据库中数据表的属性和关系,设置无参数构造函数和以主键为参数的构造函数;
(33)根据公共操作类模板生成方法,获得数据模型,获得数据模型列表,添加数据,修改数据及删除数据;
(34)选择定制方式,使用可视化设计器,对操作类进行定制,定制方式有选择特定字段进行查询、添加、修改及删除,针对多表关系进行连接操作,逻辑判断定制操作,以及自定义代码操作。
5.如权利要求4所述的一种基于四层架构的.NET代码自动生成方法,其特征在于所述步骤(4)包括如下具体内容:
(41)根据公共DIV+CSS模板,为每个操作类的方法生成一个页面,分为页头、内容及页尾三个部分;
(42)根据所生成操作类的方法,包括GetModel,GetModelList,AddData,UpdateData和DeleteData,在页面中添加控件,包括GridView,TextBox,Lable,DropdownList及Button五种,同时选择CSS类对控件进行定制;
(43)采用流式布局,对已添加的控件进行布局。
6.如权利要求5所述的一种基于四层架构的.NET代码自动生成方法,其特征在于所述步骤(5)包括如下具体内容:
(51)对页面中的控件绑定事件,具体来说,对页面绑定Page_Load事件,GridView绑定DataBinding 和PageIndexChanged事件,Button绑定Click事件,DropdownList绑定SelectedIndexChanged事件;
(52)根据页面中不同的控件,将操作类的方法填入控件相应的事件中,从而实现页面层和操作层的连接。
CN201510218590.XA 2015-04-30 2015-04-30 一种基于四层架构的.net代码自动生成方法 Pending CN104834551A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510218590.XA CN104834551A (zh) 2015-04-30 2015-04-30 一种基于四层架构的.net代码自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510218590.XA CN104834551A (zh) 2015-04-30 2015-04-30 一种基于四层架构的.net代码自动生成方法

Publications (1)

Publication Number Publication Date
CN104834551A true CN104834551A (zh) 2015-08-12

Family

ID=53812460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510218590.XA Pending CN104834551A (zh) 2015-04-30 2015-04-30 一种基于四层架构的.net代码自动生成方法

Country Status (1)

Country Link
CN (1) CN104834551A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN106681785A (zh) * 2016-12-28 2017-05-17 东方网力科技股份有限公司 一种软件生成方法和装置
CN107330014A (zh) * 2017-06-15 2017-11-07 武汉斗鱼网络科技有限公司 一种数据表的创建方法与设备
CN110956413A (zh) * 2019-12-17 2020-04-03 国家体育总局体育科学研究所 基于固定流程的检验系统
CN111538884A (zh) * 2020-04-20 2020-08-14 上海鸿翼软件技术股份有限公司 一种数据搜索方法、装置、设备及计算机可读存储介质
CN112416305A (zh) * 2020-11-23 2021-02-26 西安西热电站信息技术有限公司 一种基于VisualStudio的快速开发方法
CN113971444A (zh) * 2021-10-26 2022-01-25 飞马智科信息技术股份有限公司 一种基于wincc平台打印二维码的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195829A1 (en) * 1998-12-22 2006-08-31 Computer Associates Think, Inc. Method and Apparatus for Executing Stored Code Objects in a Databse
CN102750145A (zh) * 2012-06-05 2012-10-24 怯肇乾 一种网络系统软件体系框架及其实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195829A1 (en) * 1998-12-22 2006-08-31 Computer Associates Think, Inc. Method and Apparatus for Executing Stored Code Objects in a Databse
CN102750145A (zh) * 2012-06-05 2012-10-24 怯肇乾 一种网络系统软件体系框架及其实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曾志刚: "基于.NET多层体系结构的应用开发框架的设计、实现及应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
杨晓光等: "《ASP.NET网络程序设计教程》", 31 March 2013, 清华大学出版社 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677323A (zh) * 2015-12-31 2016-06-15 合肥大多数信息科技有限公司 一种自动生成数据库操作层代码的方法
CN106681785A (zh) * 2016-12-28 2017-05-17 东方网力科技股份有限公司 一种软件生成方法和装置
CN106681785B (zh) * 2016-12-28 2020-02-07 东方网力科技股份有限公司 一种软件生成方法和装置
CN107330014A (zh) * 2017-06-15 2017-11-07 武汉斗鱼网络科技有限公司 一种数据表的创建方法与设备
CN107330014B (zh) * 2017-06-15 2021-04-09 武汉斗鱼网络科技有限公司 一种数据表的创建方法与设备
CN110956413A (zh) * 2019-12-17 2020-04-03 国家体育总局体育科学研究所 基于固定流程的检验系统
CN111538884A (zh) * 2020-04-20 2020-08-14 上海鸿翼软件技术股份有限公司 一种数据搜索方法、装置、设备及计算机可读存储介质
CN112416305A (zh) * 2020-11-23 2021-02-26 西安西热电站信息技术有限公司 一种基于VisualStudio的快速开发方法
CN113971444A (zh) * 2021-10-26 2022-01-25 飞马智科信息技术股份有限公司 一种基于wincc平台打印二维码的方法

Similar Documents

Publication Publication Date Title
CN104834551A (zh) 一种基于四层架构的.net代码自动生成方法
CN105849726B (zh) 用于高效地支持通过分层标记数据的即席查询的通用索引
CN105447122B (zh) 一种基于多表关联可自主创建档案系统的实现方法
CN102663103B (zh) 可配置的自动化生成数据库和数据访问的方法
TWI379253B (en) Method, system, and computer-readable medium for creating and laying out a graphic within an application program
CN102254029B (zh) 一种基于视图的数据访问系统及其方法
CN101382957B (zh) 建立查询模型的系统及建立方法
CN103593443A (zh) 一种电子文件元数据扩展的方法
CN102426582B (zh) 数据操作管理装置和数据操作管理方法
CN103246733A (zh) 一种基于元数据的动态表单系统及其生成方法
CN108027818A (zh) 基于图的查询
CN116225429A (zh) 基于拖拽式组件框架的ipage网页式低代码开发平台
WO2012154573A1 (en) Query template definition and transformation
CN110807015A (zh) 一种大数据资产价值交付管理方法及系统
CN103383645A (zh) 代码生成方法及系统
CN102646039A (zh) 基于XML Schema的软件界面生成系统及方法
CN104049957A (zh) 基于星形结构的通用业务模型的快速建模框架
CN103810152A (zh) 可视化公式编辑器
CN103853543A (zh) 一种应用于企业信息系统开发过程中快速构建表单的方法
US9805112B2 (en) Method and structure for managing multiple electronic forms and their records using a static database
CN103927385A (zh) 数据模型的统一方法及装置
US20150213380A1 (en) System and Method for Dynamically Creating a Multi-Level Well Hierarchy by Integrating Data From Multiple Sources
CN107480208A (zh) 多源电力数据融合处理方法和装置
CN111984176A (zh) 一种软件在线开发平台及开发方法
CN103617167A (zh) 一种通用的元数据/关系映射框架

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150812