I swear! If blazor becomes production ready, I may not touch angular anymore. Wow!
@SayWhaaaaaaaaaaaaaaaaaaaaaaat4 жыл бұрын
so why touching angular? that shit will never be production ready
@marcusmaunula50185 жыл бұрын
Microsoft has hit a Homerun with this. I am throwing out Vue now. Nothing wrong with it but for C# devs, this is a no brainer as far as I am concerned :).
@osman34045 жыл бұрын
Also having Steve Sanders build it and demo it is the real reason why it will be successful. He is amazing
@mattmarkus48685 жыл бұрын
I’d rather do react after first glance.
@SeanKearon5 жыл бұрын
Truly mind blowing. What an amazing piece of developer technology.
@SeanKearon5 жыл бұрын
Oh, and an amazing presentation too!
@Miggleness5 жыл бұрын
Amazing as Blazor is, Steven's ability to demo and explain so much in an hour is outstanding!
@SaidElnaffar5 жыл бұрын
What impresses me about Steve that on top of he is a bright engineer, he is a remarkable educator too!
@osman34045 жыл бұрын
Said Elnaffar YES and also an amazing presenter all the way from his KnockoutJS days
@emilun775 жыл бұрын
Steve is such an amazing presenter. Full of knowledge, secure, funny and manages to skip to the interesting parts without losing the audience. 10/10 presentation.
@BenHayat5 жыл бұрын
It's a good thing Steve is behind Blazor.
@BenHayat5 жыл бұрын
@Solve Everything But the server side suffers as for each user goes to the URL, a copy of the app gets instantiated. This quickly eats up your server resources and limits # of users. I hope we get the client side out soon as the CPU and memory of user's browser is used and server becomes a REST server, Just like Angular or Vue client app.
@arwahsapi5 жыл бұрын
He's awesome. Microsoft should build a statue of him
@BenHayat5 жыл бұрын
@@arwahsapi Microsoft has a few great people, liks Steve, Scott Guthrie, Scott Hunter, Damin Edwards and a few more. They have brought a lot of values to the table.
@sergekg2kg8445 жыл бұрын
Blazor - is a brilliant technology! Hottest and universal UI technology which is could be deployed to any computer platform and usage scenarios, makes obsolete WPF, WinForms, Xamarin.Forms and others. Thanks to Steve Sanderson.
@vinzer72frie5 жыл бұрын
Can you explain why this makes obsolete other platforms?
@sergekg2kg8445 жыл бұрын
@@vinzer72frie The simple answer is: Blazor today is only one unified high performance UI engine/tool with capability to deploy to ANY platform including IoT, just using one high performance .NET Core runtime and support various scenarios without redesign server front/back-end, desktop UI...
@obinnaokafor62525 жыл бұрын
@@sergekg2kg844 These other platforms can run on .NET Core Runtime also?
@StefanJarina5 жыл бұрын
@@obinnaokafor6252 True, however not completely multiplatform (WPF, WinForms, UWP is still Windows only even on .net core). However I doubt that this make Xamarin.Forms obsolete. But WPF and WinForms -- This very well might be.
@obinnaokafor62525 жыл бұрын
@@StefanJarina Ofcourse they are Windows -centred tech. However, so many companies are still developing and maintaining WPF and WinForms, so they are not going away anytime soon - and that is the reason Microsoft is working hard to making them take advantage of .NET Core. With uno.platform, you can make UWP a cross-platform tech stack.
@nandodixtorsion5 жыл бұрын
Steve Sanderson, you and your team are trully amazing. Can't wait to see where all this technology can bring. Thanks for this great tech, I've never been so excited in a long time.
@MrDirtydisco5 жыл бұрын
I can not WAIT to get away from JS Frameworks. Bring it on !!
@MrDirtydisco5 жыл бұрын
@Solve Everything indeed it is
@finch96685 жыл бұрын
Wow! Can't wait .NET 5!! Thank you Steve!
@FilledStacks5 жыл бұрын
❤️❤️ This is so awesome! I can't wait to start using it for a production project. Well done Blazor team.
@--Eric--5 жыл бұрын
Fell in love with Blazor from the first time I saw the Counter/Weather demo about two years ago. Now Blazor has grown to be really really awesome.. With Blazor I finally can do web programming with .Net, which before was overwhelming to me with all the different JS frameworks. Thank you, Steve (and Daniel with the rest of your team)!
@DavidSeesSharp5 жыл бұрын
The NDC talk I have been most waiting for!!! GREAT!!!
@chandanghosh66955 жыл бұрын
Each time there is something new to learn from Steve! Awesome demo, Thanks a lot!
@anthoniG5 жыл бұрын
Wow, just wow. My jaw dropped when I saw the desktop versions of Blazor. Love it!!!!!!!
@obinnaokafor62525 жыл бұрын
Steve Sanderson is amazing.
@viktoralferov28745 жыл бұрын
The best speaker. Very nice to listen to.
@originalTriniOne5 жыл бұрын
Yes. Definitely. My first time and I was able to follow along versus being bored and struggling to stay awake. And, useful and practical examples too. Great stuff?
@siyandakhanyile2104 жыл бұрын
The pin map thing wow'd me, especially when he showed agents on the Map, mind blowing stuff.
@eliudgerardo11525 жыл бұрын
Amazing!!! Thanks Steven Sanderson for give us Blazor.
@MuhamadRamandani5 жыл бұрын
For me as a c# programmer, this is amazing thing.. now I can code multi platform app using only c# blazor
@TonyTigerTonyTiger5 жыл бұрын
Starting at @54:15 Ultraviolet, not infrared :-) Infrared would be past the visible portion of the spectrum at the red end, which would be going higher relative to the top of the spectrum you show. Ultraviolet would be past the visible portion of the spectrum at the violet end, which would be going lower (past violet).
@sjbthfc5 жыл бұрын
Steve, last time you blew my mind with Blazor and .NET in the browser, now you have done it again with Blutter. How is the .NET side of that actually working? Massively looking forward to client-side Blazor.
@justin_ooo5 жыл бұрын
pretty sure he briefly explained it in the video but afaik they ported the .net mono runtime to webassembly and inject it into the browser to the browser can execute IL instructions through that
@sjbthfc5 жыл бұрын
I was specifically referring to the Flutter example rathee than browser-based Blazor. Lots of possibilities for native app development.
@atari10405 жыл бұрын
I still remember using KnockoutJS version 0.6 or so by sir Steve... And now Blazor... He is a pioneer to me, reaching out far ahead of time! I'm wondering what's next after this goes production and crushes all JS frameworks? Native XAML on the web? Hmm... There is sth like this already so...
@TonyTigerTonyTiger5 жыл бұрын
I had never heard of NDC Conferences. I've watched 2 presentations so far and they are better than most KZbin accounts' videos. Subscribed
@VonGrav5 жыл бұрын
Even better to attend the NDC conferences ^^,
@buildingphase97125 жыл бұрын
When all these technology companies compete, we win as developers
@charles-y2z6c5 жыл бұрын
Just picked up on this February 2020, I have been waiting for this and hoping since Silverlight, AjaxControl Tookit and VBScript. Really excited and hope MS hits this out of the park
@huseyinakcicek5 жыл бұрын
Combination power of the C#+Blazor and Visual Studio. I am so excited
@anettera34605 жыл бұрын
The map part of this demo is incredible
@Wfmike5 жыл бұрын
As a full stack developer I'm genuinely excited with blazor. Good to see Microsoft implementing editform which is similar to formik
@LimitlessMinds5 жыл бұрын
Since KnockoutJS, following his work, great conference
@williambell45915 жыл бұрын
My foray into ASP.NET MVC web development has always been hampered by the need to have some form of java script library JUST to handle UI interactions! 10 to 100 thousand lines (or more) of code in my projects that I honestly have NO IDEA what's going on within it! I don't have issues with "Black Box" libraries, but I'm a C# developer, and it just irks me when I have to "devolve" down to javascript code to do my UIs; mind you, everything else is in C#, but now, I have to drag out javascript!.. Thank God for this! I can't wait to learn Blazor and finally enjoy web development the same way I enjoy my beloved WPF and XAML!
@GarethDoherty19855 жыл бұрын
I am only a beginner .net programmer and found it frustrating that I would have to rebuild the app for other platforms like iOS And MacOS. But this video just blew my mind with Butter and makes my outlook towards cross platform development much more sunnier. Once Blazor is embedded, they need to go back to the Butter thing and make it official.
@obinnaokafor62525 жыл бұрын
Even before Blazor (Butter), you can build cross-platform apps (iOS and MacOS) using Xamarin or Uno Platform
@obinnaokafor62525 жыл бұрын
@Solve Everything Xamarin has never been in the way. Use whatever makes you happy. Inside Microsoft, some dev groups use React Native. some use Xamarin while some use whatever they love.
@BenHayat5 жыл бұрын
Steve just covered a lot of new features on client-side that are not in docs. I wish MSFT would catch up with client side docs.
@zORg_alex5 жыл бұрын
Tooo goood to be true. Insanely good stuff!
@serges4675 жыл бұрын
Brilliant Blazor! Steven Sanderson thank you!
@hantverkaren5 жыл бұрын
This should be built with app-development in mind. Just like when you develop a JS-application (with Vue, Angular or what ever) you can easily turn it into an app running natively in iOS and Android with Capacitor or Cordova, this also should have the similar ability. Maybe compatibility with Capacitor is possible? With available web-technologies (Capacitor especially) one can write one single Client-side JS-app (with logic, HTML & CSS) and publish it on the Web, desktop with Electron, iOS and Android. This way of thinking needs to be integrated in the development of Blazor to truly take over in the arena of web-technologies. Today I build my Backend with ASP.NET Core WebAPI and Frontend with JS (Vue + Capacitor). Even though Blazor is exciting a switch to it will come with a too great of a cost at the moment.
@kr4it1135 жыл бұрын
I think we can do that with blazor
@pareenvatani94605 жыл бұрын
The entire industry has moved to react .. it would be nice to see how microsoft pitches blazor in such competition
@isaahliu5 жыл бұрын
All hail to the MS lords. (This is so awesome)
@shorttravelvideos96494 жыл бұрын
Extremely impressive demo.
@zerosoft5 жыл бұрын
Duuude... that Blutter demo blew my socks off... I want it... please please please.. pretty please
@maacpiash5 жыл бұрын
The best damn video on the best damn Microsoft product in 2019. Great job!
@arwahsapi5 жыл бұрын
Can we delete the node_modules folder now?
@kr4it1135 жыл бұрын
Hahaha
@jayantguru2985 жыл бұрын
Hahaha
@xucongzhan91515 жыл бұрын
Such a good talk! Thank you Steve!
@abdouldia16055 жыл бұрын
Really cool. Definitely looking at it.
@timnguyen14145 жыл бұрын
I do work with JS for a long time but it's still painful. Do this tech will rescue me and save my life or it's just another option ?
@vinzer72frie5 жыл бұрын
Wasm is indeed the future with no js it is s replacement blazor its just the first framework that is out
@PapayaEditora5 жыл бұрын
where is the solution template with 3 projects inside? (client, server and shared)
@meirkr5 жыл бұрын
Hi. Geat presentation. Can you please share the flutter combination presented at the end? I could'nt find it in.the ripo you have shared.
@vinothdharmaraj75105 жыл бұрын
Blazor validation not support individual field validation, its only validate all fields at a time in context. if i load my page at once in separated tab or stepper, partially validate the controls not all fields. Is it possible? Please give me the solution.
@mortenmoulder5 жыл бұрын
I attended Steve and Ryan's Blazor workshop at NDC this year. Two full days only focusing on Blazor and everything that goes with it so far. I can easily tell you this: Vue, Angular, React, and so on: Go home. If you're just a bit interested in C# and .NET as well as some frontend, Blazor is extremely exciting. Also, Steve is just an awesome guy. Extremely knowledgeable. Ryan too.
@NikosKatsikanis5 жыл бұрын
No, they won't go home, js is and will always be the native web language.
@jonataspc2 жыл бұрын
Amazing presentation.
@damickillah5 жыл бұрын
I am thoroughly convinced that there are people who lurk on youtube to simply dislike videos that they don't even watch. I mean how can you not like this, if you're a real .net dude/dudette? To all the haters who disliked this video, you either don't get it or you are just a serious hater.
@VonGrav5 жыл бұрын
Started with Blazor now. I love that I dont have to bother with JS and bollocks like that.
@martinmc98304 жыл бұрын
What a superb presentation/tutorial Steve, but you have got to be bluffing about Blutter. I would have scores of MS devs working on it because then you have the jewel in the crown - cross platform across 'all' platforms, wow. Please please develop it - just like the team developed Blazor :-)
@MrOldham1015 жыл бұрын
One C# code base for a server side & client side website; a multiplatform PWA; and a semi-native desktop application, all using HTML & CSS for layout / styling. And then to top it all off a PHP style syntax for the rendering logic... 😲😲😲 I've been following WebAssembly for a while but disappointed in the fact that barely anyone was taking advantage of it's potential. I always said whoever does it first and does it properly will totally eclipse the web industry, and after seeing this presentation I think it's safe to say that Blazor will be the technology to do that. Just think of the implications. This now means that C# devs can chuck up a production quality modern single page web application in no time using existing libraries with an almost non existent learning curve... No longer are you forced into learning and then becoming an expert in JavaScript and a JavaScript Framework just to get a semi decent (and usually very buggy) web app, or even worse, getting a separate web development company to make your web app for you spending far too much in the process. In conclusion I think this technology will single handedly double the value of being a C# developer and will put them significantly more in demand as any C# developer is now also a web developer. As a knock on effect I think this will devalue web only developers causing them to drop in demand significantly. Given the current developments in C# it really is becoming an any purpose language topping the current list ( in my opinion ) of the best language to learn if your new to development as you can now do literally anything with it ( apps, games, web, data analysis, etc. )
@xtm81945 жыл бұрын
As long as a technology is tied to a single organization, people will always look for alternatives. Also, Windows 10 and its shitty updates aren't helping with people's trust in Microsoft.
@MrOldham1015 жыл бұрын
@@xtm8194 I, and I think the rest of the industry would have to disagree in the complete opposite manner. Technologies only take off if they have a large company to back them. Just look at Blazors main competitors: Angular.js, React.js, Vue.js. Angular (Google) and React (Facebook) are the only ones that have been widely adopted. Whereas although Vue is the most popular with developers it is the least used out of the three for production due to lack of backers. Also, yes windows consumer products tend to be awful, it's why I don't buy the bad ones such as windows desktops. However their developer software is udeniably good. Your forgetting that the entire C# language was developed by Microsoft and it's now on the top 10 most popular. Bottom line is, unfortunately you don't get to choose trends, your company does. And companies don't use software they think could be at risk of failure or depreciation. Nor like you, do they judge companies on their consumer products when looking at using development technologies as this is a completely separate product and section of the company.
@xtm81945 жыл бұрын
@@MrOldham101 , Deny it as much as you want, people's personal experience with a product/organisation has a huge impact on what decisions would be made; that's why there are so many different languages and frameworks in use today. If what you say is true, then Vue would have already been dead, and yet, it is still being used in large companies. Work at more places and you'll learn that most clients don't care about what you use as long as it works well enough for their use case, and won't get them into legal trouble.
@AlexKolody5 жыл бұрын
I definitely see the value in being a C# developer increasing, but I doubt web-only developers will drop in demand. Software is eating the world and the web is eating software.
@aakashironic5 жыл бұрын
Question : how do I get mdclinearProgess ? Do I have to install some package from nuget? Thanks in advance
@i_youtube_5 жыл бұрын
When is Microsoft going to release Blazor as production-ready version?
@jameshoiby5 жыл бұрын
Should be Sept. 23-ish
@jameshoiby5 жыл бұрын
Note the the release with .net 3.0 this month will include only the server-side Blazor as production ready. The client-side Blazor is still in the pipeline.
@aktxyz4 жыл бұрын
any chance that flutter experiment is on github somehwere?
@FINSuojeluskunta5 жыл бұрын
I work with asp.net core currently, I'm REALLY excited for this because I loathe working with javascript. My only major question is what sort of design structure will this use? I'm seeing a ton of things going on in these razor files that trigger me and I could see new developers running amok with this(not that they don't already with everything else), will it go off of MVC/MVVM? It's both insanely exciting to see so much logic right in the view but also concerning
@farangkao5 жыл бұрын
What i miss is the Example of how Steve implemented the Flutter Engine, for me ,that was the really interesting Part of this Talk. Anyone got a clue? Seems no Example on GitHub
@Weingeist19875 жыл бұрын
Razor engine + tooling makes flutter widget hierarchy even more readable!
@KarenTazayan5 жыл бұрын
Great presentation!
@manjiovendell85205 жыл бұрын
Does the "Blutter" part mean we will be able to integrate flutter to compile .net into android and ios applications?
@weluvmusicz5 жыл бұрын
Theoretically yes, through Xamarin!
@verzivull5 жыл бұрын
45:17 - impressive
@ghidello5 жыл бұрын
Steve: I’ll have a new demo for NDC Oslo Microsoft: Hire a new development team!
@Qrzychu925 жыл бұрын
I can't wait for Blazor to be full fetched, production ready thing - good bye WPF then :D Still, I'm wondering. How does property change notification work here? Does it inject some events? Can we hook up to them and for example, throtle textbox before calling some service? Also, I grew to love MVVM pattern, would love to see some talks about that.
@yackawaytube5 жыл бұрын
Vue + Svelte! I like it. I strongly believe killer apps in webassembly will kill all that JS frameworks. While everyone continues to learn JS frontend frameworks, I am learning blazor! LOL.
@michaelcurrie27315 жыл бұрын
How did he reference a Razor Class Library inside of a Client-side Blazor app? According to the docs (as of preview-6) RCLs aren't compatible with Client-side Blazor. You need to use a Blazor Component Library. But PinMapLibrary isn't a BCL because it uses a wwwroot folder instead of a content folder, and he had to reference the path in HTML, which you currently only have to do with a RCL not a BCL.
@michaelcurrie27315 жыл бұрын
Hmm. After digging around in Github, it looks like RCLs actually are supported in Client-side Blazor, but there are some issues with serving the static files, especially if there a dots in the library name. That's expected to be fixed in preview-7, and BCL are being deprecated in preview-9. It's confusing though because the RCL template generates a project targeting .NET Core 3.0 instead of .NET Standard 2.0, so it makes it look like it can't work on Client-side Blazor, even though it can.
@weluvmusicz5 жыл бұрын
@@michaelcurrie2731 Client Side Blazor is still no official work-in-progress i thought
@arwahsapi5 жыл бұрын
or does it run in Microsoft Edge?
@MD-tm8cy5 жыл бұрын
"This is not something that we have any plans around productizing"
@cubski5 жыл бұрын
He said the same thing about Blazor when he first demoed it but it turned out to be a real product after all. I think they don't have the resources to support yet another platform seeing as Blazor is still in preview.
@SherlockMen5 жыл бұрын
Looks awesome!
@JamieHolloway5 жыл бұрын
couldn't locate your visual studio 2019 new-project template that created three projects...
@jrvidotti5 жыл бұрын
Look for Visual Studio Preview... ;)
@johanmulder39405 жыл бұрын
luv this. Can't someone create a browser extension to prefetch all WASM files at browser startup. Then you have zero downloaded files at website launch. Can be very useful especially in B2B type websites.
@chadlomax45005 жыл бұрын
Is the Mission Control Source Code available?
@GeorgeTsiros4 жыл бұрын
9:30 so. To execute a piece of software... we have like, what? 3 levels of runtimes running each other? That's absurdly wasteful.
@mosth8ed5 жыл бұрын
Woah, are you going to release the flutter integration that you came up with?? I have been loving using Go with Flutter, but I would also really like to be able to do some stuff with C#, too.
@obinnaokafor62525 жыл бұрын
Go or Dart - I mean with Flutter?
@mosth8ed5 жыл бұрын
@@obinnaokafor6252 That I have been using? Both. Go mostly for backend stuff using "go-flutter", then Dart for just the usual.
@obinnaokafor62525 жыл бұрын
@@mosth8ed okay
@ToryBerra5 жыл бұрын
is there a link to the GitHub source?
@datakent31755 жыл бұрын
It was exciting, but there's an alternative like Flutter and Dart. The future will be beautiful :)
@msnotif2945 жыл бұрын
Is there some good utility for design visually web forms ?
@adefwebserver5 жыл бұрын
Radzen.com
@msnotif2945 жыл бұрын
@@adefwebserver thanks
@Eric-v8t5 жыл бұрын
Finally Microsoft saved us from the complexity of UI development with React & Angular ... I worked with Razor a lot in the past and loved it but Razor lost the game because it couldn't work as a SPA application, with Blazor I believe Microsoft will come back to UI development business, good job!
@melikechoc05 жыл бұрын
I'm just afraid the more they push to other sectors, the messier the ecosystem for .NET will get. I just hope they have some kind of page on their website that goes over what each part of the .NET ecosystem is for.
@originalTriniOne5 жыл бұрын
dotnet.microsoft.com/learn/dotnet/what-is-dotnet
@ratayaindonesia65785 жыл бұрын
Just Fantastic !!!
@wim19835 жыл бұрын
One suggestion can we rename the extension from razor to .rz or as .bz?
@weluvmusicz5 жыл бұрын
Nooo please not! The using of abbreviations by developers is getting out of hands.
@MrOldham1015 жыл бұрын
@@weluvmusicz agreed, I think it's what puts so many beginners off as it makes everything harder to learn and therefore more intimidating when you first look at it
@weluvmusicz5 жыл бұрын
@@MrOldham101 k full ack! ;)
@typingcat5 жыл бұрын
Bloody new thing pop out on every day in the web development. So many things to learn, so little lifetime remaining.
@ninjazhu5 жыл бұрын
Amazing how many js frameworks say they support dependency injection but dont let you inject the framework so you can test your code in isolation from the framework... fail to that lack of foresight.
@zariumsheridan34885 жыл бұрын
REALLY looking forward to this: 9:05
@weluvmusicz5 жыл бұрын
There was a demo where he showed a working work in progress on this topic. He compiled to a "nativ" lib.wasm and run it.
@mrdza965 жыл бұрын
Is there source code of this project somewhere?
@sunilk97605 жыл бұрын
why not use flutter (dart) if blazor is approaching the same target as the flutter is doing
@obinnaokafor62525 жыл бұрын
Because C# is an excellent language. However, if you would like to learn and use Dart, go for it. If using Blazor makes .NET developers productive and to target more platforms, that would be great also, as they will not have to learn Dart.
@faheemahmadofficial77015 жыл бұрын
I wish FLUTTER was avaialble on VS 2019
@persoulrpg5 жыл бұрын
Wondering if this is possible to run Electron with Blazor :O
@mrmoinn5 жыл бұрын
watch near the end of the video, there's a surprise for you lol
@persoulrpg5 жыл бұрын
@@mrmoinn hoooooooooolyy shiiiiiiiiiiiiit :) Too bad it's not production ready!! Also is the code available anywhere? Nvm . github.com/SteveSandersonMS/presentation-2019-06-NDCOslo/tree/master/demos/CarBuyer/CarBuyer.Electron
@robertrobert29545 жыл бұрын
Does it mean that Blazor could use XAML?
@weluvmusicz5 жыл бұрын
Yes
@Suriprofz5 жыл бұрын
Great educator
@timur-mut5 жыл бұрын
Spectacular
@icedeocampo5 жыл бұрын
Thanks MS and Steven!!! Goodbye JS - Good riddance. Side note, hopefully any one here can help, in the demo there were items in your code view toolbox? am i missing a plugin?
@THE_NE05 жыл бұрын
Amazing !!!!
@user-ej4dm2xq6q5 жыл бұрын
Very promising.
@marcostaffoli57985 жыл бұрын
Impressive!
@zarangel5 жыл бұрын
Can l use balzor like right now? Got VS19 Community
@DamiBiker5 жыл бұрын
Download the latest dotnet core 3 preview sdk and download blazor templates from vs extensions. maybe you have to download vs2019 preview as well... im not sure about that ;)
@Bourn775 жыл бұрын
You can just enable the setting 'enable preview features' in VS2019 tools menu and use the .net core features
@DanielMlodecki4 жыл бұрын
mind blown
@Hoowwwww5 жыл бұрын
can C# finally add support for DSLs so we can get rid of .razor files and do everything in one language: C#
@weluvmusicz5 жыл бұрын
@Solve Everything Please list at least 6 of them, without spying!
@gorhal196865 жыл бұрын
Goodbye horrible and booooooring javascript libraries/frameworks like angular, react , vue etc. Hello wonderful and lovely blazor
@efreitorhabibulin2385 жыл бұрын
ahhahahaha
@arwahsapi5 жыл бұрын
Bye bye node_modules
@Mfbzai5 жыл бұрын
LMAO
@enkodellc5 жыл бұрын
Great presentation on Blazor Auth and examples. I have been using Blazor for over a month and have a great StarterKit for newbie's to checkout: Blazor Boilerplate github.com/enkodellc/blazorboilerplate