2018-03-22 15:52:53 Ysiqiqi 阅读数 1927javascript
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接和本声明。html
本文连接:https://blog.csdn.net/Ysiqiqi/article/details/79654919java
Devexpress XAF框架——基本知识web
XAF优势sql
1、一次编码,多种平台同时使用数据库
经过一次代码编码写,能够同时产生四种项目:express
1,Web项目(b/s)编程
2,win项目(c/s)框架
3,平板电脑(beta)编辑器
4,移动端(beta)
其中web/win是两个项目,3,4都是web项目,只是使用了不一样的适应界面能够在移动设备和平板电脑上进行浏览操做等。
在Sliverlight刚出现的一段时间内,XAF曾试图支持Silverlight版本,不过因为HTML5的兴起,微软至今应该把Sliverlight放到角落里了,因此也致使了Dev公司不支持Sliverlight了。不过他们有些Sliverlight的控件。
WPF也算是不死不活的状态,至少我看到的应用不多。VS除外,那是MS本身的东西:D
sliverlight若是没有HTML5的出现,是个不错的东西,太惋惜了,HTML5的兴起,又将咱们拉回该死的javascript开发中来了。
2、数据库支持
这应该是XPO的优势,支持14种数据库,SqlServer,Oracle,MySql,DB2.....常见的库都支持了。切换数据库时,无需修改源码,固然若是你开始用了Oracle而且手工调用了SQL语句,在sqlserver中确定是不能正确执行的。
支持Entity Framework,虽然我不用这个,可是DEV仍是支持了,多是由于M$太强的缘由吧。
3、国际化本地化支持
XAF支持多国语言版本,应用程序开发完成后,能够在应用程序模型中生成各类语言的本地化翻译文件,这也算是高大上的支持了吧。
4、自动机制
•由领域对象开始
•自动创建数据库
•自动创建界面
▫列表界面
▫详细界面
▫搜索界面
•内置增删改查,无需SQL编程
5、AOP应用
AOP是面向方面的应用,XAF中被应用到了极致,好比,系统内置的 保存按钮,不管你有多少个业务对象,只要这一个保存按钮,它们的行为是一致的,都是保存到数据库的表中去,若是你须要修改保存按钮的文字,只要在一个地方修改,整个系统中都变了。
模块化应用:
假如咱们开发一个Excel数据导入功能,一样,咱们能够应用于全部业务对象中去,作一次导入功能,全部地方当即使用。XAF内置了很是丰富的元数据,咱们可使来用。
控件的复用:
系统中有不少地方须要用到一个控件,好比时间选择,XAF默认没有这些控件时,咱们能够开发出来,并能够设置为默认控件,例如应用到Timespan类型上去,只需一步,整个系统都会应用此控件。
XAF中有许多这样的自动机制,能一次解决的,坚定不用作两次,拒决重复,拒决复制。
6、元数据管理
元数据是指咱们的程序中代码自身的信息,好比类叫什么名字,它继承自哪一个类,实现了哪些接口,有哪些Attribute,有哪些属性?
是在,在.net中,用反射能够取获得这些信息。在信息系统开发中,这个元数据会获得扩展,好比这个类将会在界面上显示的文字是什么,填写数据时有哪些要求,过滤条件是什么等等 。
你会说,这不就是咱们本身写的代码吗?
在XAF中这些信息也是须要维护的,咱们在给客户写程序时是在帮助客户管理他们的信息。他们是信息化水平提升了。但咱们本身的代码,本身的系统自己也是一个信息量庞大的须要管理的内容。咱们若是不是到处考虑规划程序自己的内容,那后面乱作一团也是很正常的事情了。
看面向对象的软件设计中,不正是使用了各类概念对这些内容进行了规划吗?
因而有了一个名词叫元编程,也是让人着迷的东西。
那么元数据管理有什么用呢?它仍是和AOP概念结合使用方显功效的。
好比:我想让全部拥有“名称”属性的类型,都在界面显示为红色,咱们可使用编程方式
foreach(var x in classes) { if(x.members.contains('名称')){ var member = x.members["名称"]; member.backColor = Color.Red; } }
这只是一段伪代码,若是用传统的开发方式,每一个界面这样操做一次,可能会产生不少错误吧,最大的问题是,咱们须要那么笨的处理平常问题吗?
咱们为何没有简单方法,节省出时间,不作那种无聊的修改呢?
另外,元数据也是能够扩展的,内置的没有提供的,咱们能够本身实现。
7、DomainComponents技术
一般被XAF开发人员简称为DC技术,DC技术是使用接口定义业务逻辑对象的,在EF中,咱们一般是用class来定义一个业务对象,使用接口来定义业务逻辑会更快更简捷,我认为最大的一个好处是实现了多继承,如:
public interface 客户{ ...... } public interface 公司{ } public interface 我的{ } public interface 公司客户:公司,客户 { } public interface 我的客户:我的,客户 { }
这样是多么简单,若是使用class,只支持单继承,另外一个接口中的内容,只能手工再次重复敲出代码,那是多么无聊的事情。
有一点小小遗憾的是,DC技术还不支持泛型机制,若是之后可以支持,那它是完美的。在一个进销存系统中,单据无比多,但无非是出库类,入库类,不出不入库类,这三种,而后就有了各类能够想出来的组合,组合出了N多张单据,咱们如果使用了DC技术,天空瞬间晴朗了。
8、内置功能模块
1、权限模块:
1.支持业务对象级别的权限,增删改查看权限。
2.支持字段级权限,某个字段可读可写。
3.支持行级权限,某个业务对象中某些条件的记录是否有权限进行 删 、改、查看
4.支持上述4种混合权限
5.支持角色,并支持角色嵌套,即,角色3=角色2+角色1
2、审记模块
用于实现业务对象的变动的每一个环境,建立时间、修改时间、删除时间,修改内容,每一个属性从什么值变动为何值,何人操做的。
生成的记录至关多,不过能够选择性记录,或自定义。
3、 Business Class Library Customization Module 业务对象支持
这是基础模块了,实现了业务对象的无SQL CRUD操做。
4、图表模块
能够实现各类图表的显示,柱状图,饼图之类的,若是你用过DEV的控件,你就已经看过它的效果图了。
5、Clone Objct模块
实现了业务对象的复制,这是一个小模块。
6、Conditional Appearance Module Overview
条件外观模块,很是经常使用的模块,实现全局的控制控件是否可用,可见,颜色、字体等 。
7、FileAttachment Module,文件附件模块
用于管理附件文件,能够传到数据库中,也能够个性化为文件系统。
8、HTML Property Editor
在业务对象中可使用html编辑器。
9、Notifications Module
提醒模块,像outlook同样,到达某时间给出一个弹出提醒,能够选择推迟或取消,能够在业务模块中进行个性化。
好比,到时间提醒去联系客户,更新订单等操做。
10、KPI模块
绩效考核模块,工做的朋友应该都被考核过吧,是标准的模块,能够提供一些图表。
11、Maps模块
支持地图的显示,这个我尚未用过,不过看起来还不错。
12、Pivot Chart Module
交叉数据分析表+图表模块,在Excel中有交叉数据透视分析表,由于样子长得同样,我就这么翻译了。
这个确实至关强大,客户可操控性很强,要什么数据统计结果,为所欲为,固然,客户要愿意操做。
这个模块同时带了图表显示,能够将Pivot中的数据同时显示成图表,很直观。
十3、Pivot Grid Module
和上面的同样,只有Pivot表格的显示。
十4、报表模块
当前版本是15.2了,新的功能不断在增长,之前的版本中咱们一直在等不少很好的功能。好比报表模块,之前只能在win中作报表设计,如今web中也有了报表设计器了。
至关高大上。
十5、Scheduler 模块
和Outlook中的日历同样。
十6、状态机模块
作简单审批流用的,还不错。
十7、TreeListEditor
树形列表模块,这个也很经常使用。
十8、验证模块
这个使用频率是最高的,必填验证,惟一验证等 ,你能想到的都有了。固然也提代了扩展接口。
十9、View Variant
让一个业务对象有多种是显示方式,并能够快速切换。好比图表界面切换成树形视图。
二10、工做流模块
就是工做流了,当前只在winform下可用。
9、缺点
1.须要学习
2.体系庞大
好吧,今天就介绍这么多吧,我也只能想到这么多了!另外,本文发表时,我已经写了6篇入门教程,若是须要请来个人blog中查看。
另外,就算你不打算用XAF也没有关系,咱们在本身设计系统时,多多借鉴别人的好思路,是很重要的。
XAF也不是完美的,永远没有完美的工具,对的时候选择对的工具吧!
说了这多,上几张图片,看看到底开发的系统长什么样吧!
Devexpress XAF框架——安装软件介绍
1.安装vs2015
2.安装一下 http://119.23.108.47/DevExpressComponents-16.1.4.16195.rar
3.安装sql server数据库