一. 摘要

首先非常感谢各位朋友的大力支持,我会努力的写好本系列,本系列主要是以我在使用AgileEAS.NET应用开发平台中经验的总结,个别认识不足之处还请大家多

批评指出,我就先选择一个简单的应用来看看如何使用AgileEAS.NET应用开发平台,从开发者角度,能够快速上手开发出自己想要的应用,究竟这个平台能给我们的

开发带来什么样的开发成果,能为我们提供什么样的解决方案,可能这是我们最关心的。

闲话,之前写的部分文章可能条理性也不是特别清楚,特别参考博客园部分大牛的组织形式来书写,通过清晰的文章结构,不但能让自己写文章的时候思路清晰,

更能为看到这篇文章的朋友理解我讲解的目的,这就是最好的结果啦。

二. 本文提纲

· 1.摘要

· 2.本文提纲

· 3.AgileEAS.NET应用开发平台回顾

· 4.准备工作

· 5.第一个简单程序

· 6.经典的程序+数据库模式

· 7.本文总结

· 8.源码下载

三. AgileEAS.NET应用开发平台回顾

AgileEAS.NET应用开发平台自动提供了ORM技术,代码生成器工具,基本的权限管理功能[中级讲解],基本的系统配置管理[中级讲解],系统缓存功能、快速的

业务开发,统一版本发布,快速的程序部署,智能客户端等工具。

AgileEAS.NET应用开发平台作为一个应用平台,已经封装了底层相关代码功能,平台采用插件化的敏捷开发思想,不断的迭代,将新开发的模块功能集成到平台

中去,通过对模块的权限管理,完成对模块的配置。

AgileEAS.NET平台的核心理念涵盖两个方面,第一方面是基于一种软件工程的实践,插件模块独立并行开发和总装集成的一种思路,第二方面则是利用.NET技术

(反射调用)实现了这种思想。由此可知AgileEAS.NET应该包含以下四部分内容:第一、软件过程工程的支持,第二、插件标准与平台(运行容器),第三、插件的组织及

管理,第四、支持插件快速开发的技术及工具。

四. 准备工作

AgileEAS.NET安装包下载了完整的组件包之后,该程序包中基本上包含了AgileEAS.NET平台的所有的组件DLL,程序中只要引用相应的Dll就能使用该组件提供

的功能。

主要的程序集名称及功能如下:

EAS.Data.dll 主要提供数据访问的服务内部集成ORM服务的相关功能,可用来二次开发。

EAS.Kernel.dll 该组件提供了平台底层的相关服务例如:序列化,加密,安全,集合等其他服务。

EAS.Logger.dll 该组件提供了功能强大而丰富的日志管理的服务。

EAS.Session.dll 该组件提供了客户端与服务器交互的上下文回话资源管理服务。

EAS.IOCContainer.dll 该组件提供了系统运行时的容器服务,包括平台本身的服

务提供给运行在容器中的系统服务,也包括插件的服务管理,生命周期,权限等

等。

更多。。。请点击下载相应的组件使用说明使用文档.CHM下载

目前我们构建的简易程序将主要基于EAS.Data.dll,EAS.Kernel.dll ,

EAS.Session.dll ,EAS.IOCContainer.dll 来完成基本的程序功能。

五. 第一个简单程序

我们这里讲解的实例都是2010的解决方案,但是看看代码其实都是都是.net

framework2.0版本的,所以大家可以放心使用,不会有版本的问题,我这里是因为

只有2010目前。

一、新建一个工程,引入这几个dll。EAS开头的这四个核心Dll。

上篇我们将结果如何通过代码生成器来生成Model与数据访问层的代码,具体的

业务代码并没有生成。

如果还不知道如何使用ORM模型设计器请看:第一章:ORM设计工具的使用。

如果使用代码生成器生成的代码与自己写的ORM代码有些区别的地方在于,代码

生成器生成的文件的组织结构不同。

如下图:

这是代码生成器生成的代码,里面有个文件夹Generat,里面的文件与具体的类名

之间的关系是通过partial关键字区分。意思就是说,Generat文件夹中的每个类都与跟

目录下的类文件一一对应,我们来举个例子看看类文件的内容有什么不同吧

  我们已IProduct为例吧,与之对应的是

Generat文件夹中IProduct.Generator.cs

IProduct.Generator.cs中代码的内容:一般包含具体的实体信息代码

public partial interface IProduct:EAS.Data.ORM.IEntity

{

/// <summary>
       /// 记录编号 。
       /// </summary>
       int Idn
       {
           get;
           set;
       }

/// <summary>
       /// 产品编码 。
       /// </summary>
       string Code
       {
           get;
           set;
       }

/// <summary>
       /// 产品名称 。
       /// </summary>
       string Name
       {
           get;
           set;
       }

/// <summary>
       /// 产品规格 。
       /// </summary>
       string Spec
       {
           get;
           set;
       }

/// <summary>
       /// 大包装 。
       /// </summary>
       string Bigunit
       {
           get;
           set;
       }

/// <summary>
       /// 小包装 。
       /// </summary>
       string Smallunit
       {
           get;
           set;
       }

/// <summary>
       /// 包装规格 。
       /// </summary>
       int Packrulr
       {
           get;
           set;
       }

/// <summary>
       /// 说明 。
       /// </summary>
       string Description
       {
           get;
           set;
       }
   }

IProduct.cs中的代码

/// <summary>
/// 实体接口 IProduct(Product)。
/// </summary>
public partial interface IProduct
{
}

由此可见这是AgileEAS.NET应用开发平台一个设计的技巧之处,以后为该业务实体添

加相应的业务代码时,IProduct.Generator.cs与IProduct.cs修改的内容是分离的,

虽然只是物理文件上的分离

这是我自己手写的代码工程文件:

public interface IProduct : EAS.Data.ORM.IEntity
   {
   }

当然就没有那么多文件了,但是所有的东西都要自己写。具体的写法与代码生成器中的写法基本类同。数据访问层的代码类同,不过这里面有个需要注意的地

方,就是所有的业务实体类在定义实体时,必须定义一个与该实体相对应的实体表,默认情况下,查询统计等功能都是基于这个实体表来实现的。

如何在实体表中定义查询方法呢?这个我想大家都明白,肯定是在接口中定义查询方法,然后实现层实现这个查询方法,在业务实现的时候,就可

以调用相应的查询方法去实现相关的业务功能。

这一步主要是完成接口层与业务层之间的实体基本信息与相关的业务操作方法。

二、如何实现自己的查询业务。

上面简单介绍了如何定义自己的查询方法,下面我就一步步的演示如何来做。

例如我再Iproduct实体对应的IproductList实体表上新建一个查询方法GetList()可以没有参数,没有返回值,默认情况下为void。因为这种情况下,默认返回

的是系统提供给实体的一个默认List列表,该列表是个DataTable的形式,可以通过foreach循环来循环表中的实体。实体都是对应一个DataRow。

我们来看一般情况,就是有查询条件的查询方法的定义。

/// <summary>
       /// 没有返回值
       /// </summary>
       void GetList(string name,int classID);//产品名称,产品分类进行检索,没有返回值,默认提供LIST集合。

condition是AgileEAS.NET应用开发平台提供给开发人员一个通用的WHERE条件类,该类中提供了丰富的方法。详细您在使用的过程中会慢慢的发现其中的奥

秘。 condition.AddElement("数据库列名", "参数名", EAS.Data.ORM.ElementType.EqualTo);每个方法都有相应的说明。

最终的代码形式如下:

这里只是演示如何基于实体表书写查询方法。

三、书写UI层,调用已有的业务代码,完成简单业务功能。

直接带代码中书写业务代码:

上面都有详细的代码注释说明,相信大家都能看明白。

其他的业务代码的形式就和大家平时书写的业务代码的形式相同。

四、除了查询之外的相关操作【添加、编辑、删除】。

例如以产品编辑为例:

这里已大家最常见的窗体间传值来做

下面是实体的相应操作:

具体的详细代码,请下载相应源码。源码最后提供下载。

六. 程序模式配置

上图中的生命周期的解释有误,singleon的意思代表单例的意思。

七. 本文总结

这篇文章讲的概念也不是很多,但是作为基础篇,也希望大家能引起注意,因为没有它,我们后面的相应教程也无从谈起。通过这篇文章,我们必须要对这个平台

有一个感性和理性的认识。最重要的是要认清他的使用方法及这个平台给我带来的相应帮助,当然今天的例子也只是平台开发应用中的的最简单的一个实例,但是我们

要养成思考的习惯,比如其他的开发平台中的做法是怎么样的开发模式,而自己在项目过程中又是什么样的开发模式,开发平台给我们做程序的过程中带来了什么,改

进了什么,或者您认为对目前这个开发平台有更好的意见和建议都可以提出来,当然由于本人才疏学浅,可能很多地方没有讲清楚,如果有误之处还希望各位能够批评

指正!

希望对该平台感兴趣的朋友们,可以有个简单的认识,深刻的认识请持续关注。

八. 源码下载

这里只是提供项目的使用中的简单实例,具体的业务代码并没有书写,大家如果想更深入的了解使用,请持续关注本系列,本系列将会越来越深入的讲解具体的使

用。

源码下载

   更多平台文档


更多链接

AgileEAS.NET平台开发指南-系列目录

AgileEAS.NET应用开发平台介绍-文章索引

AgileEAS.NET官方网站

敏捷软件工程实验室

AgileEAS.NET平台官方交流QQ群:116773358


构建基于AgileEAS.NET应用开发平台的简单应用程序相关推荐

  1. 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇

    为什么80%的码农都做不了架构师?>>>    开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的 ...

  2. AgileEAS.NET敏捷开发平台案例-药店系统-项目说明

    开篇 我们都知道开发一个软件必须要有开发的背景和特殊的需求等等,我们就来分析我们开发该系统的项目背景和开发该项目的目的.下面我们来分析下开发药店系统的目的 及可行×××分析,对现有平台构建该项目的风险 ...

  3. 构建基于LXR的源代码浏览平台

    构建基于LXR的源代码浏览平台 作者: 张桂权 如果你浏览过FreeBSD/Linux Kernel Cross Reference那么对LXR应该不会很陌生了.LXR,即"the Linu ...

  4. 如何取回服务器上的文件网页设计,毕业设计(论文)-基于内容中心网络开发平台的文件分享精选.docx...

    毕业设计(论文)-基于内容中心网络开发平台的文件分享精选 基于内容中心网络开发平台的文件分享摘要当前的网络环境与网络诞生之初时相比已经发生变化,信息更多被用于分享和合作,而非仅仅从一地传送至另一地,基 ...

  5. JEECG v3.0.beta发布,基于代码生成器的智能开发平台

    JEECG(J2EE Code Generation) 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE半智能开发模式, 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻 ...

  6. 构建基于openEuler2209的OpenStack云平台(十一)

    上一篇:构建基于openEuler2209的OpenStack云平台(十) 11 安装和配置Heat服务(Orchestration service) Heat服务(Orchestration ser ...

  7. 基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统

    基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加 ...

  8. mac启动本地redis_通过 Laravel Sail 构建基于 Docker 的本地开发环境

    Laravel 官方最近发布了 Laravel Sail -- 一个轻量级的.基于 Docker 的 Laravel 本地集成开发环境,今天学院君就以 Mac 系统为例,给大家演示下如何基于 Lara ...

  9. 简道云-快速构建数据应用 JNPF 快速开发平台框架源码 java+Netcore版本 旗舰版企业版

    简道云 简道云是一个零代码轻量级应用搭建平台,旨在满足企业/部门的个性化管理需求.拥有表单.流程.仪表盘.知识库等核心功能.通过拖拉拽的操作方式,让企业快速搭建出符合自身需求的管理应用.简道云的灵活使 ...

最新文章

  1. Service Fabric独立集群搭建
  2. PPT文件转avi/wmv/mpeg格式最好的软件
  3. js 字符串转成货币格式, js转货币
  4. dell系统重装后无法进入系统_笔记本电脑常见故障开机无法进入系统
  5. app后台开发笔记-新手
  6. 如何远程访问服务器的 Jupyter notebook
  7. python-Generalization of Hops
  8. 顶岗实习周记java方向_前途虽远,扶摇可接 | 商务日语专业顶岗实习动员大会...
  9. 使用SQL Server事务复制将SQL Server数据库迁移到Azure SQL数据库
  10. smb文件共享_使用SMB文件共享作为存储替代方案
  11. mac系统csv转ansi_迅捷文字转语音 for mac
  12. 硬件课程设计:步进电机控制系统
  13. Sql Server Express版本升级到企业版
  14. cdrx4自动排版步骤_教你用CorelDRAW X4轻松排出干净整齐段落 coreldraw段落文字快速排版技巧图文教...
  15. word操作技巧总结--图片无法显示复制、空格、字体无法修改等
  16. react路由动画切换
  17. 2进制快速转换为16进制
  18. decorate装饰模式
  19. 一篇论文摘要计算机英语,计算机毕业论文英文摘要的写作方法.doc
  20. 亚马逊echo中国使用_如何设置和配置您的Amazon Echo

热门文章

  1. 判断input框是否为空
  2. js 日历插件开发
  3. Android开源项目SlidingMenu本学习笔记(两)
  4. Jenkins设置svn授权
  5. MySQL中INSERT INTO SELECT的使用
  6. MySQL中MySQL X.X Command Line Client一闪而过的问题
  7. Android Studio打包~安卓打包踩坑及总结
  8. php高版本安装ecshop错误解决方法
  9. adb devices unauthorized解决方法
  10. layer,一个可以让你想到即可做到的javascript弹窗(层)解决方案