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.


What is DevExpress Universal suite

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:

  • detailed MVC controls overview
  • ASP.NET MVC application
  • several XAF web applications (short for eXpressAppFramework – framework to build Win and Web applications)
  • DevExtreme simulator (for all mobile platforms)
  • Silverlight

And for the following you will need to install a demo on your disk to see them live:

  • WinForms
  • Windows 8 XAML
  • WPF

All these products in one bundle are called DevExpress Universal suite.


Using DevExpress Controls

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;

Gantt chart

Stock chart


DevExpress XAF – why is it so cool?

The eXpress Application Framework (XAF) is based on DevExpress controls and its architecture stack can be described by the following diagram:

XAF application stack

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:

  • one code compilation for both platforms - Win and Web (to me it was really outstanding)
  • automatic generation of default views (this one saves LOTS OF time)
  • high flexibility and extensibility. Many configurations can be done declaratively via dedicated model designer, such as menu, views, actions, validation rules, localisation. All these are separated into several layers
  • many mature modules, such as state machines (customisable by end user), feature rich security, reports with report designer (available to end user), workflows based on WWF with workflow designer (again, available to end user), scheduler, 2D and 3D charts
  • a programmer can write own modules, compile to separate libraries and then plug them in dynamically in production environment, without the need of recompiling the whole project
  • full integration with ORMapper, which is by default XPO (a native DevExpress product, easy to use, similar to Entity Framework, works seamlessly in my production applications), and it can be substituted by Entity Framework that is almost fully integrated with XAF (apart from the workflow module)
  • different programming approaches available: code first (default) or database first
  • voice of community is not muted in XAF world and it can be heard as a free open source framework called eXpand Framework. In my experience, it is kept up-to-date from version to version. A programmer can find useful features, make suggestions or vote for their implementation. Personally, I used and customised a lot of its selected features, some of which became, after some time, a part of XAF’s core (e.g. validation warning rules or tooltips).

I could make the above list much longer by going into details but I hope I have covered the most important XAF aspect.


What's new in 14.2 ?

DevExpress WinForms controls ship with a new touch friendly TimeSpan Editor:

Editors timespan edit

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:

XAF ribbon control designer

And here is a simple customised ribbon example:

XAF ribbon control

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:

Rich editor

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:

Spell checker


Other improvements in 14.2

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:

Coloured widgets

ASP.NET WebForms scheduler control has been improved:

Scheduler full week view

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:

Upload file list

Upload drag-n-drop

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.

Grid group and summary


The dark side of the moon

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.


...or not so dark?

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 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

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.
Is it worth that investment? I think yes. After a time it really paid off in our team.


Conclusion

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.

 


Comments

No responses found. Be the first to comment...


  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: