很久没有和大家交流了,今天出来给大家汇报一下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;