首页 文章 精选 留言 我的

精选列表

搜索[dotnet],共602篇文章
优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 会话

会话从字面意义上来理解,是一次对话,在我们系统中怎么理解呢,会话就是一次交互,应和程序客户端和服务器端进行一个业务交互就是一个会话,会话生存与客户与服务器之内,会话在软件业中被用的很广,在Web大家很熟悉的Session,就是一个会话,他表示的是Web服务器和一个网页浏览都的一个交互,基于一个网站(应用程序的)一个交互,会话在客户浏览内在的过程中提供浏览网页需要在客户端和服务器端的一些参数。会话由浏览者开始浏览这个网站开始会话,到访问者离开该网站关闭浏览器结束会话。 在AgileEAS.NET平台中,我们采用这种会话的方式,管理应和程序和与客户(使用者)的生存周期管理,同时为应和程序及客户提供会话相关的资源,会话的概念有些抽象,简单的理解成,服务系统在工作中和调用客户所交互的过程,我们称之为会话,也可以在开发过程中这样理解,SmartEAS.NET资源管理平台是一个服务器,在客户(功能模快)运行的过程中,从模块加载运行到模块释放,这一过程。同样在这一过程中,会话为服务和客户提供双方的连接信息,客户利用依存在会话上的资源进行相关的数据处理。 如果我们用极其简单的话来理解的话,可以这么理解AgileEAS.NET平台中的会话,可以理解为AgileEAS.NET平台中插件运行容器与插件之件信息传递的一种桥梁和纽带,会话或者应用上下文为应用提供系统运行必须的资源(如数据环境、ORM访问器等),基于会话对象接口的对象(如ORM实体)默认使用会话资源运行活动操纵。 以下是基础中间件中会话的类结构图: ISession 系统会话接口,以下是接口定义: 会话接口中定义了会话的服务器(Server)与客户端(IClient)、会话上下文(SessionContex)及建立本会话的相关会话资源集合(SessionResourceCollection)。并且定义了会话的开始方法及会话的终止方法。 IServer 系统会话服务器接口,以下是接口定义: IServer是一个系统会话的服务器端,在接口中定义了服务器的名称,位置信息、以及建立在本服务器的会话集合,在一个IServer上可以建立1-n个会话,也就是说,可以Server同时和n个客户端进行会话、进行数据通信。 IClient 系统会话客户接口,以下是接口定义: IClient是一个系统会话的客户端,在接口中定义了客户的名称,以及本客户所持有会话及会话参数信息。 ISessionResource 系统会话资源接口,以下是接口定义: ISessionResource定义了建立会话所需求使用的资源,在接口中资源的资源标识符,在具体的会话资源(比如数据库连接、ORM访问器等)实现的过程中实现本接口,则会话资源会在会话的期间为客户提供相关资源的访问功能。 ISessionObject 系统会话对象接口,以下是接口定义: ISessionResource定义了生成在会话上的会话对象,会话对象是一类使用会话得以生存和进行某种功能操作的对象,比如可以使用会话资源中的数据库访问连接资源访问数据库。 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/07/04/1770746.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 5.0 简介

AgileEAS.NET简介 AgileEAS.NET平台(简称EAS.NET平台)是以“敏捷并行开发方法”为其过程指导思想、基于Microsoft.Net构件技术和模型驱动架构的企业级快速开发平台,AgileEAS.NET使的构建企业级分布式应用系统变得简单,它提供了可灵活扩展应用架构,并且革命性的改变了软件的生产方式,用于帮助中小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。 AgileEAS.NET介绍 AgileEAS.NET平台是基于Microsoft.Net构件、以“敏捷并行开发方法”为其过程指导思想、采用面向对象、构件复用技术实现企业级分布式应用开发、运行、管理、监控、维护的中间件平台。这是企业应用软件开发的变革,一方面基于Microsoft.Net构件平台,另一方面以更直观的API向最终应用提供开发、运维支撑。 AgileEAS.NET平台将Microsoft.Net构件技术、XML技术、分布式通信技术和可视化开发技术完美结合起来,为基于Microsoft.Net平台之上的应用提供面向构件的分布式应用架构。使的企业应用系统的开发简化为应用构件单元的开发,业务构件单元做为应用系统的基本组织成元素,通过快速开发技术及构件组装技术使的应用系统可以快速高质量地搭建,建成的应用系统具有较强的可管理及可维护能力,同时拥有最强的需求变化响应能力,并通过构件积累为组织持续积累软件知财富。 基于AgileEAS.NET平台开发的应用系统的各个业务功能子系统,在系统体系结构设计的过程中被设计成各个原子功能模块,各个子功能模块按照业务功能组织成单独的程序集文件,各子系统开发完成后,由AgileEAS.NET资源管理平台进行统一的集成部署。 AgileEAS.NET平台也是为应用系统开发而提供的一组低层功能集合及开发支撑平台,应用信息系统的开发建立在此平台之上,采用构件式、可复用开发,节省开发成本,快速响应业务。 AgileEAS.NET平台的核心思想是包含两点,一是基于Microsoft.Net构件技术的插件式开发,二是基于敏捷并行开发方法以的构件并行,即应用系统的构件同步并行开发,由平台进行总装集成。 AgileEAS.NET平台同时也提供了一个中小软件企业的的开发管理解决方案,以敏捷并行开发方法为其过程理论依据、以AgileEAS.NET平台为过程实践与指导、以AgilePM.NET为其项目管理工具,在开发技术、软件工程、技术架构、管理工具等方面帮助中小软件提供走向卓越。 AgileEAS.NET结构 AgileEAS.NET平台作为企业级分布式应用系统的中间件产品,提供了完整的Microsoft.Net企业应用支撑,从应用的开发到运行、管理、监控的工具和环境支持,同时也为应用开发提供丰富的基础构件库,AgileEAS.NET平台产品构成如下图所示: 从功能上看到,AgileEAS.NET平台主要包括8大部分,分别如下: n敏捷并发开发方法 敏捷并行开发方法是AgileEAS.NET平台的过程指导思想,其旨在提出一套符合国情的中小软件企业开发管理方法论:中国式的敏捷方法-敏捷并行开发方法。 敏捷并行开发方法是以软件构件技术等技术为基础,以平台+插件化开发技术整合而出的一种快速开发模式;并行是指产品在生命周期内,项目管理过程、项目研发过程和机构支撑过程“并行”开展,项目研发过程中各个阶段有限度“并行”开展。 敏捷并行开发方法的基础是基于构件(插件)技术支持的并行,涉及软件开发的分析、设计、实现和测试等过程,一个完善的开发方法不单单是一个简单的理论基础,还需要相应的基础平台、项目管理工具、开发辅助工具才能构成一个完整的方法体系。 敏捷并行开发方法以AgileEAS.NET做为构件技术运行、管理平台,应用开发人员根据应用需要及AgileEAS.NET平台构件契约进行分析需要、设计开发应用构件,使用EAS.NET构件管理工具对所开发的构件进行总装集成和管理。 n项目管理工具(AgilePM.NET) AgileEAS.NET平台提供了一套可选的项目管理软件-AgilePM.NET,AgilePM.NET软件基于AgileEAS.NET开发,采用先进的Silverlight技术做为其UI呈现,遵守AgileEAS.NET的构件标准。AgilePM.NET为中小软件企业提供组织级项目管理能力,提供诸如任务、计划、缺陷、需求等开发日常任务的管理。 n服务构件运行环境(Server&Runtime) AgileEAS.NET平台的服务构件运行环境运行于微软的IIS服务或者独立的业务服务实例之中,通过构建运行环境的构件引擎解析服务,对AgileEAS.NET开发的应用系统之中的各种业务构件进行解析和运行,并对于业务构件的生命周期进行管理。 在服务构件运行环境之中,还提供了SOA架构支撑以及企业服务总线,为基于SOA的分布式应用提供支持,以及基于SOA技术的SAAS引擎,为分布式应用托管及多租户分布式系统提供支持。 n集成管理工具 AgileEAS.NET集成管理工具是应用开发、运行、管理、监控、维护过程中需要的构件管理工具,其包含构件管理、应用装配、应用配置、安全审批、监控统计等各种服务。 n业务构件仓库(ComponentLibrary) 业务构件库是为了支撑应用系统快速开发和部署而提供的,具有高度复用的一组预制构件的集合,利用业务构件库中大量构件可以快速搭建应用系统,大大提高软件的可复用度,提高开发效率,同时通过对构件的管理可以建立一套针对构件的生产、改进、管理、沉淀和发展的完整的软件管理机制,使的软件企业组织级的软件知识沉淀可以通过构建库的形式展示和发展。 在AgileEAS.NET平台应用开发过程之中,应用软件的开发即变成了业务构件的开发,最终的业务系统是由若干业务构件组织配置起来的一个整体,在业务构建仓库之中可以包含自己的业务构件,也可以包含第三方机构的符合AgileEAS.NET平台规范的业务构件。 AgileEAS.NET平台自身之中,提供了一组企业应用常见的支撑和业务构件,比如ORM、IOC、AOP、Distributed、SOA、ESB、Workflow等支撑构件和比如报表管理、工作流管理、账户角色、组织机构、权限管理等基础业务构件。 n快速开发工具(RDTool) AgileEAS.NET平台是一套企业级快速开发平台,提供了对业务构件的可视化开发、调试、组装、发布和管理,另外基于模型驱动开发的思想,AgileEAS.NET平台提供了大量的图形化设计工具、生成器及快速开发向导功能,大大提高应用的开发效率,配合项目管理工具支持团队开发,以满足企业级应用软件的开发需求。 n业务支撑工具(BusinessTool) 在企业级应用开发之中,AgileEAS.NET平台提供了诸如工作流、报表等业务基础支持工具,帮助企业快速构建基于工作流驱动以及BI应用系统。 AgileEAS.NET工作流包含业务流程定义工具、工作流引擎、工作流业务构件、工作流管理监控、工作流客户端等内容,工作流引擎基于MicrosoftWF,在遵守工作流标准的同时加入中国管理的特色,是适合国内中小企业的强大高效的的工作流产品。 AgileEAS.NET平台整合了遵守MicrosoftRDL语言标准的开源报表系统fyireporting,在原有英文版本的基础上进行了中文化和做了一些深度的整合,是适合中小企业的经量级报表系统。 n客户构件运行容器(Client&Runtime) AgileEAS.NET平台的客户构件运行环境用于承载业务展示构件,为UI构件提供一个运行容器,WinContainer用于承载WinForm/WPF形式的业务展示构件,运行在独立的客户端实例之中,WebContainer用于承载WebForm形式的业务展示构件,运行于IIS/Browser之中,SilverlightContainer用于承载Silverlight形式的业务展示构件,运行于SilverlightActiveX宿主。 客户构件运行环境根据客户环境上下文中的身份认证信息及系统配置信息初始化客户构建运行环境,根据身份认证信息初始化业务构件并动态加载、运行业务构件。管理客户构件运行环境中的业务构件生存周期。 适用范围 AgileEAS.NET平台适用于所有基于Microsoft.Net技术构架的分布式应用,它为企业级应用提供了基于完成的分布式多层模式的灵活可扩展的软件架构,并提供基于模型驱动的快速开发和部署、运维工具,以及基于软件工程思想支撑的AgilePM.NET项目管理体系,极大的提高了软件的有效生产效率和软件质量。 应用情况 AgileEAS.NET平台自2004以来的成长过程中,各个阶段不同的版本被应用于不同的行业和应用之中,目前基于AgileEAS.NET平台的应用主要涵盖医疗卫生、保险、铁路、供水、教育、房地产、农林系统、企业信息化/EPR,大概近20家独立软件开发商和企业应用AgileEAS.NET平台。 在目前的应用之中,应用最广泛的还是医疗信息化行业、应用涵盖医院信息系统(HIS)、健康档案系统、社区公共卫生系统、医保保险系统、新型农村合作医疗、药店系统、区域公共卫生平台/基层公共卫生信息系统,在AgileEAS.NET之上,我们也有自主知识产品的医院管理信息系统、电子病历以及完善的公共卫生信息化解决方案。 联系我们 AgileEAS.NET平台公开免费发行,无论是个人开发者还是企业开发者,都可以通过AgileEAS.NET产品官方网站或敏捷软件工程实验网站下载获得,我们承诺针对产品本身不收任何费用,并且持续的对产品进行升级。 敏捷软件工程实验室为企业提供专业的开发技术、开发管理咨询服务,我们为使用AgileEAS.NET平台的软件企业提供有偿的产品培训、方案设计、开发咨询服务;当然软件企业或者个人也可以公开的技术资料自行解决所遇到的相关问题,我们提供内部技术论坛、QQ群等多种技术交流环境。 联系人:魏琼东电话:18629261335QQ:47920381,邮件:mail.james@qq.com 产品官网:http://www.smarteas.net 团队网站:http://www.agilelab.cn 官方博客:http://eastjade.cnblogs.com。 PDF版本下载:AgileEAS.NET敏捷软件开发平台简介.PDF 目前发布的平台及例程均为AgileEAS.NET 4.0版本,AgileEAS.NET 5.0 预计在7月份发布。 链接 AgileEAS.NET平台开发指南-文章索引 AgileEAS.NET应用开发平台介绍-文章索引 AgileEAS.NET平台应用开发教程-案例计划 AgileEAS.NET平台开发Step By Step系列-药店系统-索引 作者:魏琼东出处: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/2011/06/23/2084601.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 权限管理

前面我们在AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对模块插件和运行容器都做了介绍,我们知道,在运行容器中,我们要基于模块插件并结合账户/角色进行权限判定,在系统账户登录之后,导航动态加载账户所具有执行权限的模块。 AgileEAS.NET平台的权限系统参考了Windows系统的权限管理系统ACL(访问控制列表),AgileEAS.NET平台建立了基于模块插件与账户/角色组合的访问控制列表,对模块访问权限进行统一的管理和验证。 AgileEAS.NET提供了一供业务模块权限机制,这组功能包含在AgileEAS.NET之模块插件集成一文中所指的模块管理插件中,本文对其做一个补充和对鉴权验证做一个说明,下面说授权机制: 模块属性的安全选项卡列出了拥有特定模块某种访问权限组合的账户和角色列表,上图中所包含的是两组角色,及其所具有的详细权限,我们可以通过添加和删除来增加和删除账户和角色对所授权的权限,添加权限会打开账户/角色选择窗口: 我们可以进行多项选择,然后确定返回如下界面: 我们对刚新增加的账户选择权限并确定保存权限,删除某个角色/账户的访问权只需要选种角色/账户,点删除即可,接下来,我说一下不同容器的鉴权验证过程。 对于基于WinForm技术的运行容器,权限登录账户动态加载具有执行权限的模块,对于WebFrom运行容器,我们在动态加载导航的基础上增加模块在调后时的检查,对于ws类的服务插件,我们提供基于运行期的安全检查。 链接: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/04/24/1719471.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 系列目录

AgileEAS.NET应用开发平台最博客园最早的一篇介绍是2010年4月19号发的,随后也陆续发布了一些相关的介绍和应用的文章,最近差不多也一个多用不写了,主要原因是想着平台发布之后再继续写。 AgileEAS.NET平台定在本月内发布,到时间我会发布完整的开发包,包含所有程序集,类库参考手册,开发指南及相关文档,完整的开发例子,初次发布的管理和运行环境支持SQLServer/2000/2005/2008/oracle10/11数据库支持。 本文的主要目的是把以前介绍AilleEAS.NET平台的文章串起来: 平台介绍 AgileEAS.NET之敏捷并行开发方法 AgileEAS.NET应用开发平台介绍 AgileEAS.NET之系统架构 AgileEAS.NET之插件接口IModule AgileEAS.NET之插件运行容器 AgileEAS.NET之ActiveXForm运行容器 AgileEAS.NET之模块插件集成 AgileEAS.NET之模块插件组织 AgileEAS.NET之账户与角色 AgileEAS.NET之权限管理 AgileEAS.NET平台程序集说明 AgileEAS.NET之插件接口IModule扩展 AgileEAS.NET之插件标记实现 AgileEAS.NET之统一数据访问 AgileEAS.NET之数据关系映射ORM AgileEAS.NET之ORM访问器 AgileEAS.NET平台之报表系统介绍 AgileEAS.NET平台之ORM设计器 AgileEAS.NET平台之对象控制反转 AgileEAS.NET平台之会话 AgileEAS.NET平台之智能部署与升级 服务定位器(SL)与AgileEAS.NET中的实现 用服务定位器(SL)完成服务的多种实现的统一调用 应用例子 AgileEAS.NET发布Web应用在线演示/例子 问题说明 AgileEAS.NET平台之ActiveXForm在线体验安全设置 AgileEAS.NET发布Web应用在线演示/例子 其他人写的例程 AgileEAS.NET应用开发平台详细使用教程之ORM设计工具的使用 构建基于AgileEAS.NET应用开发平台的简单应用程序 在此,感谢小何同学:http://www.cnblogs.com/hegezhou_hot/ 链接 AgileEAS.NET平台开发指南-系列目录 AgileEAS.NET应用开发平台介绍-文章索引 AgileEAS.NET官方网站 敏捷软件工程实验室 QQ群:116773358,15118502(已满员) 作者:魏琼东出处: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/1822530.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 插件接口IModule

我们知道,要基于平台(容器)+插件的这种模式进行开发,我们必须定义一组契约,用于约束模块插件开发,也就是说,模块插件需要遵守一定的标准进行开发,才能正常被容器调用,这就是IModule所定义的内容。 IModule IModule定义了模块名称及模块被调用的方法Run(),以及被平台加载和关闭的事件,从定义可我们看到IModule继续自IObject接口。 IObject 这里为什么会出现IObject接口,这里提到一个说明,就在是EAS.NET平台设计之初,我们引入了一个想法,我们视程序中的模块、ORM对象、所定义的外部设备等统称为对象,并对这些对象进行管理,基于这于一个想法,我们引入了一个对象的概念,但是在实际应用中,对象这一层次的理解慢慢谈化,也许在将来的设计中,取消这个接口。 IObject接口显式的定义了对象的说明性信息对象描述和图标,对于IModule接口及IObject接口,都继承自一个重要的接口IPrivilegObject。 IPrivilegObject IPrivilegObject为权限对象接品,平台(运行容器)可以使用其鉴权系统对其实现权限检查,关于系统的权限设计我会在后面专门进行说明。 在模块插件的接口中,我们看到了很多关于模块自描述的信息,比如名称、说明、类型、程序集、版本号以及开发者等等,定义这些信息的目的在于对模块的自描述,资源管理平台在安装模块的过程中读取这些元数据并存储在数据库,以方便对系统中插件的管理。 模块元数据中定义的程序集、类型信息用于容器反射调用插件,这也是平台+插件所依赖的关键技术。 在具体的应用开发中,针对WinFrom和WebForm的不同应用对IModule接口进行了某些扩展和基础实现,用于在应用开发过程的特定应用,以加快开发速度。 在下一篇文章中,我将会对调用模块插件的平台,也就是运行容器做介绍。 链接: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/04/20/1716568.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 报表系统介绍

我们都知道,管理信息系统类的项目报表的位置是何等重要,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,我从事软件开发的这八、九年中,98%的项目都是管理信息系统项目,都时时被报表纠结着,早年用VB开发及至.net1.1时代都一直使用水晶报表,客观的讲,水晶报表是一套非常强大非常完善的报表系统,但是Vb6乃至.net1.1时代的部署可以把人搞的疯狂。 在AgileEAS.NET中关于报表系统的选择纠结过很长一端时间,用过其他的一些报表系统,也曾经使用html构造报表系统,效果都不是很理想,最后采用了基于RDL语言的开源报表系统fyireporting,最早基于其2.X版本进行了中文化并和AgileEAS.NET进行集成,到目前为止AgileEAS.NET平台中集成的是3.96版本,下面展示一下报表在AgileEAS.NET中的一个呈现: AgileEAS.NET平台对于fyireporting开源项目,只采用了其中的RdlEngine,RdlViewer和ReportDesigner三个项目,对报表设计器和引擎做了如下修改: 1.修改了Excel导出的问题,因为在应用中有大量的需求需要导出报表并要求和打印样式匹配: 2.修改了PDF文件导出中文的问题。 3.中文化。 4.打印的走纸控制,在企业应用中,特别是窗口服务应用的同一打印机打多咱票据的打印走纸控制。 同时,我对fyireporting报表与AgileEAS.NET进行了集成,增加了报表设计器可以根据ORM实体对象创建报表的设计极报表呈现与ORM实体的数据绑定。 在报表的部署上采用了集成部署的思路,即设计好的报表定义存储在数据库中,客户端在使用中读报表定义并缓存在客户端,平台中增加了一个报表管理的应用插件,用于管理系统中的所有报表。 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/07/02/1770132.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 账户与角色

前面的文章我介绍了AgileEAS.NET平台关于模块插件的集成,本文我介绍AgileEAS.NET平台中的一个重要功能,账户和角色。 做为一个企业级应用开发平台,我们应该包括账户管理,做为一个插件集成平台,我们应该包括模块插件的权限管理,而权限系统,也必须依赖于插件和系统使用者(也就是账户和角色)。 AgileEAS.NET参考了Windows系统的用户管理机制,Windows设置了用户和用户组,用户组是用户的组合,主要用于权限的设定,AgileEAS.NET设置了账户和角色,账户即一个独立的用户,而角色是具有同种应用背景的用户组合,一个账户可以属于多个角色,同样一个角色包含各个账户。 AgileEAS.NET系统中提供了账户管理和角色管理两个用于管理账户和角色,我们先来看账户管理: 账户管理模块对账户采用分类的方法进行组织,引入了一个账户类型的概念,当然,他不和角色冲突,账户类型只是在账户列表显示中用到,在鉴权系统中并不使用,我们可以在较大应用(上百几至一千账户)应用中对账户按其业务职能、组织机构进行分组。 账户属性中我们可以设置账户的登录ID及账户名称及其密码,同时我们可以设置其所属的角色,当然账户和角色的关联即可以通过账户管理实现也可以通过角色管理实现,两者的结果是一样的。 在这里我们需要说明的一点,账户是基于AgileEAS.NET平台的,但是,对于应用系统来说,也许会有自己的人员管理与编码系统,如何将AgileEAS.NET账户与应用系统相关联呢,我们提出了一个账户原型的概念。 比方应用系统是一个企业管理软件,企业员工需要登录系统,系统应用中记录的是企业员工编码,并不记录账户ID,那么我们就得建立账户与员工的关联,在账户管理界面中,定位功能将绑定账户和员工的关连。 对于角色管理,AgileEAS.NET平台提供了角色管理模块: 我们接着来看角色属性: 我们需要定义角色名称和角色说明信息,管理角色成员,即角色和账户的关联,我们通过添加按钮打开账户选择窗体: 通过确定实现对角色成员的添加,完成角色与某些账户的关联,关于账户和角色介绍到这,下文我将介绍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/04/24/1719446.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 插件运行容器

上一篇AgileEAS.NET之插件接口IModule中我们介绍了EAS.NET模块插件契约,在本文我们将介绍一下调用插件的运行容器,即平台。 AgileEAS.NET平台最早是应用于基于WinForm技术开发管理信息系统应用的,所以基于WinForm的运行容器最为成熟,在应用WinForm技术的运行容器我们提供了三种:传统的WinForm容器、基于智能客户端技术的运行容器和基于WinForm和WebForm技术结合的ActiveXForm容器,也提供了基于纯WebForm技术的运行容器。 废话不说了,下面我贴出传统WinForm容器和SmartClient容器的运行效果: 看不清楚图片的朋友,请打开原图看吧,这是基于WinFrom技术的插件运行效果,目前插件在容器中的运行方式有两类,第一类是直接嵌入到容器界面中,如上图一个标签页代码一个模块插件,另一类是以独立的WinForm方式运行,如下图: 我们提供基于导航列表以及工具条和菜单结合的两种模块插件导航方式,默认情况下,左边导航列表或者导航树自动收起的,在具体应用项目中,可以根据情况选择何种导航方式,菜单或者导航中的一个叶子项均指向一个目标模块插件的。 当某个操作员(账户)登录平台后,平台权限检查系统加载登录操作员所拥有执行权限的模块并加载到业务导航栏和导航菜单,最后秀一下登录界面。 特别提示一下,AgileEAS.NET平台运行容器为了支持应用开发商的发布和变更,对运行容器的界面做了一套资源系统,应用开发商可以在配置文件中变更资源文件以达到变更系统名称、显示图片的目的,比如: SmartClient运行容器在标准WinForm容器基础上,增加了智能客户端支持:包括应用系统的智能部署升级及可选的分布式数据访问,下面简单展示一下WebFrom运行容器。 在这些运行容器中,平台调用插件,但是在一些应用中,模块插件需要调用别的模块插件,这个又怎么做呢,我们抽取了一个基础接口IApplication: IApplication IApplication接口中,我们定义了RunModule方法,插件可以通过AgileEAS.NET应用上下中的IApplication实现对其他IModule的调用。 我会在接下来的文章中,我将会对介绍ActiveXFrom运行容器及插件的扩展体系。 链接: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/04/21/1717617.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ActiveXForm运行容器

前面的文章AgileEAS.NET之插件运行容器中对基于WinForm和WebForm技术的容器做了个简单的介绍,接下来,我们介绍一下WinForm和WebForm技术结合的容器ActiveXForm容器,先上图再说。 前看不清楚的请通过上图的链接,或者去相册中看,有100%清晰的图。 到目前为止,我把基于WinForm和WebForm技术的四种运行容器大概的介绍了一下,ActiveXForm运行容器是WinForm和WebForm技术相结合实现的。 ActiveXForm容器在解决信息管理系统特别是基于Interaet中的事务处理系统有一定的优势,纯B/S技术的在解决客户端体验、精确打印、设备打交道上无法解决的缺失,要解决也是必须通过内嵌ActiveX去解决。 ActiveXForm容器实现的本质技术是网页内嵌AvtiveX控件,上图中共分三块,导航、内嵌IModule插件容器、Top工具条三个独立的ActiveX控件,三个控件间的协作由Web完成,由WinFrom、WebForm开发的业务插件被动态的加载到导航,打开模块插件后被装入右边Table页中运行,WebForm插件的运行机理自不必说,基于WinFrom技术的模块插件装入右边Table页中的ActiveX容器。 从敏捷并行开发的基本思路,我所解决的最基本思路到此就可以满足,用户自行参考IModle开发标准用不同的技术去实现模块插件的功能,当然,我提供了基于AgileEAS.NET的一个基础模型,包括运行在浏览器中的模块插件和后端数据通信的功能和基于远程方法调用封装的服务展现。 通过参考AgileEAS.NET平台的一些技术和标准,我们可以实现模块插件的两用,即用WinFrom技术开发的模块插件,可以同时运行在WinFrom、SmartClient、ActiveXForm容器,我有时也戏称这为两用平台。 我时常推荐的方法是基于WinFrom容器去开发和测试,最后采用AvctiveXForm容器去部署,当然在处理数据通信、事务等需要一些注意。 关于AvctiveXForm容器我就介绍到这,关于具体实现技术,我后在后面的文章去介绍,下来,我们介绍模块插件IModule的扩展实践。 链接: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/04/23/1718975.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ORM设计器

AgileEAS.NET平台做为一个快速应用开发平台,其目的为是为了提高应用软件的生产效率,如何软件开发的生产效率,方法是多种多样的;使用工作简化开发中低技术重复工作可以是一种行之有效的途径。 在AgileEAS.NET平台中,我们提供了一个集数据库设计、代码生成、DDL定义与一体的数据实体设计器: 在早期的AgileEAS.NET版本中包含一个代码生成器,用于根据现在数据库生成ORM代码,后来的思路是想介入项目的数据库设计环节,所以设计了这么一个数据对象设计器,提供一个数据表定义工具,在项目的数据库设计阶段(环节),使用数据表设计工具同时定义数据库和数据实体模型: 当定义好模型之后,可以直接生存数据库设计文档: 数据库定义语言DDL(数据能生成ORACLE和SQLSERVER两种数据库): 以及基于分部类的ORM代码和基于接口驱动的DAL解决方案和项目,这些要说明一个问题是分部类,在应用开发中,我们对数据库的操作不仅仅是读取、更新、增加、删除这样的简单操作,在DAL层中还有配合业务逻辑的复杂数据库处理,这就需要程序员在生成的代码上进行修改,这就引发一个问题,当我们修改了数据定义模块之后使用工具重新生成代码之后就会覆盖原来的操作,为解决这个矛盾,AgileEAS.NET引入分部类的技术,将一个实体或表对象的实现分解为两部分,即与模块相关的定义部分和与业务相关部分,在第一次生成时,生存器生成写成的定义和一个空的业务代码文件,程序员在业务代码文件中增加业务处理代码,当模型修改之后重新生成时只覆盖与模型定义相关的代码文件。 此外,数据对象设计器还提供了基于现在数据库生成模型的反向生成工具,目前支持ORACLE和SQLServer数据库: 本文涉及到的模型和相关的例子文档我会在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/07/03/1770534.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 模块插件集成

前面我们在AgileEAS.NET之插件接口IModule和AgileEAS.NET之插件运行容器中对模块插件和运行容器都做了介绍,本文我们介绍AgileEAS.NET平台对模块插件的集成。 我们知道AgileEAS.NET平台所依赖的基本思路是,各模块插件独立并行开发,然后通过资源管理平台进行总装集成,关于资源管理平台呢,我以理解为基于某种运行容器支持的一组基础管理应用,功能包括:模块插件的安装、组织和管理,管理系统账户和角色,提供一致的权限管理系统,以及相关的配置类工具。 本文重点介绍模块插件的安装和管理,也就模块插件的集成;我们提供了一个模块管理的业务模块用于完成安装、配置和卸载功能。 由上图我们可以看出,模块管理也是一个模块插件,也是按照模块插件标准进行开发的,只不过,他内置内AgileEAS.NET平台的发行之内;下面展示模块的安装: 我们在AgileEAS.NET之插件接口IModule一文中提到过,模块插件接口IModule定义了很多自描述信息比如Guid、名称、版本、类型、程序集、说明、开发商信息等,这些信息在模块集成中用到,模块安装我们选择一个程序集文件后,系统自动读出程序集中所包含的所有模块插件,我们选中需要安装的模块点安装按钮就可以了,模块的卸载: 选中模块列表中的某个模块,选择卸载,并确认提示之后从平台中卸载,模块的属性与简单配置: 模块属性界面中,我们可以设置模块排序码、及WebFrom模块插件的url挂载点,当然,对于模块的访问权限也在这里完成,我会在接下来的文章中独立一文对权限管理进行说明。 关于模块插件的集成我简单说到这,下文我介绍模块的组织体系。 链接: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/04/24/1719312.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ORM访问器

上一篇文章AgileEAS.NET之数据关系映射ORM简单介绍了一下AgileEAS.NET平台中ORM对象的组织机构体系,但并没有对其所执行的数据存取操作介绍,在AgileEAS.NET中,我对ORM实体及其上的数据操作实现进行了分离,实体对象只呈现数据,而实体的增加、修改、更新、删除、缓存操作都通过ORM访问器实现。 在AgileEAS.NET两个访问器IOrmAccessor和ICacheAccessor访问器。 IOrmAccessor完成ORM对象(实体和表)和数据库的交互工作:查询、增加、修改、删除极其辅助任务,其接口详细定义如下: /// <summary> /// 定义ORM访问器接口。 /// </summary> public interface IOrmAccessor : IOrmEnvironment { /// <summary> /// 保存数据实体。 /// </summary> /// <param name="entity">数据实体。</param> void Save(IEntity entity); /// <summary> /// 保存数据表。 /// </summary> /// <param name="table">表。</param> void Save(ITable table); /// <summary> /// 保存数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="force">是否强制同步到数据库。</param> void Save(ITable table,bool force); /// <summary> /// 保存数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="force">是否强制同步到数据库。</param> /// <param name="transaction">数据同步过程中是否使用事务。</param> void Save(ITable table, bool force, bool transaction); /// <summary> /// 保存数据架构。 /// </summary> /// <param name="schema">架构。</param> void Save(ISchema schema); /// <summary> /// 保存数据架构。 /// </summary> /// <param name="schema">架构。</param> /// <param name="force">是否强制同步到数据库。</param> void Save(ISchema schema, bool force); /// <summary> /// 保存数据架构。 /// </summary> /// <param name="schema">架构。</param> /// <param name="force">是否强制同步到数据库。</param> /// <param name="transaction">数据同步过程中是否使用事务。</param> void Save(ISchema schema, bool force, bool transaction); /// <summary> /// 插入数据实体。 /// </summary> /// <param name="entity">实体。</param> void Insert(IEntity entity); /// <summary> /// 修改数据实体。 /// </summary> /// <param name="entity">实体。</param> void Update(IEntity entity); /// <summary> /// 删除数据实体。 /// </summary> /// <param name="entity">实体。</param> void Delete(IEntity entity); /// <summary> /// 删除数据表。 /// </summary> /// <param name="table">数据表。</param> /// <remarks> /// 本方法相当于数据批量删除,一次性删除多条记录。 /// </remarks> /// <remarks>删除的记录数。</remarks> int Delete(ITable table); /// <summary> /// 根据条件删除数据表中记录。 /// </summary> /// <param name="table">数据表。</param> /// <param name="condition">数据过滤条件。</param> /// <remarks>删除的记录数。</remarks> int Delete(ITable table, Condition condition); /// <summary> /// 删除数据架构。 /// </summary> /// <param name="schema">架构。</param> /// <remarks> /// 本方法相当于数据批量删除,一次删除多表多条记录。 /// </remarks> void Delete(ISchema schema); /// <summary> /// 刷新数据实体。 /// </summary> /// <param name="entity">实体。</param> /// <returns>数据库中存在指定的数据体则返回true。</returns> bool Refresh(IEntity entity); /// <summary> /// 查询数据实体。 /// </summary> /// <param name="entity">实体。</param> /// <returns>数据库中存在指定的数据体则返回true。</returns> bool Query(IEntity entity); /// <summary> /// 判读实体是否存在于数据库。 /// </summary> /// <param name="entity">实体。</param> bool ExistsInDb(IEntity entity); /// <summary> /// 表查询。 /// </summary> /// <param name="table">表。</param> void Query(ITable table); /// <summary> /// 表查询。 /// </summary> /// <param name="table">表。</param> /// <param name="top">Top查询。</param> void Query(ITable table,int top); /// <summary> /// 表查询。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> void Query(ITable table, Condition condition); /// <summary> /// 表查询。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> /// <param name="top">Top查询。</param> void Query(ITable table, Condition condition, int top); /// <summary> /// 查询数据表。 /// </summary> /// <param name="table">表。</param> DataTable GetDataTable(ITable table); /// <summary> /// 查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="top">Top查询。</param> DataTable GetDataTable(ITable table, int top); /// <summary> /// 查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> DataTable GetDataTable(ITable table, Condition condition); /// <summary> /// 查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> /// <param name="top">Top查询。</param> DataTable GetDataTable(ITable table, Condition condition, int top); } } ICacheAccessor完成ORM对象的缓存查询及其辅助任务,其接口详细定义如下: /// <summary> /// 缓存访问器接口。 /// </summary> /// <remarks> /// 为ORM对象提供缓存查询能力。 /// </remarks> public interface ICacheAccessor : IOrmEnvironment { /// <summary> /// 缓存刷新实体。 /// </summary> /// <param name="entity">实体。</param> void CacheRefresh(IEntity entity); /// <summary> /// 表缓存查询。 /// </summary> /// <param name="table">表。</param> void CacheQuery(ITable table); /// <summary> /// 表缓存查询。 /// </summary> /// <param name="table">表。</param> /// <param name="top">Top查询。</param> void CacheQuery(ITable table, int top); /// <summary> /// 表缓存查询。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> void CacheQuery(ITable table, Condition condition); /// <summary> /// 表缓存查询。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> /// <param name="top">Top查询。</param> void CacheQuery(ITable table, Condition condition, int top); /// <summary> /// 缓存查询数据表。 /// </summary> /// <param name="table">表。</param> DataTable GetCacheDataTable(ITable table); /// <summary> /// 缓存查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="top">Top查询。</param> DataTable GetCacheDataTable(ITable table, int top); /// <summary> /// 缓存查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> DataTable GetCacheDataTable(ITable table, Condition condition); /// <summary> /// 缓存查询数据表。 /// </summary> /// <param name="table">表。</param> /// <param name="condition">数据查询条件。</param> /// <param name="top">Top查询。</param> DataTable GetCacheDataTable(ITable table, Condition condition, int top); } IOrmAccessor和ICacheAccessor都基于一个共同的接口IOrmEnvironment,IOrmEnvironment寓意为ORM操纵环境,根据类图可以看到IOrmAccessor和ICacheAccessor也坚决的继续于接口ISessionResource(会话资源),关我在后面的文章中专门介绍。 关于IOrmAccessor和ICacheAccessor详细方法和具体的实现思路我在本文暂时不做介绍,在AgileEAS.NET实现了基于本地数据访问器IDataAccessor的ORM实现,也实现了基于分布式WebService和Remoting的ORM访问器实现,在开发和使用过程中,同一实体对象可以在不同的ORM访问器中进行切换,只需要修改配置文件: 使用本地数据访问器: <object name="MasterDbConnection" assembly="EAS.Data" type="EAS.Data.Access.OleDbConnection" LifestyleType="Singleton"> <property name="ConnectionString" type="string" value="..." /> </object> <object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Singleton"> <property name="DbConnection" type="object" value="MasterDbConnection" /> </object> <object name="CacheAccessor" assembly="EAS.Data" type="EAS.Data.ORM.CacheAccessor" LifestyleType="Singleton"> </object> 使用基于WebService实现的分布式访问器: <object name="MasterDataAccessor" assembly="EAS.Distributed.WebServiceClient" type="EAS.Distributed.WebServiceClient.DataAccessor" LifestyleType="Singleton"> <constructor-arg index="0" type="string" value="http://vm2003/Distributed/DataAccessService.asmx" /> </object> <object name="MasterRMIAccessor" assembly="EAS.Distributed.WebServiceClient" type="EAS.Distributed.WebServiceClient.RMIAccessor" LifestyleType="Singleton"> <constructor-arg index="0" type="string" value="http://vm2003/Distributed/RMIService.asmx" /> </object> <object name="OrmTranser" assembly="EAS.Distributed.WebServiceClient" type="EAS.Distributed.WebServiceClient.OrmAccessor" LifestyleType="Singleton"> <property name="DataAccessor" type="object" value="MasterDataAccessor" /> <property name="RMIAccessor" type="object" value="MasterRMIAccessor" /> </object> 下一篇文章我简单说一下数据实现和UI的绑带。 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/07/01/1769041.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 程序集说明

今天放出了AgileEAS.NET的ActiveXForm和SmartWin的体验,在大家对为东西有个简单的了解和感觉后,我会选择在合适的时间发放完整的开发包。 我想有的朋友安装了客户端也很想知道,那些程序集文件是敢什么用的,现在我把平台中的程序集简单的向大家介绍一下吧: 基础程序集: EAS.Kernel.dll 包含模块接口类的东西 EAS.Data.dll 提供统一的数据访问和ORM EAS.IOCContainer.dll IOC容器组件 EAS.Session.dll 会话组件 EAS.ServiceLocator.dll 服务定位组件 EAS.Web.dll Web开发扩展(针对应用程序和模块接口) EAS.Windows.dll WinForm开发扩展(针对应用程序和模块接口) 资源管理平台: EAS.Explorer.dll 运行容器基础组件 EAS.Explorer.DAL.Interface.dll 数据接口 EAS.Explorer.DAL.SQLServer.dll MSSQL数据实现(可替换) EAS.Explorer.DAL.Oracle.dll Oracle数据实现(可替换) EAS.Explorer.LocalLoginProvider.dll 本地登录器组件 EAS.Explorer.RemoteLoginProvider.dll 远程登录器组件 EAS.Explorer.WinContext.dll WinFrom应用上下文 EAS.Explorer.WebContext.dll Web应用上下文 EAS.Explorer.Res.dll 外科资源(可替换) EAS.Explorer.Web.dll 运行容器之Web基础 EAS.Explorer.WindowsClient.dll 不带自动升级的WinFrom客户端 EAS.Explorer.SmartClient.dll 自动升级的WinFrom客户端 EAS.Explorer.AddIn.Assist.dll 系统管理插件(模块、账户角色、权限等) ActiveXForm: EAS.ActiveXForm.ClientClasp.dll 客户端钩子(包含IE中运行的三个ActiveX控件) EAS.ActiveXForm.ClientClasp.AddIn.dll 客户端插件 EAS.ActiveXForm.Explorer.Biz.dll 服务业务组件 EAS.ActiveXForm.ClientAPI.dll ActiveXForm客户端API 智能升级: EAS.SmartUpdate.Kernel.dll 智能升级数据定义 EAS.SmartUpdate.Config.exe 智能升级配置程序 EAS.SmartUpdate.WebService.dll WebService实现 远程方法调用与数据访问: EAS.Distributed.Interface.dll 远程访问接口 EAS.Distributed.Message.dll 远程通信消息定义 EAS.Distributed.WebService.dll WebService实现 EAS.Distributed.WebServiceClient.dll WebService客户端 报表系统: RdlEngine.dll RDL引擎(开源项目) RdlViewer.dll RDL展示组件(开源项目) ReportDesigner.dll RDL设计组件(在开源组件的基础上中文和与ORM结合)。 ReportDesigner.Start.exe 独立的报表设计器。 EAS.Report.Controls.dll 报表打印组件 EAS.Report.DAL.Interface.dll 报表数据接口 EAS.Report.DAL.SQLServer.dll 报表数据MSSQL实现 EAS.Report.DAL.Oracle.dll 报表数据ORACLE实现 EAS.Report.UI.dll 报表管理UI 开发辅助: EAS.Develop.OrmDesigner.exe ORM设计器 EAS.Develop.Debuger.dll 插件调试器 EAS.Windows.GuiTemplate.dll GUI模板 控件: EAS.Windows.Controls.dll windows控件包 EAS.Windows.Tree.dll 树控件 PhotoControls.dll 图片控件 其他: EAS.Logger.dll 简单的日志记录组件 EAS.DataCompress.dll 数据压缩组件 EAS.OracleProvider.dll Oracle数据连接实现 第三方组件: acclExplorerBar.dll WeifenLuo.WinFormsUI.Docking.dll NetronGraphLib.dll ICSharpCode.SharpZipLib.dll 简单介绍这么多,在下面文章中涉及具体组件再详细介绍。 请参考:AgileEAS.NET4.0发布ActiveXForm/SmartClient在线演示 链接: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/06/26/1765854.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册