随笔 - 142 文章 - 0 评论 - 2294 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 对象设计器使用帮助

简介:

介绍

 

       AgileEAS.NET平台做为一个快速应用开发平台,其目的为是为了提高应用软件的生产效率,如何软件开发的生产效率,方法是多种多样的;使用工作简化开发中低技术重复工作可以是一种行之有效的途径。

       在AgileEAS.NET平台中,我们提供了一个集数据库设计、代码生成、DDL定义与一体的数据实体设计器。

       在早期的AgileEAS.NET版本中包含一个代码生成器,用于根据现在数据库生成ORM代码,后来的思路是想介入项目的数据库设计环节,所以设计了这么一个数据对象设计器,提供一个数据表定义工具,在项目的数据库设计阶段(环节),使用数据表设计工具同时定义数据库和数据实体模型,对象设计器会生成数据库设计文档、数据定义语言、基于分层的数据访问层代码。

       在基于数据库的应用开发项目中,数据库设计是很一个很重要的过程,而这个过程写数据库设计文件是一个环节,在很多软件公司中,都是使用Word、WPS等文字表格工具写数据库文档,但是数据库文档与数据库建立、程序编写过程脱节。

       AgileEAS.NET平台的对象设计工作,试图在这方面进行集成,即设计器产生的模型定义即可以生成数据库文档、数据库定义语句、也可以生成开发过程的代码。

关于数据模型

       AgileEAS.NET平台针对应用开发之中的数据对象定义、存储和交流定义一个数据对象结构模型定义文件,数据设计器建立好的项目定义最后存储在以.sdm为扩展名一个数据模型定义文件。

介绍

       AgileEAS.NET平台的模型定义既为对象设计的导航定义:

wps_clip_image-32537

       其组织结构为项目包含实体和模型两大类,模型存储数据对象的关系(目前不支持),实体存储数据对象的定义,实体可以选择按目录组织,即如果项目中的实体很多,为了视觉和组织上的方便,建立目录,并在目录中创建实体,只支持一级目录。

系统主界面

wps_clip_image-21481

       主窗口中共包括了5个不同的工作区:系统菜单、工具栏、功能导航栏、业务工作区、系统状态栏,系统中的所有业务功能均可通过系功能导航栏访问操作。

系统菜单

       对象设计器采用导航式界面样式,系统功能由导航和菜单两部分组成,提供文件、编辑、工具、窗口和帮助等菜单。

工具栏

       工作栏上放置了与系统菜单相关的快速工具栏,可以通过这些工具栏快速访问相关功能模块。

导航栏

       系统导航栏上列举了项目中的数据对象组织机构,可以在导航栏上增加新的数据对象、删除现在数据对象,设置项目属性等功能。

       导航栏默认显示在界面的左边,如果你想让业务工作区更大些,以便有更大的界面空间处理业务功能,你可以在进入相关的业务功能模块后,通过系统菜单或工具栏的导航命令隐藏或显示功能导航栏。

工作区

       工作区是系统工作区域,工作区根据导航和菜单的不同选择与操作,将会加载不同的功能模块,用于完成必要的任务。

状态栏

       系统状态栏上显示了系统当前的处理任务及任务处理状态,用于通知用户,以便及时了解系统的运行情况。

关于

wps_clip_image-17230

       提供对当前应用程序的描述信息。包括产品名称、版本、开发商、授权信息等。

数据解决方案

概述

       在进行设计数据对象之前,需要先规划自己的项目以及项目中的项目组织,定义好的数据对象项目保存在硬盘上,以方便开发人员的交流和以后的修改。

新建项目

       打开文件菜单的新建或者工具条上的建新按钮,对象设计器新建一个数据模型项目,并重置导航栏和工具区。

wps_clip_image-18260

保存项目

       使用文件菜单中的保存或者工具条中的保存按钮,如果项目文件已经存在于文件系统上,则直接保存文件,如果是新建项目后的第一次保存,则打开另存为对话框保持文件。

wps_clip_image-12689

       在文件菜单中还提供了一个别存为功能,用于把设计模型保存到其他的文件之中。

打开项目

       使用文件菜单中的打开或者工具条中的打开按钮,弹出文件打开对话框:

wps_clip_image-2340

       选择文件系统已经存在的项目文件并打开,系统根据模型文件重置导航栏和清空工作区:

wps_clip_image-5115

项目设置

       在数据模型中定义了项目的一些命名空间,名称,标题,开发语言,数据库设定这样的东西,在模型设计时可以能过项目参数进行修改。

       在导航栏的解决方案节点右键选择“参数设定”,打开参数设定模块:

wps_clip_image-372

       解决方案参数设计分项目参数和数据库连接参数,上图是项目参数,数据库连接设定:

wps_clip_image-1791

       项目名称、项目标准、程序语言、命名空间等参数用于在生成数据访问层代码的过程之中用到,输出目录为生成的代码、文档、SQL脚本的输出根目录。

       数据库连接参数用于从数据库生成数据对象时连接数据库服务器,目前支持SQL2000/2005/2008/Oracle数据库。

数据对象定义

概述

       定义数据对象是对象设计器中最重要的工作,在对象定义信息中,存储了程序中ORM对象所需要的对象属性与数据库表的字段映射信息,同时也存储了数据库表的定义信息。

       对象设计器设计成的模型用与生成项目的数据库定义文件、数据库DDL脚本以及数据访问层的程序代码。

对象组织

       对象设计器中提供了一个目录的概念,即对于数据对象很多的解决方案,我们可以选择在解决方案之中根据应用建立目录,数据对象按目录进行组织。

添加目录

       在导航栏中的实体节点右键点开快捷菜单,选择“新建目录”,系统打开目录属性圣诞框:

wps_clip_image-25765

       填写目录名称和说明后点解“确定”按钮,对话框关闭,新建的目录加载到导航栏,“取消”按钮放弃目录的添加。

       注意:目录名称不能为空,也不能和现有的目录重名。

目录属性

       在导航栏中的某个目录节点右键点开快捷菜单,选择“目录属性”,系统打开目录属性圣诞框:

wps_clip_image-14416

       在目录属性对话框中,可以修改目录名称和说明,完成成点击“确定”按钮完成属性修改,“取消”按钮放弃目录的修改。

删除目录

       在导航栏中的某个目录节点右键点开快捷菜单,在弹出的菜单中选择“删除目录”,系统会提示您是否确认删除,点击“是”删除相应的目录。

wps_clip_image-4398

       注意:删除目录是系统中删除目录信息,不删除目录中的数据对象定义,原目录的中的数据对象转移到解决方案实体节点之下。

对象管理

       设计器中数据对象有两个存在模型,直接位于解决方案这下,也可以依附于解决方案的目录之中,两种不同的方案可以混合使用,根据项目的规模进行合理构建。

添加对象

       在导航栏中的实体节点或者目录节点右键点开快捷菜单,选择“新建实体”,系统工作区打开一个新的对象定义Tab页:

wps_clip_image-32227

       在对象定义Tab页中,可以完成数据对象所指向的数据库表信息定义(数据表名及字段信息)、ORM对象定义(属性及属性与数据字的映射)。

删除实体

       在导航栏中的某个目录节点右键点开快捷菜单,在弹出的菜单中选择“删除目录”,系统会提示您是否确认删除,点击“是”删除相应的目录。

wps_clip_image-14598

       注意:删除目录是系统中删除目录信息,不删除目录中的数据对象定义,原目录的中的数据对象转移到解决方案实体节点之下。

定义实体

wps_clip_image-3661

       在日常应用中,对象设计器工作的90%是由上图的界面完成的,在这个界面中,我们完成数据对象的定义,间接的完成了数据库的设计、ORM对象的设计。

       实体包含名称,数据表,说明和1-N个属性记录,实体的名称,数据库,说明直接在文本框填写。

       实体的属性集合由下面的表格中进行填写,增加新的属性/列,在*标记的行中直接进行写,删除一条记录时使用选中某一条,按下删除键即可。

       在属性定义中,属性的类型(程序类型)与数据类型是联动的,即如果在这两个类型中任务选择一种,另一个类型都会根据类型转换器得到一个对应的类型,因为程序中的类型比较广泛,而数据库的类型比较严谨,所以建议的做法是设置数据类型比较准确一些。

       实体定义模块的UI包含着7个Tab页,最主要的是实体定义Tab页,还附加了4个代码Tab页、一个数据库脚本、一个文档Tab页。

四类代码

       因为AgileEAS.NET平台ORM系统中对实体和表进行了分别的定义,所以针对每个数据对象定义,会生成4个代码文件,分别为表接口、表实现、实体接口、实体实现。

wps_clip_image-6935

       在设计器环境中直接向IDE环境复制代码,使用右键菜单中的全选、复制即可,也可以通过Ctrl+A、Ctrl+C实现。

DDL脚本

       针对每个数据对象定义,工具会生成一段SQL脚本,定义数据表的创建和字段,数据表和字段的注视等自描述信息也会一并写进脚步。

wps_clip_image-11467

       同样,和程序代码一样,可以使用右键菜单中的全选、复制即可,也可以通过Ctrl+A、Ctrl+C实现。

文档定义

       针对每个数据对象定义,工具都生成一段数据库定义文档,包含数据表名称、说明、所有者,各数据列名称、数据类型、是否为空、主键等信息。

wps_clip_image-30115

解决方案输出

概述

       对象设计器提供基于解决方案的代码输出、文档输出、DDL脚本输出,可以一步生成供vs2005之上打开的数据层项目和解决方案。

输出代码

       通过工具菜单中的生成代码功能打开代码输出对话框:

wps_clip_image-28335

       在对话框中选择输入目录,默认为在解决方案属性中设计的输出目录,点击“生成”按钮完成解决方案的生成,输入如下目录结构:

wps_clip_image-24709

       我们在VS环境中打开AgilePM解决方案:

wps_clip_image-11525

模型修改

       对象设计器生成的代码采用了分部类的技术方案,即同一个数据对象把生成的4个代码文件分解成8个代码文件,其中4个代码文件生成与数据对象属性定义相关,建议不做修改,文件名中带有.Generator.cs,并且全部组织在项目的Generat文件夹中,程序代码中有以下注释:

//------------------------------------------------------------------------------

// <auto-generated>

//     此代码由SmartEAS.NET/AgileEAS.NET数据模型设计工具生成。

//     运行时版本:2.0.50727.3053

//

//     对此文件的更改可能会导致不正确的行为,并且如果

//     重新生成代码,这些更改将会丢失。

// </auto-generated>

//------------------------------------------------------------------------------

       另外4个文件用于存储用户自定义的数据访问代码,文件名不带.Generator.cs,生成的代码位于项目的根目录之中。

       为什么要做这样的设定呢,这得益长期的开发实践,市面上有很多代码生成工具,虽然说生成器工具可以加速开发,但是生成的代码是绝对不会满足复杂应用,程序员必须对生成的代码增加新的功能或者修改,那么当数据定义模型发生改变之后,重新生成的代码就会把程序员所做的修改覆盖。

       采用分部类的方案进行分解之后,我们把与数据模型定义与程序员的特殊业务代码进行了分离,当模型发生改变之后,重新生成的代码保留了程序员的修改,只覆盖Generat文件夹中的代码文件。

接口驱动的数据访问层

       AgileEAS.NET平台一直在实践着接口驱动的思想,同时也在建议应用开发基于接口驱动,AgileEAS.NET平台实现一组实用并且简单的ORM,应用开发的数据访问层也就是基于ORM技术的数据访问层。

       我们在应用开发中,经常会遇到同样的产品需要运行在不同的数据库系统之上,比台有客户需要运行在SQLServer之上的版本、有的需要运行在ORACLR之上的版本。

       在这种情况下,采用接口驱动的数据访问层是一个不错的选择;定义一组数据访问层接口组件及其不同数据库类型的的数据访问层实现组件,业务实现依赖于数据接口层而与数据实现层解耦,运行期不同的数据库类型需求只需要修改系统的配置文件。

       有关于数据接口层的配置请参考《AgileEAS.NET平台开发指南》,这里不在详细说明。

       对象设计器生成的代码默认是基于接口驱动的数据层,即解决方案中包含两个项目,一个是数据访问接口层,另一个是基于当前设计时环境的数据库实现。

       在现实环境中,有些应用我们从一开始就知道他只可能应用于某种单一的数据库环境,对于这种应用,如果还采用基于接口驱动的数据访问层,其修改成本就会略高一些,AgileEAs.NET平台也支持这种非接口驱动的数据层,即生成单一的数据层项目。

       在对象设计器的解决方案属性中有一个选项“是否生成接口层”,这个选项默认是选中的,如果只是基于单一数据库,请取消选择,项目的输出方案则变为:

wps_clip_image-30380

wps_clip_image-3255

DDL脚本

       通过工具菜单中的生成脚本功能打开脚本输出对话框:

wps_clip_image-12358

       在对话框中选择输入文件,默认为在解决方案属性中设计的输出目录之下的SqlScript\TableCreate.sql,点击“生成”按钮完成DDL脚本的生成,用SQL Server Management Studio打开生成的脚本文件:

wps_clip_image-6262

文档浏览

       通过在“工具”菜单中的“文档浏览”即可以在工作区打开一个解决方案文档浏览窗口,显示解决方案中所有数据对象/数据表定义信息:

wps_clip_image-7032

       开发人员可以直接复制到word、wps等字处理软件进行编辑,也可以直接使用“工具”菜单中的输出文件(Rtf、Excel、Html)直接输出数据库定义文档:

输出文档

       通过在“工具”菜单中的“输出文件(Rtf)”、“输出文件(Excel)”、“输出文件(html)”打开文档输出对话框:

wps_clip_image-813

       通过“浏览..."按钮选择输出文件或者使用默认的文件路径,最后点击“生成”按钮完成数据库文件的输出:

wps_clip_image-20370

       Excel格式:

wps_clip_image-7882

       html格式:

wps_clip_image-5916

       Rtf格式:

wps_clip_image-12965

从数据库生成

概述

       对象设计器不仅提供了基于原生的数据对象定义模型生成数据库表对象的能力,同时也提供了从现在的数据库对象反向生成数据对象定义的能力(反向生成)。

操作步骤

       通过“工具”菜单中的“从数据库生成”功能打开数据库连接对话框:

wps_clip_image-28477

       选择反向生成的源数据库类型,填写服务器、用户名、密码等信息(默认为解决方案的数据库连接信息),点击“下一步”打开数据库表、视图选择对话框:

wps_clip_image-30158

       数据库中的数据库、视图基于用户/架构、数据表/视图的组织方式,首先选择相应的用户/架构,再选择要导入的数据库表、视图,点击“开始”完成导入数据对象到当前模型定义:

wps_clip_image-12093

       反向生成工具会读取数据库元数据定义信息如字段名称、数据类型、长度、主键、是否为空、注释等信息,生成相应的数据定义模型,开发人员需要进行修改,主要是数据对象的属性名称大小写调整,默认生成的属性为首字母大写,以及补充数据对象、数据库表字段的标题、注释信息。

       本文的PDF版本下载:AgileEAS.NET平台对象设计器使用教程

QQ群:15118502

AgileEAS.NET应用开发平台-系列目录

AgileEAS.NET官方网站


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。



    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/09/09/1822585.html,如需转载请自行联系原作者


相关文章
|
4月前
|
人工智能 开发框架 .NET
.NET技术的强大功能:.NET技术的基础特性、在现代开发中的应用、以及它如何助力未来的软件开发。
.NET技术是软件开发领域的核心支柱,以其强大功能、灵活性及安全性广受认可。本文分三部分解析:基础特性如多语言支持、统一运行时环境;现代应用如企业级与Web开发、移动应用、云服务及游戏开发;以及未来趋势如性能优化、容器化、AI集成等,展望.NET在不断变化的技术环境中持续发展与创新。
128 4
|
4月前
|
人工智能 物联网 开发者
.NET技术在现代软件开发中的应用愈发广泛和深入
.NET技术是软件开发的关键支柱,本文分为三部分探讨其创新应用:最新进展如.NET 5/6统一平台、性能提升、跨平台支持增强、云集成优化及开源社区贡献;应用场景涵盖微服务架构、物联网、AI/机器学习、游戏及移动应用开发;未来发展潜力在于持续性能优化、云原生支持、新兴技术集成、生态扩张及教育培训加强。.NET正以其强大适应性和创新潜力引领软件开发的新方向。
51 3
|
3月前
|
Ubuntu 持续交付 API
如何使用 dotnet pack 打包 .NET 跨平台程序集?
`dotnet pack` 是 .NET Core 的 NuGet 包打包工具,用于将代码打包成 NuGet 包。通过命令 `dotnet pack` 可生成 `.nupkg` 文件。使用 `--include-symbols` 和 `--include-source` 选项可分别创建包含调试符号和源文件的包。默认情况下,`dotnet pack` 会先构建项目,可通过 `--no-build` 跳过构建。此外,还可以使用 `--output` 指定输出目录、`-c` 设置配置等。示例展示了创建类库项目并打包的过程。更多详情及命令选项,请参考官方文档。
225 11
|
3月前
|
人工智能 前端开发 Devops
.NET技术自发布以来,在软件开发领域发挥了重要作用
【9月更文挑战第12天】.NET技术自发布以来,在软件开发领域发挥了重要作用。本文分为三部分探讨其在现代开发中的应用:首先介绍.NET的核心价值,包括语言多样性、强大的开发工具支持、丰富的类库、跨平台能力和活跃的社区;接着分析其在企业级应用、Web开发、移动应用、云服务及游戏开发中的实际应用;最后讨论.NET面临的挑战与未来趋势,如性能优化、容器化、AI集成及跨平台框架竞争等。通过不断的技术创新和社区驱动,.NET将持续推动软件开发的进步。
46 4
|
4月前
|
物联网 编译器 API
.NET 6震撼发布:解锁跨平台新纪元,性能飞跃背后的秘密,未来软件开发将如何被重新定义?
【8月更文挑战第28天】.NET 6在简化开发方面也做出了诸多努力。最小Web API的引入,让开发者仅需几行代码即可构建出功能完整的Web服务。
84 4
|
4月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
108 1
|
4月前
|
敏捷开发 设计模式 开发者
【揭秘终极利器】AgileEAS.NET:服务定位器模式的魔法,如何让企业级软件开发瞬间提速?揭秘背后的技术奥秘与实战指南!
【8月更文挑战第16天】AgileEAS.NET是基于DotNet的企业级敏捷开发平台,其服务定位器模式助力构建高度解耦系统。通过全局服务目录动态查找服务,避免硬编码依赖。在AgileEAS.NET中,服务定位器以静态类形式封装服务注册与检索功能。示例展示了如何注册与获取服务实例,如在`UserController`中通过服务定位器使用`IUserService`。此模式整合到框架生命周期管理,便于各处获取服务实例,提升开发效率。然而,应适度使用并考虑依赖注入容器以增强代码可维护性和可测试性。
76 4
|
4月前
|
人工智能 前端开发 开发工具
.NET技术的开发潜力是巨大的,其核心优势和广泛应用不断推动着软件开发的进步
.NET技术自推出后已成为软件开发的关键力量。本文分三部分探讨其开发潜力:核心优势如统一平台、强大工具与跨平台能力;现代应用中的创新,包括企业级与Web应用、移动开发、云服务及游戏制作;以及面对的挑战与未来机遇,如性能优化、容器化支持、AI集成等。.NET的持续发展正塑造着软件行业的未来。
101 1
|
4月前
|
Java Spring 供应链
Spring 框架事件发布与监听机制,如魔法风暴席卷软件世界,开启奇幻编程之旅!
【8月更文挑战第31天】《Spring框架中的事件发布与监听机制》介绍了Spring中如何利用事件发布与监听机制实现组件间的高效协作。这一机制像城市中的广播系统,事件发布者发送消息,监听器接收并响应。通过简单的示例代码,文章详细讲解了如何定义事件类、创建事件发布者与监听器,并确保组件间松散耦合,提升系统的可维护性和扩展性。掌握这一机制,如同拥有一把开启高效软件开发大门的钥匙。
50 0
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
44 7