魏琼东,系统分析师、系统架构师、高级项目经理。有17年开发和管理经验,擅长企业软件过程改进、系统分析与架构设计、.NET平台架构技术、SQL Server/ORACLE数据库技术、分布式架构体系及高性能并行计算,尤其对中小软件企业的企业级软件研发管理体系有着深入的研究与应用。
系列回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作和一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的条件查询两篇文章我演示了ORM的基本使用并引申到开发中最常见的条件查询业务,今天我基于前一篇文章的条件查询的基础演示根据条件的批量删除与更新。
系列回顾 本系列前面有三篇文章介绍和演示了AgileEAS.NET平台ORM组件的开发流程及其常见的使用方式,通过前面的三篇文章,大家都可以正常的使用ORM进行正常的开发,本文将提到一个ORM结构性的问题,ORM对象的访问器。
前文回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作一文给大家介绍了如果使用ORM实现数据的读取、插入、更新与删除基本业务也讲解了ORM开发基本流程。
系统回顾 前面的四篇文章我详细的介绍了AgileEAS.NET平台中统一数据访问(UDA)组件的用法,分析了两种数据处理流程的优缺点,以及基于懒惰模式的委托执行,事务处理方法,基本涵盖了基于数据库支持的业务系统的技术点。
前文回顾 前面的三篇文章,我把AgileEAS.NET平台的UDA的应用案例从数据处理方式与流程、基础的语句执行、查询处理以及引入的委托处理机制、事务的两种处理方法,基本上涵盖了基于数据支撑的业务信息系统所涉及的所有数据库处理。
前文回顾 在之前的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句和一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用两篇文章中详细的介绍了如何使用UDA进行常规的业务进行操作,以及AgileEAS.NET平台中UDA的两种数据处理模式对比,以及基于懒惰模式的代理查询。
上文回顾 上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-使用UDA操纵SQL语句一文中演示如何使用UDA进行常规的业务进行操作,我们看到两种数据操纵流程,一种是原始的操作流程,另一种是简化的数据操作流程,应用开发人员不用关心数据库的打开与关闭,这些工作由UDA为我们完成,我们只需要实现与业务相关代码即可。
上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义中对本案例所涉及的数据表及部分数据,本文开始将从最基本的业务,数据访问--SQL语句操纵开始。 在AgileEAS.NET平台中,对数据访问进行了封装,称为UDA(统一数据访问),有关于AgileEAS.NET平台UDA的介绍请参考AgileEAS.NET之统一数据访问一文。
基实这个系统是我AgileEAS.NET平台应用开发教程-案例计划的详细分解,原来想着按前面文章的思路应用写,但是发布之前的想法有点乱,我就把他分解成两个系列,使用step-by-step的方式来降解,或许这样可以会更好一些。
AgileEAS.NET平台提供了独立的配置文件,主要涉及一般配置信息、IOC对象配置信息、SL服务配置信息、WinService插件配置信息: 系统配置文件重有如下配置项定义: EAS.
基础类库介绍 AgileEAS.NET平台/中间件是一套以平台+插件为核心的应用平台,平台在纵向扩展上以平台加插件为准则。而在针对每个插件或者平台的实现,则由一组公共组件支撑插件开发过程的数据访问、业务逻辑等支撑。
AgileEAS.NET平台介绍 AgileEAS.NET应用开发平台,或者说AgileEAS.NET应用中间件,简称EAS.NET,是基于敏捷并行开发思想以及.NET构件技术而开发的一个应用系统快速开发平台,用于帮助中小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.
分布式系统 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
报表系统介绍 我们都知道,在信息系统开发过程中,报表占据着很重要的位置,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,在如何选择一个合适的报表系统也让很多开发员纠结,AgileEAS.
业务分层 依据行业经验来看,分层是解决复杂问题的简单方法,通过分层,可以把一个复杂问题分解为不同层次应用的小问题,解决各层小问题的难度小于总的问题难度;分层最成功能莫过于计算机网络通信协议,ISO/OSI、TCP/IP。
对象关系映射 AgileEAS.NETORM并没有采用如NHibernate中映射文件的文件的模式,而是采用了直接硬编码的模式实现,ORM体系设计采用了属性/列>数据对象>数据集合(表)的结构: 最基本的思路是一个记录/实体(IEntity)映射一条记录,一个实体包括若干属性/列(Colunm),而一组IEntity和一组Colunm组成一个数据表对象(IEntity),用于对象一个表、视图、或者一个查询结果,下面我涉及到的类、接口介绍一下: Column 相当于一个数据库表的一个列。
统一数据访问介绍 统一数据访问(Uniform Data Access,简写为UDA)用于隔离系统和数据平台,使系统可以在各种数据库平台上自由移植。该数据库访问接口要求通过该接口对数据库进行访问的模块要提交标准的SQL语句,而不仅仅是对当前数据库有效的语句。
插件契约介绍 我们知道,要基于平台(容器)加插件的这种模式进行开发,我们必须定义一组契约,用于约束模块插件开发,也就是说,模块插件需要遵守一定的标准进行开发,才能正常被容器调用,这就是IModule所定义的内容。
过程介绍 AgileEAS.NET平台基于敏捷并行开发的一种实践,采用优秀先进的Microsoft .Net构件技术的插件式开发,AgileEAS.NET平台及其提供的一系列工具涉及产品设计、编码实现、测试运维等环境。
AgileEAS.NET平台的开发指南系列文章,说是一个系列,实际上是我之前写好的一个文档,文档比较长,我就按章节分解着发上来,本系统主要讲述应用AgileEAS.NET平台进行开发的过程,以及各个开发过程的一些作法。
概述 AgileEAS.NET平台提供了自己的报表设计器,并且把报表和平台集成在一起,开发人员可以使用独立的报表设计器设计好报表之后导入到AgileEAS.NET平台中,也可以AgileEAS.NET平台的报表管理中设计报表。
前言 所谓AgileEAS.NET平台系统管理即指AgiLeEAS.NET平台中用于完成插件的发现、安装、配置及组织管理功能的一组具体应用,以及提供的基于AgileEAS.NET平台的应用系统所提供的一组基础应用如账户、角色、权限管理等等。
介绍 AgileEAS.NET平台做为一个快速应用开发平台,其目的为是为了提高应用软件的生产效率,如何软件开发的生产效率,方法是多种多样的;使用工作简化开发中低技术重复工作可以是一种行之有效的途径。
AgileEAS.NET应用开发平台最博客园最早的一篇介绍是2010年4月19号发的,随后也陆续发布了一些相关的介绍和应用的文章,最近差不多也一个多用不写了,主要原因是想着平台发布之后再继续写。
我在前面的.NET快速开发实践中的IExtenderProvider扩展组件和其他两篇Post介绍了IExtenderProvider扩展编程模式和应用IExtenderProvider实现实体与对象的做法与例子,下面我为介绍一下在管理信息系统开发中一个常用的功能,控件的输入焦点跳转,我们知道,系统为我们提供了Tab和Shift+Tab切换输入焦点的功能,但是这里面有一个问题,即最终操作者最不习惯于使用Tab进行切换输入焦点,因为都已经习惯于无鼠标操作,常使用回车,上下方向键进行操作以实现焦点切换。
我在前面的.NET快速开发实践中的IExtenderProvider扩展组件和.NET快速开发实践之应用IExtenderProvider实现对象与UI控件的绑定两篇Post介绍了IExtenderProvider扩展编程模式和应用IExtenderProvider实现实体与对象的...
说起扩展编程组件,我们不得不起到一个接口IExtenderProvider,参考msdn的定义:定义将属性扩展到容器中的其他组件的接口;下面我贴上IExtenderProvider的定义: /// /// 定义将属性扩展到容器中的其他组件的接口。
前面的文章服务定位器(SL)与AgileEAS.NET中的实现介绍了服务定位器的一些概念、应用场景与AgileEAS.NET平台中SL的实现,本文是这骗文件的一个例子与Demo,详细的演示SL在应用开发中的使用。
首先说一下 ,或许我是个懒汉,博客差不多已经一个月没有写了,给朋友们说声抱歉,最近发生了很多事,南方洪水呀洪水,北方热呀热,兰州遇到不知道多少年没有遇到的40度高温,其实说这些是扯谈的事,还得要生活啊,原本已经睡下了,睡不着怕起来写了这篇Post。
我们都知道,在做管理信息系统应用产品的部署和升级是很让人头大的过程,上百个客户段节点的程序都得你去更新一遍,特别是在项目的上线调试阶段,频繁的更改引起的程序部署,可以把你累死,把项目方的系管也累的半死。
会话从字面意义上来理解,是一次对话,在我们系统中怎么理解呢,会话就是一次交互,应和程序客户端和服务器端进行一个业务交互就是一个会话,会话生存与客户与服务器之内,会话在软件业中被用的很广,在Web大家很熟悉的Session,就是一个会话,他表示的是Web服务器和一个网页浏览都的一个交互,基于一个网站(应用程序的)一个交互,会话在客户浏览内在的过程中提供浏览网页需要在客户端和服务器端的一些参数。
控制反转,即IOC(Inversion of Control),也叫反转模式,也称依赖注入DI(Dependency Injection)模式,关于此概念的解释我在此文不做过讲说明。 对于设计模式类的东西,我也没有认真系统的去研究过那X类N种设计模式,无论何种设计模式,都用于解决一个问题,那就是解决对象之间的耦合关系,即解耦。
AgileEAS.NET平台做为一个快速应用开发平台,其目的为是为了提高应用软件的生产效率,如何软件开发的生产效率,方法是多种多样的;使用工作简化开发中低技术重复工作可以是一种行之有效的途径。
我们都知道,管理信息系统类的项目报表的位置是何等重要,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,我从事软件开发的这八、九年中,98%的项目都是管理信息系统项目,都时时被报表纠结着,早年用VB开发及至.net1.1时代都一直使用水晶报表,客观的讲,水晶报表是一套非常强大非常完善的报表系统,但是Vb6乃至.net1.1时代的部署可以把人搞的疯狂。
上一篇文章AgileEAS.NET之数据关系映射ORM简单介绍了一下AgileEAS.NET平台中ORM对象的组织机构体系,但并没有对其所执行的数据存取操作介绍,在AgileEAS.NET中,我对ORM实体及其上的数据操作实现进行了分离,实体对象只呈现数据,而实体的增加、修改、更新、删除、缓存操作都通过ORM访问器实现。
上一遍我介绍了AgileEAS.NET中统计的数据访问,本文我将来介绍AgileEAS.NET中的ORM实现思路。关于ORM的概念和介绍,我在此就不在重复介绍了,我相信大家都很熟悉这个概念了。
统一数据访问(Uniform Data Access,简写为UDA)用于隔离系统和数据平台,使系统可以在各种数据库平台上自由移植。该数据库访问接口要求通过该接口对数据库进行访问的模块要提交标准的SQL语句,而不仅仅是对当前数据库有效的语句。
前面的文章AgileEAS.NET之插件接口IModule对插件的基本契约宝义也就是接口做了一个介绍,本文将提供另一种模块插件的定义,采用属性标记插件。 我们定义了ModuleAttribute属性: ModuleAttribute /// /// EAS.NET模块插件属性。
前面的文章AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对插件的基本契约宝义和运行容器做了一个介绍,但是在开发中并不是对每个模块都去实现这样的接口,我们在基于一些曲型的应用中提供了一些基础实现,应用开发者可以选择继续这个基础实现以实现特定的功能。
在前几天我发布了基于ActiveXForm/SmartClient的在线演示,在ActiveXForm和/SmartWin在演示中,我们用两种表现试展示了AgileEAS.NET在WinForm开发技术上的东西,今天我发布一个基于AgilEAS.NET平台基于WebForm技术的在线演示。
今天放出了AgileEAS.NET的ActiveXForm和SmartWin的体验,在大家对为东西有个简单的了解和感觉后,我会选择在合适的时间发放完整的开发包。 我想有的朋友安装了客户端也很想知道,那些程序集文件是敢什么用的,现在我把平台中的程序集简单的向大家介绍一下吧: 基础程序集: EAS.
距离上一次发布文章已经两月有余,本来是希望能坚持在短期内把AgileEAS.NET平台的技术文章写出来,以便让更多的同行了解,但无奈于生活,总是为了生活在奔波,5月份找了价工作敢了半个多月,上班心里总是不踏实,总觉得有必要把AgileEAS.NET整理下,所以最后又选择了辞了工作一天浑浑噩噩的过。
AvtiveXForm在线演示地址:http://demo.smarteas.net/activexform/,如果是第一次体验演示,请在体验前确保安装了安装.NET2.0 和Activexform客户端,下载地址:http://www.agilelab.cn/downloads/eas/EAS.ActiveXForm.msi,体验页面中有下载链接。
前面我们在AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对模块插件和运行容器都做了介绍,我们知道,在运行容器中,我们要基于模块插件并结合账户/角色进行权限判定,在系统账户登录之后,导航动态加载账户所具有执行权限的模块。
前面的文章我介绍了AgileEAS.NET平台关于模块插件的集成,本文我介绍AgileEAS.NET平台中的一个重要功能,账户和角色。 做为一个企业级应用开发平台,我们应该包括账户管理,做为一个插件集成平台,我们应该包括模块插件的权限管理,而权限系统,也必须依赖于插件和系统使用者(也就是账户和角色)。
前面的文章AgileEAS.NET之模块插件集成我对基于AgileEAS.NET+模块插件开发模式的插件集成进行了简单的说明,本文我补充一下集成的另一个任务,模块插件的组织。 在AgileEAS.NET平台介绍中,我们提供到系统设计的一个要求,那就是系统被分解为子系统,子系统包括子系统和模块,模块为不可再分的叶子结节,各模块独立并行开发,总装集成。
前面我们在AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对模块插件和运行容器都做了介绍,本文我们介绍AgileEAS.NET平台对模块插件的集成。
前面的文章AgileEAS.NET之插件运行容器中对基于WinForm和WebForm技术的容器做了个简单的介绍,接下来,我们介绍一下WinForm和WebForm技术结合的容器ActiveXForm容器,先上图再说。
上一篇AgileEAS.NET之插件接口IModule中我们介绍了EAS.NET模块插件契约,在本文我们将介绍一下调用插件的运行容器,即平台。 AgileEAS.NET平台最早是应用于基于WinForm技术开发管理信息系统应用的,所以基于WinForm的运行容器最为成熟,在应用WinForm技术的运行容器我们提供了三种:传统的WinForm容器、基于智能客户端技术的运行容器和基于WinForm和WebForm技术结合的ActiveXForm容器,也提供了基于纯WebForm技术的运行容器。
我们知道,要基于平台(容器)+插件的这种模式进行开发,我们必须定义一组契约,用于约束模块插件开发,也就是说,模块插件需要遵守一定的标准进行开发,才能正常被容器调用,这就是IModule所定义的内容。