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 条评论
登录 后参与评论

相关文章

来自专栏大学生计算机视觉学习DeepLearning

c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇

33040
来自专栏机器学习算法与Python学习

Python编辑器你选哪个?我选PyCharm

世界上最好的 Python 编辑器或 IDE 是什么?炫酷的界面、流畅的体验,我们投 PyCharm 一票,那么你呢?本文介绍了 PyCharm、Jupyter...

23920
来自专栏张善友的专栏

DinnerNow.net: 微软最新技术集成示例

DinnerNow.net是微软推出的一个网站, 该网站尽可能地集成了微软的最新技术和产品,像IIS 7, WCF, WF, WPF, LINQ, Window...

20460
来自专栏机器之心

世界上最好的Python编辑器是什么?我投PyCharm一票

选自 K...

16140
来自专栏CDA数据分析师

一个 Pythoner的 Awesome List

? 从大三接触 Python 到现在几乎已经有两年的接触经验了,除去中间有一年左右接私活写写 Android 和 Lamp 之外,有 Python 实际项目开...

31160
来自专栏大学生计算机视觉学习DeepLearning

c语言课程设计之贪吃蛇代码及思路

71070
来自专栏恰童鞋骚年

Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生

  Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,...

15030
来自专栏依乐祝

.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

千呼万唤始出来,首先,请允许我长吸一口气!真没想到一份来自28岁老程序员的自白 这篇文章会这么火,更没想到的是张善友队长的公众号居然也转载了这篇文章,这就导致两...

16020
来自专栏陈树义

JVM系列第2讲:Java 虚拟机的历史

说起 Java 虚拟机,许多人就会将其与 HotSpot 虚拟机等同看待。但实际上 Java 虚拟机除了 HotSpot 之外,还有 Sun Classic V...

10420
来自专栏施炯的IoT开发专栏

A New Feature on Windows Mobile-Widget

    目前,已经展现给大众的windows mobile 6.5的用户新特性有很多,包括蜂窝界面、增强的触摸支持、用户软件My Phone、Marketpla...

22570

扫码关注云+社区

领取腾讯云代金券