CN104834551A - 一种基于四层架构的.net代码自动生成方法 - Google Patents
一种基于四层架构的.net代码自动生成方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 101100149023 Bacillus subtilis (strain 168) secA gene Proteins 0.000 claims description 4
- 238000013499 data model Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000018109 developmental process Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种基于四层架构的.NET代码自动生成方法,包括如下步骤:进行项目参数及数据库参数的初始化;生成数据层;生成操作层;生成视图层;生成事件层;整合解决方案,为操作层添加数据层的引用,为事件层添加操作层和数据层的引用,在项目配置文件中,注明各层的关系;根据参数的选择,生成Web.config;整合项目解决方案,生成物理的文件系统,形成SLN解决方案文件。此方法可根据关系数据库实现.NET四层代码的自动生成,提高系统的开发效率和正确率。
Description
技术领域
本发明属于计算机技术领域,特别涉及一种基于四层架构的.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)根据页面中不同的控件,将操作类的方法填入控件相应的事件中,从而实现页面层和操作层的连接。
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)
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)
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 | 怯肇乾 | 一种网络系统软件体系框架及其实现方法 |
-
2015
- 2015-04-30 CN CN201510218590.XA patent/CN104834551A/zh active Pending
Patent Citations (2)
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)
Title |
---|
曾志刚: "基于.NET多层体系结构的应用开发框架的设计、实现及应用", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
杨晓光等: "《ASP.NET网络程序设计教程》", 31 March 2013, 清华大学出版社 * |
Cited By (9)
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 |