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

简介:
一. 摘要

      首先非常感谢各位朋友的大力支持,我会努力的写好本系列,本系列主要是以我在使用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。

       image

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

业务代码并没有生成。  如果还不知道如何使用ORM模型设计器请看:第一章:ORM设计工具的使用。


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


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


      如下图:      image

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

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

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

     image  我们已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修改的内容是分离的,

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

      image

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

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

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

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

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

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

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

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

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

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

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

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

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

image

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

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

       最终的代码形式如下:

       image

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

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

image

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

      image

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

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

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

      image

      例如以产品编辑为例:

      image

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

     下面是实体的相应操作:

     image

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

六. 程序模式配置

     image

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

七. 本文总结

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

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

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

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

指正!

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






本文转自何戈洲博客园博客,原文链接:http://www.cnblogs.com/hegezhou_hot/archive/2010/09/09/1822312.html,如需转载请自行联系原作者


目录
相关文章
|
1月前
|
存储 算法 安全
.NET 平台 SM2 国密算法 License 证书生成深度解析
授权证书文件的后缀通常取决于其编码格式和具体用途。本文档通过一个示例程序展示了如何在 .NET 平台上使用国密 SM2 算法生成和验证许可证(License)文件。该示例不仅详细演示了 SM2 国密算法的实际应用场景,还提供了关于如何高效处理大规模许可证文件生成任务的技术参考。通过对不同并发策略的性能测试,开发者可以更好地理解如何优化许可证生成流程,以满足高并发和大数据量的需求。 希望这段描述更清晰地传达了程序的功能和技术亮点。
129 13
.NET 平台 SM2 国密算法 License 证书生成深度解析
|
9天前
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
101 72
|
2月前
|
C# Android开发 iOS开发
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
131 23
|
3月前
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
56 12
|
3月前
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
71 9
|
3月前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
4月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
71 3
|
4月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
Android开发 开发者
“.NET研究”如何发布你的Android应用程序
  本文是从 Some Things To Know About Publishing Android Apps 这篇文章翻译而来。     到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。
1076 0
|
3月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统

热门文章

最新文章