专栏首页魏琼东AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口

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

        很久没有和大家交流了,今天出来给大家汇报一下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条、关于圣诞框、启始页的直接替换方案,开发者可以自由制作这五个窗体或控件,通过资源配置,运行期动态替换。

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

改进并增加了新的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表达式的一部分,即常用的大部分查询,有关于这部分内容,我将用独立的篇幅进行向大家介绍。

改进了对象设计工具

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

程序集的合并与裁切

        自去年仲夏公开平台以来,陆续收到很多关注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平台开发实例-药店系统-视频教程系列-索引一系列文章进行下载。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • AgileEAS.NET SOA中间件平台更新日志 2015-04-28

    一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

    魏琼东
  • AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置

    一、前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平...

    魏琼东
  • WinForm/MIS项目开发之中按钮级权限实践

    一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

    魏琼东
  • Kubernetes系列学习文章 - 存储实现(九)

    | 导语 数据,是无价的。了解清楚底层的存储实现方式对于数据的使用、保护以及IO性能的优化有很大的帮助。本篇文章从三个大点来讲讲K8S的存储实现机制。

    宝哥@devops运维
  • 手机短信删除了怎么恢复?这样做最简单

      手机短信删除了怎么恢复?短信的功能虽然很强大,但是随着社交网络的发展速度较快,短信已经远远不比以前了,所以我们手机的短信中经常会收到很多的垃圾短信,有时候会...

    科技第六人
  • 【个人总结】一文看尽faster-RCNN的四大创新点

    fast-RCNN是建立在前面的RCNN和SPPNet的基础之上的,虽然RCNN和SPPNet使得深度神经网络在目标检测领域有了一些新的技术突破,但是还远远没有...

    小草AI
  • docker内存和cpu调试

    本地启动了一个sshd的容器服务,但该容器经常会被重启导致ssh连接失败,使用kubectl describe pod命令查看改命令发现有容器返回值为137,...

    charlieroro
  • TP5.0怎么使用软删除

    什么是软删除呢?软删除就是没有真正删除数据库中的数据,删除后的数据是可以恢复的,只是对用户来讲是不可见而已。

    邂逅千寻
  • 《囧妈》卖字节跳动,徐峥亏还是赚?揭秘电影利益链

    投资方给钱给制片方制作电影,电影完成后交给发行方进行宣传,提高曝光吸引观众,然后电影会交给院线方进行排片,排片完成后会交给线下电影院放映。

    数据森麟
  • 小猿圈Python之实现京东秒杀功能技

    现在电商盛起,活动页面一个接着一个,一般都是抢购、秒杀,看着很刺激吧,这篇文章小编就揭开这些秒杀功能的面纱,带你们看看实际的面貌,让我们学习一下代码吧。

    py3study

扫码关注云+社区

领取腾讯云代金券