XAF - Important Changes to the SPA UI Strategy: The Future is Blazor

XAF Team Blog
05 August 2019

The announcement within this post is important and I don't wish to minimize its impact. My goal is to give everyone as much advance notice as possible but I will save a more in-depth discussion for a later post.

As of last month, we officially canceled XAF's React-based SPA UI project. We have made the decision to focus our efforts on Blazor going forward.

We asked many XAF users for feedback and almost universally, most felt that Blazor was indeed the right path forward. Since our ASP.NET team is also fully committed to the Blazor platform, we believe Blazor represents our best long-term option. Truth is that we seriously considered Blazor a year ago, but unfortunately it was not in the best possible state at that time.

We can no longer ignore the value Blazor brings to the table for our .NET user base. We appreciate all the wonderful React-related feedback you've given us over the last twelve months and though cancelling a project is not fun (nor does it help anyone's bottom line) we are confident that this decision will be a win/win for everyone.

Benefits of Blazor for You and DevExpress 

Though waiting another year for a Blazor UI is not the best news, our decision to pursue this new direction brings with it a number of benefits:

  • XAF v19.2 will include .NET Standard 2.0 Nuget packages. This helps the Security APIs in Non-XAF apps and allows us to address more usage scenarios for both XAF and non-XAF customers.
  • Blazor better fits the long term needs of our .NET users and those with little or no JavaScript, HTML and CSS experience. 
  • Blazor has fewer moving parts and a simpler architecture than our React SPA UI (DevExtreme React components are wrapped with a custom written UI scaffolding framework that works on top of XAF's server-side Application Model and View-based infrastructure).
  • Blazor provides simpler development flow - one that is familiar to WinForms and ASP.NET devs.
  • Our initial impression is that Blazor will allow us to add features more quickly and is easier to maintain. For instance, one developer can create a basic MainDemo-like app with list and detail forms in only 5 days with Blazor server-side. 
  • Blazor provides better performance than ASP.NET WebForms apps, because of its 'virtual DOM'-based UI updates (produces less traffic (bytes)). In our early tests, Blazor server-side spike performance is comparable to our SPA UI demos. Additionally, Blazor does not have issues with slow initial build (due to hundreds of megabytes in the node_modules folder). 

To Client-side, or Server-side, that is the Question.

As of this moment, our former SPA UI team is conducting final tests and we'll soon know whether to pursue Blazor client-side or Blazor server-side. Blazor client-side hosting mode supports offline and better scalability. Blazor server-side mode is much more mature, easier to use and much faster in our syntethic tests. Needless to say, we don't want customer apps (with hundreds of business classes and controllers) to load slowly with Mono inside the browser, especially on low power mobile devices.

The race continues and no obvious winner has emerged as of yet. I will announce who wins our Blazor client-side vs server-side shootout as soon as I am able. Please stay tuned.

34 comment(s)
Stanislaw.Tristan
Stanislaw.Tristan
Thanks for impressive and great news! Will wait for client/server decision. My personal wish - is to be able for server application to serve as more concurrent users as possible.
5 August, 2019
Stanislaw.Tristan
Stanislaw.Tristan
So my vote - is for client-side Blazor :)
5 August, 2019
Jacek Kosiński
Jacek Kosiński
That’s great news! I like it. What Changes in project  ?
5 August, 2019
Robert Fuchs
Robert Fuchs

Re: "Blazor client-side supports offline and better scalability. Blazor server-side mode is much more mature, easier to use and much faster."

Really? As XAF is a framework mainly for LOB application, offline is a must. So why even consider server-side?



5 August, 2019
Marcelo G. Fonseca
Marcelo G. Fonseca
Great news!
5 August, 2019
Peter CaoZheng
Peter CaoZheng
Exciting
5 August, 2019
Ken Gliddon
Ken Gliddon
Great news Dennis, in our scenario there is a requirement for offline capability in remote, hard to reach areas for medical teams and this will be a huge enhancement going forward for us.  All eyes on 19.2!  Thanks for the update.
5 August, 2019
Brad Baker - MMC
Brad Baker - MMC
@robert. Client side blazer isn’t supported yet.  Plus there are other downfalls like security injection.  Plus you need to hope every client has a nice speedy system.  Server side is probably better for most LoB anyways. Does the non web version work offline?
5 August, 2019
Blago Culjak
Blago Culjak
Hi, that this means that you will shift your SPA UI team to Blazor. Can we expect even faster features for Blazor?


I have used your controls for Blazor and Blazor itself for some time, and just can say that web development needed Blazor, and your decision was right call.

5 August, 2019
Taradanov
Taradanov
Great news!
5 August, 2019
Sergej Derjabkin
Sergej Derjabkin

Hi Dennis,


great news! Why do not support both client and server side? As You explained both have it's advantages and disadvantages. One point is also code security: In server side blazor all business logic runs on server. On the client side Blazor user can theoretically decompile the application.


The client side blazor will be available (go live) with .Net 5 by the end of the next year. It will support AOT compilation and will be based on the .net 5 and not mono anymore. So performance tests now are a kind of premature.

I think server side Blazor would be a good start, since it is "Go live" now. And the support for the client side Blazor can be added later, when it's about to be released.


Best regards,

Sergej Derjabkin

5 August, 2019
Francisco Manuel Suárez Grueso
Francisco Manuel Suárez Grueso
In the short term the server-side option is the most appropriate, in the medium and long term, when WebAssembly has matured, the client-side option is very valid. I think it is a mistake to decide for one or the other, both options, in due course, should be supported.
5 August, 2019
Stephen J White
Stephen J White
Thank you so much for making this critical decision Dennis, Ray and everyone else at DevExpress. My company is looking into redoing its main web app at some point, and they are very happy with your WPF suite.  I have them mostly on board with using Blazor server side for the replacement and I would be delighted to make the case for using the XAF framework down the road since it would provide us with additional time saving on development. This is exciting news and I look forward to seeing what comes next!
6 August, 2019
Arjan van Dijk
Arjan van Dijk
I would suggest both server and client side. Depends on the use case...
6 August, 2019
MIGUEL CARRASQUILLO
MIGUEL CARRASQUILLO

Great news!! Long live XAF & Blazor.

I also would suggest the option for both server and client side. 

6 August, 2019
Cory Crooks
Cory Crooks
I'll just echo the other sentiments here I think server and client support should both be supported. The both have pluses and minuses, and I think depending on the use case, you may want to use one or the other.
6 August, 2019
Anatol (DevExpress Support)
Anatol (DevExpress Support)
Thanks everyone for your valuable feedback. At this stage, we are going to research both client and server sides, analyze their pros and cons and distribute our resources accordingly. We agree that each approach provides its own benefits and are going to find a solution that would be most valuable for our customers.
@Jacek, I do not quite get your question. Please feel free to contact us in the Support Center and provide more details.
6 August, 2019
Kęstutis Rutavičius
Kęstutis Rutavičius

I am echoing opinion that both approaches should be fully supported :)

6 August, 2019
Michael Gibson - PatTrac
Michael Gibson - PatTrac
This is a great direction to take. Since you are changing direction, can you reconsider support for Domain Components and Entity Framework?
6 August, 2019
FrankBGN
FrankBGN

Hi Dennis,

excellent news! One question regarding the timeline: Will there be a blazor based UI for XAF coming with the official release of ASP.NET Core 3.0 this year, or what is your schedule?

Best regards,

Frank

7 August, 2019
Armando Costa 1
Armando Costa 1

Simple, GO SERVER-SIDE, and as the client Blazor matures, do a second flavor ! 

Should be easy to get it to client, they say...

7 August, 2019
Anatol (DevExpress Support)
Anatol (DevExpress Support)

@Michael, we are developing our prototypes with XPO. At this stage, our goal is to provide an MVP (minimum viable product) in the shortest time possible. Once this is done, we can plan further improvements.

@FrankBGN, we will publish a schedule as soon as we have enough information to make any estimates. But, based on our experience, we cannot expect an MVP version to be ready this year.

7 August, 2019
Antonio Matos 1
Antonio Matos 1
Is your Blazor suite .Net Core compatible ? Or your Asp.net core components are a separated suite?
9 August, 2019
Yahya
Yahya

Is it viable to start with an asp.net project now to be later converted to Blazer, apart from any custom code?

Any tentative ETAs for various stages of the Blazer version?


10 August, 2019
Pawel Botwina
Pawel Botwina

Hello,

Both options. First server, then client side.

10 August, 2019
Peter Wood
Peter Wood

Thanks for the information.  I look forward to the in-depth discussion.  While I've made a career in C# and love it as a language it looks increasingly niche even to me in the open world of web and cloud, and I'm interested that you have chosen to commit to a niche and unproven (incomplete) technology over a proven, widely adopted UI option.  I'm guessing you have information I don't about the adoption of your React components (which my team use) and that it is probably difficult to get significant penetration in that market.


I hope that this works out - options and competition are always good, and end-to-end C# still has plenty of advantages - but it sounds like there are still plenty of challenges for client-side blazor.

12 August, 2019
Anatol (DevExpress Support)
Anatol (DevExpress Support)

@Antonio, our Blazor UI will leverage the advantages of the Blazor technology. This includes the support of .NET libraries compatible with .NET Standard 2.0. In parallel, our colleagues are creating dedicated Blazor Components. You can see the latest news here: https://community.devexpress.com/tags/Blazor/default.aspx.


@Yahya, while it is fine to use the XAF ASP.NET WebForms UI, Blazor is a different platform that may have its own limitations and requirements. It is likely that you will be able to reuse a part of your business model, logic and View Controllers.

We are not ready to provide any ETAs for the Blazor UI at this stage. Please stay tuned.

12 August, 2019
Sven Glöckner 1
Sven Glöckner 1
Thanks for this great announcement
14 August, 2019
Yahya
Yahya
Is Xamarin not an option for XAF mobile?
16 August, 2019
Dennis (DevExpress)
Dennis (DevExpress)
@Yahya: No.
16 August, 2019
Gunnar Dalsnes
Gunnar Dalsnes
What will be different with client and server Blazor from DX pow? The same component can not be used in both modes?
19 August, 2019
Anatol (DevExpress Support)
Anatol (DevExpress Support)
@Gunnar Dalsnes, Blazor provides the capability to use the same components in both modes. It is too early to promise anything yet, but we would definitely prefer to have the same classes for the client and server modes.
20 August, 2019
Farooq
Farooq

Hi Dennis & Anatol,

Great News that we are moving forward with Blazor for all the good reasons you guys mentioned. 

For me, Blazor is also the way forward but I would like to know the future of XAF WebForms because my current applications are XAF WebForms based. And knowing the future of XAF WebFroms at an early stage will help me plan out my product road map accurately and in-line with XAF developments.

26 August, 2019
Dennis (DevExpress)
Dennis (DevExpress)
@Farooq: Our primary focus in 2020 will be on XAF’s Blazor UI but we will do what we can to address the needs of those reliant on our ASP.NET WebForms UI. For instance, in 2019 we already supported the following popular WebForms features: user-friendly URLs, ImmediatePostData and reference properties in ASPxGridView's Batch Edit mode without custom codeSpreadsheet Editor. Let me know in case of any questions.
26 August, 2019

Please login or register to post comments.