DevExpress Universal 2014.2 and eXpressApp Framework (XAF) Review
The review describes the 14.2 version of DevExpress Universal suite. It presents the new features and enhancements in controls for different programming platforms (e.g. WinForms, ASP.NET WebForms, ASP.NET MVC, WPF) and also confronts the pros and the cons of its part - eXpress App Framework (XAF). The article is mainly recommended to programmers and architects who have no or little experience with XAF.
DevExpress comes out with products associated with several platforms, mostly as bunches of controls but also as some frameworks. To catch a glimpse of these products you can visit DevExpress demo site here - where e.g. the following stuff can be seen as live demos: And for the following you will need to install a demo on your disk to see them live: All these products in one bundle are called DevExpress Universal suite. As I used WinForms, Web Forms and ASP.NET MVC controls I can say that they are highly flexible and shipped with many customisation options. Of course DevExpress web controls are not so light as jQuery controls but they are shipped with a very high level of features that you can use out of the box. The following chart control is an example; The eXpress Application Framework (XAF) is based on DevExpress controls and its architecture stack can be described by the following diagram: The framework itself contains a number of mechanisms and enhancements that allow the programmer to focus on the business logic associated with the project instead of wasting time digging in the basic elements of application and controls. Chosen XAF characteristics are: I could make the above list much longer by going into details but I hope I have covered the most important XAF aspect. DevExpress WinForms controls ship with a new touch friendly TimeSpan Editor: Another new and ready to use WinForms control is Workspace Manager which enables End Users to save and restore layouts of dockable windows, action bars, tabs, ribbon controls, etc. This is an easy way to reset the application look to the default state. A new feature in XAF, Data View mode for List Views is a lightweight solution to improve the list view's performance as it makes only one database request to load the whole list of persistent objects. Only visible columns are retrieved in this view mode, without loading the entire data hierarchy. New ribbon templates for XAF WinForms with a ribbon designer are available. The ribbon can be fully customisable via designer: And here is a simple customised ribbon example: ASP.NET WebForms bundle has a new member: Word inspired rich text editor. The control is released as Community Technology Preview (CTP) version and it contains an advanced paragraph and character formatting, UI ribbon, context menus, images, styles, undo/redo history, horizontal (only) ruler, clipboard: A new Spell Checker extension for ASP.NET MVC mimicks a spell checking tool in MS Word or Outlook, with analogical forms for dictionary suggestions and handling spelling errors: WinForms control Desktop UI Manager has been enhanced and now you can colour the widget's headers and borders and also arrange them side by side within a row or column: ASP.NET WebForms scheduler control has been improved: ASP.NET WebForms and MVC upload control has been enhanced: added support for cloud services, added file list of selected files to upload with the possibility of removing particular files from the list, and a cool improvement: you can drag'n'drop files to the upload control: ASP.NET MVC grid extension has several upgrades, such as an instant search box, fixed group rows, a new more robust Excel data export engine. Now it supports the export of such grid operations as: totals and group summaries, sorting and filtering, data grouping, data validation for combobox columns and fixed columns. Apart from nice new controls and features that can be used in XAF, as any framework, eXpress App Framework has some shortcomings and limitations. Lots of scenarios can be covered easily and super-duper fast with XAF. Although standard customisations are easy and fast to achieve, trouble can appear when we try to exceed the boundaries of standard XAF routines. Sometimes a little modification may turn out to be difficult or at least non-obvious when it comes to implementation. For instance, the reducing of textbox length in a particular view problem, which was described in greater detail in Robert Anderson's blog post – zerosharp.com. Another field to improve: available layouts for XAF web – they could be more beautiful :) Despite XAF WinForms being feature rich and smooth in work, I experience XAF Web side a bit heavy and slow when it grows big. So it better fits into a business intranet application than a website. So personally I cannot wait to hear when the XAF Web will reduce the number of postbacks in favour of callbacks which could improve its speed dramatically. But there are also brighter aspects to this technology choice. The first would be the architecture which is smartly designed and so well thought out that the programmer is forced to follow the good practices and almost everything can be extended. And if not, then either you can ask DX team to make it extensible (in my case it succeeded several times!) or make use of XAF source code which is included in the bundle. Thus, it is possible to create own layout, and even callbacks system - everything depends on your skills, XAF knowledge and time you want to spend on it. Among the products there is also available rich 'n thorough documentation and knowledge base which helps to solve the vast majority of the problems. However, it could refer not only to the newest product versions but also to legacy ones, but still it is very robust. What is more, the awesome technical support gives solutions or workarounds within 24 hours, very often with complete code samples included. The support team solved almost 100% of my issues I sent. Another positive look: The learning curve is rather steep so a programmer needs to invest a lot of time in reading the documentation, acknowledge the XAF's philosophy, architecture and mechanisms it utilises. Without XAF and all UI controls provided by the Universal Subscription, we would not be able to implement a certain big project in such a short time frame. After getting to know this framework, it can be blazing fast for a programmer. Moreover, to make a concept application it can take “milliseconds” compared to the ordinary way of development. However, I would recommend Universal Subscription not for one project only but for several, or at least a one bigger project (due to the learning curve and the price). The learning curve is steep because of the product's complexity and versatility so the developer must be prepared for the need of constant possessing new knowledge. The price speaks for its quality as saving programmer's time and effort pays off many times already during the process of the project implementation and then only brings profits. Thanks to this time saving tool we could satisfy more demanding customers and open ourselves to the larger projects. What is DevExpress Universal suite
Using DevExpress Controls
DevExpress XAF – why is it so cool?
What's new in 14.2 ?
Other improvements in 14.2
The dark side of the moon
...or not so dark?
The boys grow. In my experience, constantly and noticeably. The company is over 15 years old, and wanting to keep up with cutting edge technologies, they release a new big version of Universal suite twice a year. The number of controls is increasing, often useful new features are created, bugs are becoming rarer and (relatively) quickly corrected.Learning Curve
Is it worth that investment? I think yes. After a time it really paid off in our team.Conclusion