- 3
- 92 177
stevensandersonuk
Приєднався 5 лип 2012
Experiments with the new WASI workload in .NET 8 Preview 4
.NET 8 adds a new "wasi-experimental" workload, replacing the earlier Wasi.Sdk. This is a step towards giving .NET native, built-in support for server-side WebAssembly scenarios.
This video shows how to get started, then demonstrates how .NET+WASI creates possibilities for new kinds of apps and new ways to use .NET.
This video shows how to get started, then demonstrates how .NET+WASI creates possibilities for new kinds of apps and new ways to use .NET.
Переглядів: 12 273
Відео
DotNetIsolator: an experimental package for running .NET code in an isolated sandbox
Переглядів 19 тис.Рік тому
A quick overview and demo of an experimental new .NET package that can create isolated .NET runtime instances for running code in a sandbox.
Blazor United prototype
Переглядів 61 тис.Рік тому
A quick look at some of the experiments we're considering for Blazor in .NET 8
Brilliant library.
Steve please make this channel live and running, we love and miss your voice, style, and simplicity. please please, we need to listen to you regularly.
That SpreadSheetApp looked pretty cool. Was this project shared or could it be please?
How does the streaming rendering work without JavaScript?
I was to small-brained the first time I saw this to understand it's implications but revisiting again the consequences seem incredible. It's effectively an arbitrary scripting runtime for dotnet, solving a longstanding "issue" where you couldn't easily eval arbitrary C# at runtime without that code having access to the full context of the host application. Being able to leverage this for things like game scripting are huge, and as others pointed out here the ability to tie this into a better hot reloading experience would be incredible.
.NET Runtime runs inside WA? Actually no, Mono is the Runtime, cause MS is not able to port .Net Runtime to iOS, Android or WASM. The biggest tech company in the world still relies on the mono runtime, which was created as an OSS .NET clone by a small number of volunteers three decades ago. And MS would not be able to do their fancy new stuff, without this project. I really wonder, what they did when they’ve written .net core runtime from scratch. If this fancy .net 8 runtime, is so inflexible that it can only be used for half of the final devices. While android, ios, wasm must use the mono runtime.
Blazor United is a game changer. Eager try on my next app
This is AWESOME, i would also love to see the entire "Document" methods on Blazor, killing the JsRuntime and encapsulating it just to the browser methods inside a set of methods. WOULD BE INCREDIBLE.
It would be amazing if we could use WebAssembly mode only when an internet connection isn’t available (to enable offline mode/PWA), but use Server mode otherwise-this way we could get all the benefits of Server when online (like directly access DB, without need for an API) but still get offline capability. I hope if “United” makes it to production, this use case will be supported.
Super👍👍👍
Just to clarify, does this mean you can't use existing Razor pages "as-is" with no modifications?
Please make more videos, weekly would be great. Daily would be amazing..
Wow! you solved my big problem, i have developed an application in blazor web assemlby which has around 10 millions pages, I choosen web assembly bcause blazor server requires more resources to handle millions of concurrent connections, and i have limited server resources, now the main problem with web assembly was SEO, i wanted to index these 10 million pages in google search, which is really a daunting task for me, as pre-rendering and server side rendering needs lots of configuration in WASM. Now that configuration has become very easy in Blazor Web Apps. Great! Blazor Web App Rocks. Thumbsup to Microsoft for making such a great framework, which may kill javascript frame works in future like React, Angular and Node.
Hi... you doing great job... In blazor I have one requirement to connect webpage to client local websocket server other than hosted computer.. I am using blazor server side app.. I need to share webpage data to desktop app wise versa
I'm eagerly anticipating the upcoming releases, as the evolving landscape of WebAssembly, Blazor, and related technologies often leaves me indecisive about the best choice. One of my core requirements is robust support for MySQL and MariaDB databases, as I have several Windows Forms projects that I'm keen to transition to web-oriented platforms. However, these projects currently utilize MySQL and setting up a web user authentication system with this databases has proven to be a significant challenge for me.
this looks great! but how would this work with services that run server-side?
.Net 8 with Blazor newest features will be a game changer for the whole internet even desktop applications. Congratulations and thank you very much for providing it to us!
wow this is crazy
there is any news in dotnet 8 preview for blazor united ?
They Did it! Those Crazy Bastards actually did it!
Hey Steve, great video, thanks. Can I find details about the communication between the client and the server side? It seems, it is hidden completely, but I would still like to understand it. Do I have to connect to the server with websocket, or maybe I also can use the good old rest API? How can I control, which information goes through the network, and lands on the client machine?
This is absolutely the solution to all of the primary problems that Blazor devs need solved. Bravo.
I really like this, except I can't run .NET Wasm on due to the lack of sock_accept. I think this symbol is above and beyond the preview1 spec, is there any documentation on this?
Great guy but can never listen to him for more than 1 minute due to stupid Aussie Accent
You guys are all amazing! Steve Sanderson is fast becoming a living legend (if not already!) Keep up the good work! 👍
Excelent feature. Thanks for share.
Steven, thank you and your team for the great work! Looking forward to the final result. I'm actually going to write my MSc degree work on WASM, WASI topics. Plan is to concentrate on containerization and capabilities of the technologies as Docker-alternative.
🤯
Thanks for sharing the update on WASI. Please can you also share the font you are using as well as how you got your terminal prompt to look the way it is. Thanks
We need this in production!
🤯🤯
Running backend server app in a browser? You're crazy and I love it!!!
I have to know what font you using!
Steve, what about wasm component model support for C#? Seems like a key missing piece.
that’s some awesome stuff!! i hope nobody actually tries that heap migration for real… that sounds like a security nightmare!!
I don’t think the security issue would be as bad as it seems, as there’s a completely isolated wasm heap for each user (same as for client-side wasm). But the size constraints are an issue.
The DotNetIsolator is great. Ive been waiting for years for someone to provide a sandboxing mechanism for plugins. Hopefully that makes it out of preview.
Exactly my thoughts, this is pretty awesome.
I started working on testing it for that kind of stuff
Very cool! :)
incredible!
Get an SM7B like everyone else.
This is very cool!
It is awesome you did this experiment Steve. That last part will get us all thinking about what could be possible....
@stevesandersonuk - What are the challenges of implementing the final example (that starts as Blazor Server then downloads the app and runs it in WASM) in real life?
First thing that comes to my mind - database connection. Yes, your app suddenly works in browser, but if it needs data from db - said db has to be accessible from your computer. And that leads to second thing that immediately popped in my head - app secrets. In order to connect to db or any other external system, app must have some sort of credentials. And if you are motivated enough, you can extract those credentials from wasm that runs on your machine where you can do whatever you want with it. Just these 2 mean that server app that starts running on your machine can't be fully functional and secure at the same time. And in many cases it can't be both.
@@dsvechnikov Thank you for pointing out those key issues. On a case-by-case basis all these can be overcome (I am thinking of perhaps using Local Storage and then syncing the data back to the server on re-connect) but, I could see why Microsoft would not want to try to make a "general solution".
I have watched the universal blazor demos and there Steve showed how the wasm files get downloaded while Blazor server is active. As soon as all wasm files are there the switch is made. Sure your code needs to be prepared for these hybrid flows.
cool again👍
I think the biggest deal is in docker-like containers that don't need a full os running which shrinks the overhead massively. Just abstractions of the specific OS stuff in the container.
What's faster to run, a docker container instance or a wasm process? can docker run in the browser?
@@WayneMunro the idea (and docker already does this with WASI as does Kubernetes) is that you don't have to spin up a host os shim and instead all that is spun up is the abstracted interfaces to the host, and the only thing it knows what to do is run wasi and that's it. In tests, you can spin up a WASI container in a few ms and have it active with 1/3rd the memory overhead of a container running a stripper version of linux that hosts your app. So if you're doing microservices or similar the savings is HUGE.
awesome
I see your notification and I watch quickly❤
Please bring streaming rendering to MVC
The framework looks great. Any chance to see how the development is done on Linux?
I think the future is something similar to this but with a few modifications. Essentially the developer would work like in blazor server but it would mark the code somehow to run on the server or on the client inside the component. However when the page first loads it should run exactly like blazor server until the needed libraries are downloaded in the background to run the client code with webassembly. So at that point client code inside the component would run on the client and server code would run on the server. The communication between the client and server code would be made by signalr like it is now done with jsinterop. At this point if you have no client specific code or no server specific code (meaning all code is either server or client) in your component it would not need the signalr connecction at all. Anyways great job !
You hit it right on the nose. This is exactly the kind of thing our team is looking for, well done!