Improvements to AJAX and Performance in XAF ASP.NET UI (coming in v2011 vol 2)

XAF Team Blog
07 October 2011

Recently I sat down with a few members of our eXpressApp Framework Team to discuss some of the features we'll introduce in the upcoming release of DXperience v2011 vol 2. Here are Serge K, Leo K DiCaprio  and Dmitry S in their own words...

HolyXAF3

Q: Guys, briefly describe what you have achieved in this release.

A: XAF ASP.NET applications now use AJAX-based rendering for nearly everything. This means that only small modified elements of the web page markup are sent from the web server to the client’s web browser via callbacks. Thus, the web page is now updated smoothly. If a part of the page is static, there is no need to render it by the web server on each HTTP request and send its markup to the client.

Q: How will these improvements affect performance and traffic?

A: Actually “performance” is a very broad term and there are a lot of metrics to measure it. Let’s address some web request-response cycle steps affected by our improvements. As you know, every web request takes time to connect to the web server, to send a request data to the server, to process this request, to render a result, to send this result to a browser, to render the received HTML in the browser, to process startup JavaScript and after that an end-user can interact with the page again. Previously, we reduced the “process-request” time in the described cycle. We have now improved the other aspects. Web applications now produce about 25% less HTTP requests than before. In other words, since the web server can now render only small portions of the page and not the whole thing, it can allocate ¼ of its work time to better serve other users requests. Based on measurements, the web server now produces 3 times less HTML markup, which can also be transported 3 times faster through the wire (these numbers may vary depending on the end application UI). It is also important to note that now the first request is processed much faster, and an end-user can start interacting with the page before the startup view is fully loaded. Also, web browser now executes common startup Java Script code only once when you open the application’s startup page.

Q: I presume it significantly improves the overall usability? In other words, what does it mean for end-users?

A: Of course, end-users will love these enhancements because the application is now more responsive and performs smoothly. For instance, imagine that you have a detail form with payment info and want to calculate its amount  based on some rate and man hour values. When you change these values, the amount should be automatically updated. This now works much more smoothly, without any reloads of the page. Our measurements showed that in v2011 vol 2 the same scenario can be performed 1.5 times faster than before.

Another nice addition, which is worth mentioning here, is that while working on this feature we overcame previous limitations preventing the web browser’s Back and Forward buttons from functioning correctly under certain circumstances.

Q: What do you plan to change or improve in future versions of the XAF ASP.NET?

A: First and foremost improvement will continue in the area of performance. As you know, we have been committed to improving overall application performance through our latest releases (one, two, three). That has allowed us to drastically reduce web page size and the number of requests sent to the web server  (and hence overall traffic). We are confident that we have not yet pushed it to its limit and we believe we can continue our optimizations in future versions.

There are also a couple of other interesting new features from our backlog worth mentioning:

  • Implement simpler and more user-friendly URLs for XAF Views;
  • Replace standard web browser popup windows with the ASPxPopupControl.

These are the most popular requests related to ASP.NET UI improvement from our customers.

Demonstration

The team prepared a short video demonstrating how the MainDemo.Web application shipped with XAF operates in v2011 vol 2 (the video is large, so you may want to right-click and choose the “Show All” option):

--> Get Adobe Flash player -->

Do you like what you have read or seen? Please let us known. You input is greatly appreciated!

Happy XAFingWinking smile

30 comment(s)
Arjan van Dijk
Arjan van Dijk

Very nice improvements. I'm anxious to see it in action (I'm missing a link to the video mentioned)

7 October, 2011
Defacto Software
Defacto Software

Brilliant, looks like it will become an important release.

(The video is show in IE but not in Chrome by the way)

7 October, 2011
Simon de Kraa
Simon de Kraa

We are very happy with the upcoming Ajaxification! Great job!

7 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

I apologize for the inconvenience. Could you please refresh your page (Control+F5)? Does it help?

7 October, 2011
Evgeniy Meyke
Evgeniy Meyke

Can't wait to test it! Both sounds and looks very promising.

7 October, 2011
Nate Laff
Nate Laff

Now THIS is usable! Awesome improvements, guys!

7 October, 2011
Robson Vitor Rezini
Robson Vitor Rezini

Congratulations! That was the biggest problem we faced before our customers, they felt a little weird as the screen flashed. Now we have much more acceptance in our products! Thank you!

7 October, 2011
Manel Mateu
Manel Mateu

IGood news !!

7 October, 2011
Michael Proctor [DX-Squad]
Michael Proctor [DX-Squad]

This is now a web UI experience that most customers will find a pleasure to use.

Being a WinForms dev, I really do have an adversity to web, what DX has achieved here is amazing, having such a extendable framework is great.

Good work

7 October, 2011
Mohsen Benkhellat
Mohsen Benkhellat

The web side of XAF is definitely closing on winforms and all the better for our users.

Thanks guys

7 October, 2011
James Zhong
James Zhong

Thank you XAF team! Ajax-enabled Web UI is coming with XAF, finally!

7 October, 2011
Martin Praxmarer - DevExpress MVP
Martin Praxmarer - DevExpress MVP

Great work guys!

7 October, 2011
christy pirumova
christy pirumova

switching to ajax is definitely good news :)

future plans about friendly urls and popupcontrol and even better

i've got 2 questions:

1 - will callbacks update session state to prevent session timeouts? or the user needs to perform a postback still

2 - will browser history (back&forward buttons) be also updated on every callback or the user will be able to go back only to some other view/major state?

7 October, 2011
drew..
drew..

Gentleman (and Gentlewoman).. we are now truly starting to enter a new phase, thank you for this effort. This is such an improvement.

Now may i suggest we accept that this evolution has put xaf on the right track. Incremental improvement in speed are worthy but not a priority. Think of your comments regarding how end-user acceptance is pushing YOUR clients to start considering xaf as a usable tool. Now extend that motif, and perhaps start fiddling with allowing us (your clients) a more xaf-like ability to render more look-n-feels for the end-app.

Combine new looks with more social-oriented features and we are getting closer to a home run!

thanks, drew..

7 October, 2011
christy pirumova
christy pirumova

some more thoughts: i see xaf.web future with draggable gadgets/views and customizable layouts

do you think its reasonable to be implemented in the nearest year or so?

7 October, 2011
Carlitos
Carlitos

Awesome!!!!

7 October, 2011
James Zhong
James Zhong

The flash video can be viewed directly here (IE, Firefox or Chrome):

community.devexpress.com/.../MainDemo.Web_11.2.swf

8 October, 2011
c Pitt
c Pitt

sounds good! looking forward to bench testing it.

10 October, 2011
Marc Greiner (DevExpress MVP)
Marc Greiner (DevExpress MVP)

Big thanks to you guys!

10 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

Thank you for all the comments, guys. We are glad to hear that you liked these improvements to XAF ASP.NET UI!

10 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

>>1 - will callbacks update session state to prevent session timeouts? or the user needs to perform a postback still

Yes.

>>2 - will browser history (back&forward buttons) be also updated on every callback or the user will be able to go back only to some other view/major state?

The Back and Forward buttons primarily allow you to move between URLs in your navigation history. You will be able to go to another view, template, etc. or any other page state represented by a URL. All operates as in standard web applications;-)

>>do you think its reasonable to be implemented in the nearest year or so?

I am afraid I cannot provide any estimates on this, because it is very difficult as the situation and priorities in our business tend to change often.

However, I can tell you for sure that we are constantly improving our products. As you can see, the Web UI of our framework also gets a lot of attention lately. I would also suggest you track the

www.devexpress.com/issue=S18202 suggestion about providing a Web version of our LayoutControl that would greatly simplify the implementation of scenarios like the ones you described. There are also ready-to-use features of ASPxDocking, a part of ASPxperience: www.devexpress.com/.../index.xml

10 October, 2011
SYNG
SYNG

Nice Interface. :)

10 October, 2011
Neal Travis
Neal Travis

New to XAF. Looks like there is a steep learning curve to go beyond basics.

Since there are major changes, If I develop an app using 11.1, how difficult would it be to migrate to 11.2?

12 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

>>

New to XAF. Looks like there is a steep learning curve to go beyond basics.

<<

It should not require a lot of time to get started with XAF and start creating applications. I think it can be done after completing the Tutorial section in our docs: documentation.devexpress.com

Though I admit that to properly master our framework some additional time is required, probably as with any other software products.

>>

Since there are major changes, If I develop an app using 11.1, how difficult would it be to migrate to 11.2?

<<

It will not be difficult because all that you will need to do is to update your web site templates and probably adjust some code according to 11.2 breaking changes (if necessary).  Fortunately, we publish change logs and also have good upgrade instructions in our docs.

Should you encounter any difficulties with upgrade, you are always welcome to contact our Support Team.

13 October, 2011
Robson Vitor Rezini
Robson Vitor Rezini

Hello, I wonder if the applications that we have done, so upgraded to version 2011 vol2, they will automatically use AJAX callback? Or We'll have to change something like the Default.aspx page?

20 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

As always during upgrades, it is necessary to exactly follow the upgrade instructions we published at documentation.devexpress.com

Some changes may be required to  your Web controllers code, because working with AJAX is a bit different than with post backs. So, be sure to check out our What's NEW pages (especially about breaking changes) for more details:

www.devexpress.com/.../DXperience

20 October, 2011
Felipe R Machado
Felipe R Machado

Dennis, where have the sunglasses gone!?!?!!? (this is te only comment I can think of, because this enhancement is so good to believe :-) )

24 October, 2011
Dennis (DevExpress)
Dennis (DevExpress)

LOL:-)

Thank you for the feedback. I am glad to hear that you liked these Web UI enhancements. I also hope that  after that you will consider using XAF Web UI for building your next business application.

1 November, 2011
Jessica Black
Jessica Black

I love your work : )

18 November, 2011
Dennis (DevExpress)
Dennis (DevExpress)

Thanks, Jessica! We love it too:-)

24 November, 2011

Please login or register to post comments.