• AgileEAS.NET 4.0 重构裁剪后的程序集说明【转】


    AgileEAS.NET 4.0 重构裁剪后的程序集说明

    前几天在文章AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口简单的介绍了一下AgileEAS.NET平台在2011年初的一些重大改进措施,其中涉及对原有程序集的合作与裁剪处理,将原有的近70个程序集合并或裁剪到现在的32个程序集,本文将详细的给大家介绍这30多个程序集的功能。  

    基础程序集:

    EAS.MicroKernel.dll

         AgileEAS.NET平台微内核程序集,包含了平台中关于IOC、AOP、ServiceLocator、分布式体系结构、会话、配置文件以及平台与插件的接口及结构。

    EAS.Data.dll

         AgileEAS.NET平台数据访问程序集,包含了三部分内容:

         1.平台中的统一数据访问的接口定义(IDataConnection、IDataAccessor)及sqlclient、OleDB、Odbc等驱动实现。

         2.两种不同的Orm对象体系象结构定义以及,Orm访问器体系结构接口定义及基于UDA的Orm访问器实现。

         3.linq2EAS.NET实现,基于平台新的ORM体系结构实现了Linq的数据访问驱动。

    EAS.Web.dll

         AgileEAS.NET 平台的Web扩展,这部分内容没有什么新的变化,在以前的时候(.net1.1),为了方便插件的实现,平台提供了很多能插件的基类,此后为了简化操作,基本已不再使用本部分结构,只保留平台加插件结构的平台段实现。

    EAS.Windows.dll

         AgileEAS.NET 平台的WinForm/WPF扩展,类似于Web扩展,功能正在弱化,但同实现与提供WinForm/WPF宿住程序的基础功能。

    资源管理平台:

    EAS.Explorer.dll

         AgileEAS.NET平台插件容器提供给开发者的一组公共接口,开发者可以通过本程序集提供的功能访问运行环境的某些环境上下文,同时本程序集也定义了运行环境进行资源替换的标准接口。

    EAS.Explorer.DAL.Interface.dll

          AgileEAS.NET平台运行容器与资源管理平台的数据访问层接口。

    EAS.Explorer.DAL.SQLServer.dll

          AgileEAS.NET平台运行容器与资源管理平台的数据访问层mssql数据实现(支持sql2000/2005/2008)。

    EAS.Explorer.DAL.Oracle.dll

          AgileEAS.NET平台运行容器与资源管理平台的数据访问层Oracle数据实现(支持oracle10g/oracle11g)。

    EAS.Explorer.BLL.dll

          AgileEAS.NET平台运行容器与资源管理平台的业务服务层对象定义。

    EAS.Explorer.Res.dll

          AgileEAS.NET平台的标准外挂资源(本程序可替换)。

    EAS.Explorer.Web.dll

          AgileEAS.NET平台的Asp.net运行容器基础程序集。

    EAS.WebClient.dll/网站

          AgileEAS.NET平台asp.net插件运行容器。

    EAS.WindowsClient.exe

          基于智能客户端的AgileEAS.NET平台的winform/wpf的运行容器主程序。

    EAS.Explorer.AddIn.Assist.dll

          AgileEAS.NET平台资源管理组件,包含模块、账户角色、权限、分组配置、参数控制、报表管理等。

    ActiveXForm:

    EAS.ActiveXForm.ClientClasp.dll

          AgileEAS.NET平台ActiveXForm运行容器的客户端钩子(包含IE中运行的三个ActiveX控件)。

    EAS.ActiveXForm.ClientClasp.AddIn.dll

          AgileEAS.NET平台ActiveXForm运行容器的客户端工作插件。

    EAS.ActiveXForm.Web.dll/网站

          AgileEAS.NET平台用承载ActiveXForm运行容器的Asp.net服务器端环境。

    分布式智能升级:
    EAS.Distributed.Contracts.dll

          AgileEAS.NET平台分布体系的接口定义,包含分布式通信的数据消息、功能接口(分布式数据、ORM、文件传输、远程过程调用(RPC)、智能升级)定义。

    EAS.Distributed.ServiceAddIn.dll

          AgileEAS.NET平台分布体系的Remoting实现,在本程序中实现也分布式数据访问、远程过程调用(RPC)、文件存储/传输服务、智升级的remoting实现,不同服务采用服务插件的形式运行在服务运行宿住中(EAS.WinService.Application.exe)。

    EAS.Distributed.WebService.dll

          AgileEAS.NET平台分布体系的webService实现,同EAS.Distributed.ServiceAddIn.dll 同比,功能相同,但通信方式和实现不同。

    EAS.Distributed.Client.dll

          AgileEAS.NET平台分布体系的客户端API,在本程序中,包含了透明的远程访问调用(即开发人员感觉不到远程方法调用的存在)、基于远程远程方法调用的分布式数据访问与分布式ORM访问器,提供给开发人员透明的分布式访问技术。

    EAS.SmartUpdate.Config.exe

          AgileEAS.NET平台智能升级配置程序,用于配置智能升级所需要的配置文件。

    报表系统:

    RdlEngine.dll   

          RDL引擎(开源项目)

    RdlViewer.dll   

          RDL展示组件(开源项目)

    ReportDesigner.dll

          RDL设计组件(在开源组件的基础上中文和与ORM结合)。

    ReportDesigner.Start.exe

          独立的报表设计器。

    EAS.Report.Controls.dll

          报表打印组件。

    开发辅助:
    EAS.OrmDesigner.exe

          AgileEAS.NET平台的ORM对象设计器,集对象定义、代码生成、文档生成、DDL生成,从数据库和程序集反向生成等一体的综合开发辅助工具,大大提高开发效率。

    EAS.Develop.Debuger.dll

          AgileEAS.NET平台的winform/wfp插件调试环境,模拟一个真实的winform/wpf插件宿住,在开发阶段提供插件的debug功能。

    EAS.Windows.GuiTemplate.dll

          AgileEAS.NET平台在winform开发中的一些经验模式,可以供开发人员参考。

    EAS.WinService(应用服务):

    EAS.WinService.Kernel.dll

         AgileEAS.NET平台服务插件的接口定义,服务也可以像功能插件一样运行的服务宿舍环境之中。

    EAS.WinService.Application.exe

         AgileEAS.NET平台服务插件的的宿定容器,目前主要提供基于remoting的宿主容器,目前平台中的分布式通信提供都提供一种这样的实现。

    控件:

    EAS.Windows.Controls.dll

          AgileEAS.NET平台在winform开发中使用到的一些自定义控件的集合,以后将会陆续在一些文章中给大家介绍。

    EAS.Data.DataUIMapper.dll

          AgileEAS.NET平台提供一个数据绑定映射组件,详细请参考.NET快速开发实践之应用IExtenderProvider实现对象与UI控件的绑定

    其他:

    EAS.OracleProvider.dll

          统计数据访问(UDA)的Oracle驱动实现。

    第三方组件:

    WeifenLuo.WinFormsUI.Docking.dll

    NetronGraphLib.dll

    下载说明

         有关于平台最新版本的最新发布版本的程序集、类库手册、相关资料,请大家从AgileEAS.NET平台的官网http://www.smarteas.net/进行下载,官网设有独立的下载页面,从这里下载:官网下载

    CallHot 写过一个系列的基于AgileEAS.NET平台的开发案例,请大家通过AgileEAS.NET平台开发Step By Step系列-药店系统-索引AgileEAS.NET敏捷开发平台及案例下载(持续更新)-索引AgileEAS.NET平台开发实例-药店系统-视频教程系列-索引一系列文章进行下载。

    如何联系

         如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。

    1、官方网站:

         AgileEAS.NET平台:http://www.smarteas.net/

         敏捷软件工程实验室:http://www.agilelab.cn/

    AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口

    2011-05-05 11:50 by 魏琼东, 1584 visits, 网摘, 收藏, 编辑

            很久没有和大家交流了,今天出来给大家汇报一下AgileEAS.NET平台的最新进展:

             AgileEAS.NET是一套企业级的快速开发平台或者说是中间件,主要服务于中小软件企业,以提高软件企业的有效生产率为主要目标,结合软件工程、dotnet构件技术、快速工作为其提供一个适合中国特色的中小软件企业的软件生产解决方案。

             AgileEAS.NET平台自2004年底出了第一版本并且应用于实际项目之中,广泛的应用于医疗、保险、互联网、铁路、房地产、农业等行业,在实际应用中,与项目相结合,并一直持续的完善和改进。

             我在去年6-8月份写过一系列文章给大家AgileEAS.NET,但一直没有对产品进行过重大的变更,基于很多客户的反映结合技术发展的趋势,在2011新的一年开始之后,我们对产品进行了一序列重大的重构和裁剪,平台重构主要内容如下:

    向.NET Framework 4.0切换

            AgileEAS.NET平台在很长的一段内运行在.NET Framework 2.0之上,在3.0,3.5,4.0到来的年代,迟迟没有变换其NET Framework 环境,从本次重构之后,AgileEAS.NET平台运行在.NET Framework 4.0,以期得到更多的.NET Framework 优秀特性的支持。

    正式支持WPF插件

            因为之前一直运行于.NET Framework 2.0之上的原因,所以AgileEAS.NET平台一直没有提供对WPF技术的支持,本次重构之后,平台支持WPF技术,具体使用技术与WinForm类似。

    调整了WinForm/WPF运行容器

            AgileEAS.NET平台支持了WPF技术,但对于我们现行的客户来说,使用最多的还是Winform技术,WPF技术可以现有补充,但不是全部替换,那就需要解决一个问题,Winform插件与WPF插件的共存,本次重构调用了之前的Winform运行容器,以期同同时支持Winform和WPF,即WinForm/WPF运行容器。

            同时对原有的WinForm运行容器做了大早的调整,最新界面如下:

    主界面

    WinForm/WPF运行容器开放更多的接口

             Winform/WPF运行容器在之提为大家提供了基于资源接口的方式进行自定义logo、标题等方式的替换,大家可以参考callhot的AgileEAS.NET平台开发实例-药店系统-资源文件的替换[大家关心的问题]一文了解原有的资源替换方式,但也只能是替换几张图片和文本的方式进行自定义,并不能由应用开发员进行更完美的替换,本次重构颠覆了原有的这种方式,进行选择更为开放的替换方案:本次重构开放了Winform/WPF运行容器的快速启动窗体、登录对话框、Banner条、关于圣诞框、启始页的直接替换方案,开发者可以自由制作这五个窗体或控件,通过资源配置,运行期动态替换。

    如下两种不同的登录窗体风格:

    image
    image

    改进并增加了新的ORM支撑

            AgileEAS.NET从2005年提供了一个简单的ORM支撑开始,一直提供着一套类似于表格===》行这种模式的ORM技术,原有ORM体系中提供着两个核心的接口ITable和IEntity,分别表示数据表和数据实体,ITable用于处理查询与元数据、IEntity用于处理单记录的CRUD操作。

           原有的ORM体系一直支持着很多应用,经历很多项目的锤炼,其在性能上的表现应该说还是不错的,但是在2011年开始,针对很多小应用,很多朋友反馈写法有些麻烦,感觉有些重了,所以我就考虑在AgileEAS.NET平台中是不是提供一个更轻量级的ORM组件,并且和原有的ORM体系进行融合,新的ORM技术采用了较为流行的属性标记的元数据存储方法,并且吸收了原有ORM技术在性能上的一些优秀实践。

           新的ORM放弃了原有的表格===》行的模式,改用一个独立的数据实体(DataEntity)的定义,元数据及实体的查询、CRUD全部定义在DataEntity之中,这样的好处是更加简洁,生成器也生成更少的代码,更重要的是,新的ORM技术支持linq。

    改进并增加了新的Orm技术

            AgileEAS.NET从2005年提供了一个简单的ORM支撑开始,一直提供着一套类似于表格===》行这种模式的ORM技术,原有ORM体系中提供着两个核心的接口ITable和IEntity,分别表示数据表和数据实体,ITable用于处理查询与元数据、IEntity用于处理单记录的CRUD操作。

           原有的ORM体系一直支持着很多应用,经历很多项目的锤炼,其在性能上的表现应该说还是不错的,但是在2011年开始,针对很多小应用,很多朋友反馈写法有些麻烦,感觉有些重了,所以我就考虑在AgileEAS.NET平台中是不是提供一个更轻量级的ORM组件,并且和原有的ORM体系进行融合,新的ORM技术采用了较为流行的属性标记的元数据存储方法,并且吸收了原有ORM技术在性能上的一些优秀实践。

    Orm提供linq支持,Linq to EAS.NET

            本次重构提供了一个开发人员非常喜欢的东西,AgileEAS.NET平台中的Orm提供了对Linq技术的支持,即llinq 2 eas.net,这个更新或许是一个平谈的消息,但是对于实际中开发人员而言,这是一个非常大的突破,能大大的提高开发效率,我们可以在应用的开发中借助于强大的linq查询而抛弃大量的DAL层的重复查询代码。

    //定义查询对象
     DataEntityQuery<NRCMItem> itemQuery = DataEntityQuery<NRCMItem>.Create();
     
    //in查询条件
     string[] itemCode = new string[] { "01", "02", "03", "17" };
     
    //linq查询
     var v = from c in itemQuery
            where itemCode.Contains(c.Item) && (c.Code.StartsWith(this.tbSeach.Text) || c.InputCode.StartsWith(this.tbSeach.Text))
            orderby c.Item, c.Code
            select c;
    IList<NRCMItem> itemList = v.ToList();
     
    //绑定
     this.bindingSource1.DataSource = this.itemList;
    this.dataGridView1.DataSource = this.bindingSource1;
     

            当然了,Linq to eas.net也只是支持了linq表达式的一部分,即常用的大部分查询,有关于这部分内容,我将用独立的篇幅进行向大家介绍。

    改进了对象设计工具

            处理了剪切、复制、粘贴的问题,修正了生成数据库脚本的某些错误,简化了设计界面,增加了代码高亮显示功能,增加属性名与数据库列名的一到性命名选择:

    image

    程序集的合并与裁切

            自去年仲夏公开平台以来,陆续收到很多关注AgileEAS.NET平台的朋友们的反馈,有一部分朋友说,AgileEAS.NET平台提供的功能与程序集有些多和庞杂,初学才会感觉有些乱,无从下手的感觉,因为考虑到很多应用都运行在这上面,所以也就一直没有下手改进这个问题,在本次重构中,对此问题进行了重大的变动,本次重构对平台原有的差不多60多个程序集进行了整合和裁切,目前保留了差不多30个独立的程序集,以下对合作和裁切做个说明:

            1.合并了程序集EAS.Kernel,EAS.Model,EAS.IOCContainer、EAS.Session、EAS.Logger,EAS.ServiceLocator,EAS.Aspect程序集为EAS.MicroKernel,其命名空间保持不就。

            2.合并随平台一起提供的UI控件:原EAS.Windows.Controls,EAS.Windows.Tree,HTMLTextBox,PhotoControls合并为EAS.Windows.Controls.dll,命名空间保持不变。

            3.合并分布式通信系统的缓存、文件存储、远程通信服务、智能升级进行了合作,即 原EAS.Distributed.Contracts,EAS.Cached.ServiceInterface,EAS.SmartUpdate.Contracts,EAS.FileStorage,Contracts合并为EAS.Distributed.Contracts。

            4.合作平台管理插件:报表系统相关功能模块并入平台管理插件之中,即EAS.Report.DAL.Interface并入EAS.Explorer.DAL.Interface,EAS.Report.DAL.SQLServer并入EAS.Explorer.DAL.SQLServer,EAS.Report.DAL.Oracle并入EAS.Explorer.DAL.Oracle,EAS.Report.DAL.UI并入EAS.Explorer.AddIn.Assist,只保留EAS.Report.Controls。

            合并命名空间基本保持不变,删除了EAS.Report.DAL.Interface.DALHelper和EAS.Report.DAL.Interface.IDALManager,只保留EAS.Explorer.DAL.DALHelper和EAS.Explorer.DAL.IDALManager。

            5.报表控件可以单独调用,而不用依赖于EAS.Report.DAL.Interface或EAS.Explorer.DAL.Interface。

    下载说明

         有关于平台最新版本的最新发布版本的程序集、类库手册、相关资料,请大家从AgileEAS.NET平台的官网http://www.smarteas.net/进行下载,官网设有独立的下载页面,从这里下载:官网下载

         CallHot 写过一个系列的基于AgileEAS.NET平台的开发案例,请大家通过AgileEAS.NET平台开发Step By Step系列-药店系统-索引AgileEAS.NET敏捷开发平台及案例下载(持续更新)-索引AgileEAS.NET平台开发实例-药店系统-视频教程系列-索引一系列文章进行下载。

    链接

    AgileEAS.NET平台开发指南-文章索引

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

    AgileEAS.NET平台应用开发教程-案例计划

    AgileEAS.NET官方网站

    敏捷软件工程实验室


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

  • 相关阅读:
    在腾讯云上使用URLOS一键安装Discuz! Q
    共享容器——URLOS最新发布的一项超强功能
    在群晖NAS上运行URLOS之后竟然能安装Discuz! Q!!
    Discuz!Q回归,如何一键安装Discuz!Q
    Docker管理面板-URLOS(易用、高效、强大)
    CentOS下Subversion(SVN)的快速安装与配置
    通过URLOS安装Redis缓存为wordpress网站提速
    5分钟快速安装Redmine项目管理软件
    Python3+HTMLTestRunner+SMTP生成测试报告后发送邮件
    Python3+HTMLTestRunner生成html测试报告时报错HTMLTestRunner.py line 687, in generateReport  self.stream.write(output.encode('utf8'))
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2043829.html
Copyright © 2020-2023  润新知