Aspnetcore: Feedback - Make Blazor happen

Created on 29 May 2018  ·  23Comments  ·  Source: dotnet/aspnetcore

Hi Team;

Just watched Steven Sanderon's powerful 2018 NDC conference on Blazor and it brought a lot of great memories of Silverlight days of building Web Apps using .Net
Blazor is the perfect evolution of SL to build real powerful apps backed by .Net and not js technology.

Steve said at the end, the future of Blazor depended on Customers' feedback and interest. "I" as a long time .Net developer focusing on Web Technology would like to vote my strongest desire to see this product in production. This is the future of Web development. Blazor WILL attract a lot of people into .Net and MST space.
So, PLEASE MAKE IT HAPPEN!!!

Also, please build native Signalr Core client interface into Blazor so we can build Real-Time apps. The Shared project makes it super easy to share our server and client share same classes.

Once it's baked a bit more, I'll be diving in seriously.
Thank you team for such great product.
..Ben

area-blazor

Most helpful comment

I'm a desktop developer with some experience in ASP.NET Core. We (my company) create ERP software for meat factories. There is a pressure to port at least part of our system and preferably full system to the web. I have spent a few months reading about JavaScript, TypeScript, Knockout, Vue, Angular, WebPack, etc, etc. From my point of view the whole ecosystem is horrible. Using Knockout I was able to write a page similar to "counter" page in Blazor demo and that is all. I have started my adventure with Blazor a few weeks ago and from that moment I use it at least a few hours a day. On every documentation page we can read that it is "only" experimental product. Of course it is not complete at the moment but it is already amazing. Why we (I mean programmers around the world) need it:

  • I have more than 20 years of experience in C/C++ programming, but in my opinion C# is the best programming language I know and features like LINQ, easy async programming, etc. are amazing if someone have to write LOB applications.
  • Intellisense, refactoring, debugging, consistent programming environment for client and server - we need all these features when we write systems which have thousands of lines of code.
  • In every LOB application we have to make monetary calculations which are almost impossible to do correctly if we only have float/double data type. We need decimal data type or language like C++ where we can implement our own type and define operator overloading.
  • Operator overloading is also a must have feature. We can define Money, Quantity and Percent data types and with proper operator overloading we can then write something like this: totalAmount = price * quantity - discount - everything is calculated correctly and rounded according to business rules. Try to do similar calculation in JavaScript.
  • Money data type can have value and currency properties. When we try to do something like this: amountUSD + amountEUR we can throw exception.

Today internet is everywhere and more people than ever before use smartphones or tablets to surf the net. Every company have to have webpage, but simple web page is not enough. We have to write web applications which offer experience similar to desktop applications. Those applications:

  • Have to be written fast.
  • Have to be easy to maintain and refactor.
  • Have to be well tested and rock solid.

I have read somewhere that there are people who are able to write big applications in JavaScript but I have never personally met anybody who can write programs in JavaScript with similar productivity to C# programmers.

For millions of small and big companies around the world Blazor is a chance to create modern and advanced web applications in reasonable time with minimal effort compared to legacy solutions like Angular, etc.

I have to agree with @BenHayat that Blazor is VERY advanced for an experimental product. As I said above I use Blazor at least a few hours a day. I have seen a few exceptions in Visual Studio, but compiled application simply works! It is already not trivial with complex inheritance, service injections, C# template classes, reflection. I'm not experimenting with Blazor - I'm working full time and I strongly believe that this amazing product will not be abandoned.

All 23 comments

@BenHayat i noticed this if it helps... https://github.com/aspnet/Blazor/issues/20

Can't wait to use Blazor in my next production app, just waiting for that first official production release.

At the end of Steve's video, he showed how far the team is in this "experimental" product and it looks VERY advanced for Experimental.
Unless someone in upper management kills this product, this is going to be a major hit. The .Net Standard is the key player here.

I am currently developing a small demo application and I am absolutely excited about it.
It's great what is already possible even in the experimental alpha version. I definitely plan to use Blazor in production when it is ready :)

@BenHayat i'm v excited about it too. but worth looking at this dll issue aspnet/AspNetCore#5477 while every one seems breezy about it - its a potential show stopper if not addressed.

@JonnyGibson this is just a detail and will surely be addressed before the project is validated.

I am a big fan of this project too, I just hope they'll keep the simplicity of usage as a target, the other competing framework seems way more complicated with all the bootstrapping needed.

I'm a desktop developer with some experience in ASP.NET Core. We (my company) create ERP software for meat factories. There is a pressure to port at least part of our system and preferably full system to the web. I have spent a few months reading about JavaScript, TypeScript, Knockout, Vue, Angular, WebPack, etc, etc. From my point of view the whole ecosystem is horrible. Using Knockout I was able to write a page similar to "counter" page in Blazor demo and that is all. I have started my adventure with Blazor a few weeks ago and from that moment I use it at least a few hours a day. On every documentation page we can read that it is "only" experimental product. Of course it is not complete at the moment but it is already amazing. Why we (I mean programmers around the world) need it:

  • I have more than 20 years of experience in C/C++ programming, but in my opinion C# is the best programming language I know and features like LINQ, easy async programming, etc. are amazing if someone have to write LOB applications.
  • Intellisense, refactoring, debugging, consistent programming environment for client and server - we need all these features when we write systems which have thousands of lines of code.
  • In every LOB application we have to make monetary calculations which are almost impossible to do correctly if we only have float/double data type. We need decimal data type or language like C++ where we can implement our own type and define operator overloading.
  • Operator overloading is also a must have feature. We can define Money, Quantity and Percent data types and with proper operator overloading we can then write something like this: totalAmount = price * quantity - discount - everything is calculated correctly and rounded according to business rules. Try to do similar calculation in JavaScript.
  • Money data type can have value and currency properties. When we try to do something like this: amountUSD + amountEUR we can throw exception.

Today internet is everywhere and more people than ever before use smartphones or tablets to surf the net. Every company have to have webpage, but simple web page is not enough. We have to write web applications which offer experience similar to desktop applications. Those applications:

  • Have to be written fast.
  • Have to be easy to maintain and refactor.
  • Have to be well tested and rock solid.

I have read somewhere that there are people who are able to write big applications in JavaScript but I have never personally met anybody who can write programs in JavaScript with similar productivity to C# programmers.

For millions of small and big companies around the world Blazor is a chance to create modern and advanced web applications in reasonable time with minimal effort compared to legacy solutions like Angular, etc.

I have to agree with @BenHayat that Blazor is VERY advanced for an experimental product. As I said above I use Blazor at least a few hours a day. I have seen a few exceptions in Visual Studio, but compiled application simply works! It is already not trivial with complex inheritance, service injections, C# template classes, reflection. I'm not experimenting with Blazor - I'm working full time and I strongly believe that this amazing product will not be abandoned.

My company has a similar challenge: we have to rewrite an old web project.
We were looking at Angular and Vue but setting up those projects is quite a challenge if you want to understand all the"magic" bootstrapping that is required.

Because we're already using ASPNET Core with MVC, setting up a Blazor project was very simple and easy to develop with.

The only stopper for adopting Blazor right now is debugging and hot reloading support (which are underway) and the 'experimental' label.
Any idea on when this label will removed?

The same for us.

1)
It would also need a nice datagrid to be able to easily manipulate the data

image

as do syncfusion (https://help.syncfusion.com/aspnet-core/grid/getting-started) and devexpress in javascript

it should be done without javascript in native (c# only.)

because html is too poor to display and manipulate a datagrid for business applications

2)
it should also be seen how Google's SEO will work with Blazor

But this project is really top

vote this https://github.com/syncfusion/ej2/issues/22 … with next version ej2 should have .netstandard reference instead of actual .netcoreapp, I've planned to try to build a nuget pkg for interop with syncfunsion ts files

@stephane3434
I think that companies like DevExpress, Telerik, Syncfusion, and others will create Blazor components. They simply have to wait a little because currently Blazor have some problems with event handling and as we all know you have to handle events if you want create a complex component like advanced datagrid, spreadsheet, etc.

SEO will work in the future - look here aspnet/AspNetCore#5464

I'd love to use Blazor. Only reason I haven't is because it isn't committed. Using javascript makes me want to die.

@Sannysc;

When MSFT pulled the plug on Silverlight, it cost us a LOT of money and time wasted in developing resources for SL. And that WAS a committed product, but someone at MSFT pulled that plug. Not only it hurt many developers, but more so MSFT itself. Millions of SL developers who could have been developing for Windows 8/10 and Mobile, turned their back and you could see how MSFT lost the whole Mobile for Windows.
So I hear you all the way, and I don't want to get burnt again with Blazor. And that why I titled it "Make it happen". Another words make sure that guy who killed SL, is no longer working at MSFT. :-)

Just like SignalR started as "Experimental", but some folks protected it heavily inside of MSFT and turned it into a production product. Luckily Blazor in being developed by the same folks and I hope the "Scotts" will protect Blazor as well. :-)

“Fool me once, shame on you. Fool me twice, shame on me.”

Comparisons with Silverlight miss the mark. Silverlight was:

  • closed source
  • not browser agnostic
  • dependent on a proprietary plug-in

All things that the modern web abhors, and all things that are not true of Blazor. The web evolved and outgrew Silverlight. MS evolved in turn.

To be skeptical or fearful that because MS deprecated an obsolete technology they might do the same to Blazor prematurely is simply unwarranted. All I've seen so far are good business decisions that any smart executive would have made in their position.

One lingering question I have is about performance given that it's running through Mono, so we have two layers between the MSIL and the CPU instead of one layer with netfx/netcore and zero with Mono on iOS (since it's compiled). And then there's the whole JS interop thing to even access the DOM.

Are there any performance metrics out there that demonstrate UI performance in Blazor vs JavaScript? I'm thinking things like number of DOM elenents vs framerate. Latency between click and a DOM update, etc. We have some pretty immersive UI implemented with Angular (and frankly I'm not thrilled with the performance on older machines and tablets). I'd have to be certain Blazor UI performance would be at least as good before committing to it for vNext.

Blazor's performance is horrible! at the moment. Search around in the issues. Someone did a benchmark a few weeks ago. It wasn't pretty. There are tons of optimization that have not yet been done yet, so there's plenty of hope though.

Ack that was what I was afraid of. Do we know - or have educated guesses - whether compiling C# directly to WASM would be materially better? I know the Mono team was working on that but I've not seen anything lately.

I wish WASM would get on with direct DOM access too. That just makes no sense not to have it.

One lingering question I have is about performance given that it's running through Mono, so we have two layers between the MSIL and the CPU instead of one layer with netfx/netcore and zero with Mono on iOS (since it's compiled). And then there's the whole JS interop thing to even access the DOM.

The architecture already allows any combination of parsing/JIT/AOT. It is only a matter of time before this will get addressed, but not a limitation of the platform.

When MSFT pulled the plug on Silverlight, it cost us a LOT of money and time wasted in developing resources for SL.

I don't think bashing Microsoft for fading SL makes any sense, and it never did. SL solved a real problem which was streaming video. HTML could't do that before, we should be thankful for SL forcing browsers to implement this. Speaking of foresight, Adobe announced the end of Flash in 2017. Microsoft announced Silverlight EOL in 2012. I think Microsoft saw what was coming early but they did not have the control of the browsers, yet they still get blamed for not supporting a plug-in that got blocker by other browsers. Would you rather have been a Flash developer and waited another 5 years for the bad news? Of course not. I think it was great that they stopped investing in a technology where they did not have upstream control. Plug-in developers are always at a disadvantage strategically relative to the underlying platform.

Not only it hurt many developers, but more so MSFT itself. Millions of SL developers who could have been developing for Windows 8/10 and Mobile, turned their back and you could see how MSFT lost the whole Mobile for Windows.

Let's be honest here. Windows Mobile did not fail because SL developers abandoned it. There was, and is, far more going on to explain that. Second, migration projects happen all the time but React people don't go out of their way to complain about Angular 1 years after the release.

So I hear you all the way, and I don't want to get burnt again with Blazor.

For that to happen, all browsers have to deprecate WebAssembly which seems to make no sense because this is just a thin layer over the internal JavaScript runtime, with all the hardening and battle proofing it has gained. If WebAssembly has a security problem, then JavaScript has the same problem, so you can be pretty sure it is going to get fixed. The incentives are aligned completely differently.

Regarding performance, I created "standalone" implementation of this mega benchmark: https://github.com/krausest/js-framework-benchmark
I dont have any numbers, but it feels really slow and unresponsive, compared to other JS frameworks. Developer experience however, was very pleasant. I stumbled upon one issue with event handling. If you click delete item, item is deleted, but item which replaced deleted item gets selected.
Here: https://github.com/marc3lsk/BlazorJsFrameworkBenchmark

Yes, the performance issues are known and we plan to address them in partnership with the Mono folks with some combination of improvements to the IL interpreter and AoT compilation.

Thanks everyone for your interest in and support for the Blazor project! We share your enthusiasm for the project and hope that it will progress into a productization phase soon. For the time being Blazor is still an experimental project that is being actively developed to explore the opportunities and limitations of building a client-side web framework in .NET and to continue to get feedback from developers like you. We'll let you know as soon as there is any update in the project's status.

I'm going to go ahead and close this issue as it isn't really tracking any specific work for the Blazor project, but we do appreciate the support. Thanks again for all of your comments!

I would love to see Blazor really happen, I just wanted to say that I was sad that SL did not merge with WPF to give us a really cross platform solution. It really is way more powerful to develop with the XAML approach than with html, have a look at the richness that is possible with universal apps UWP. But it seems that no one has the guts to dump html/css for the clunky old tech that it is. I would also like a return to the application model or Domain Driven Design patterns so that you just observe the domain to massively improve the decoupling of systems and the ability to plug and play front/backend techs. If you want to do DDD checkout the asp.net boiler plate guys. They have an awesome framework, they support MVC, Angular, Vue and I have asked them to look at Blazor as well but I think they will hold off as they don't want to go to far out, they used to do Durandal really well but they did not move on to Aurelia as although its the BEST SPA framework around at the moment, its not getting much love. So Blazor is a massive improvement over js but its just a step along the way to move web into higher level languages/frameworks and then the web will be so super kool and it will be so fast to develop.

Was this page helpful?
0 / 5 - 0 ratings