7 ms·
Experimental UI framework running .NET in the browser via WebAssembly
- d--b 9y agoHehehe, and they said eval was evil!
- deleted 9y ago[deleted]
- martinald 9y agoReally interesting. I can see this kind of approach be coming very commonplace.
- deleted 9y ago[deleted]
- lima 9y agoThe thought of it becoming commonplace is somewhat frightening... Really cool though
- MichaelGG 9y agoWhy frightening? This is long overdue - allowing us to use whatever tooling to generate interactive webpages, instead of dealing with JS.
- chmpgne 9y agoI think it’s more frightening the thought of compiling an entire language runtime to run in the browser
- dccoolgai 9y agoFrightening if you're the one who has to debug it.
- Risord 9y agoDo you mean debugging third party closed source code? If not just debug normally like we have done decades (and even in web world few years using these "source maps"). If it cannot be done today it will be then when it's main stream.
- juliangoldsmith 9y agoProbably not, once tooling is in place. Running an implementation of the .NET platform would make it possible to attach standard .NET tools to the application running in the browser. (Once it was implemented in the .NET interpreter, of course.) That would give you a much nicer debugging environment than you'd normally get in a JavaScript application.
- kuschku 9y agoBecause it makes it even harder for users to take apart websites and understand them.
- deleted 9y ago[deleted]
- perfectphase 9y agoIf it ends up executing IL, then tools like Reflector will probably make it easier to read and explore the code than minified JS
- kuschku 9y agoI’m sorry, but have you actually written tools to take apart obfuscated and minified JS vs. webasm? I’ve actually done that to research and break some systems, and webasm is an order of magnitude worse than JS.
- perfectphase 9y agoMy understanding was that, at least for this example, is that the DNA runtime is loading raw IL, not webasm, and the interesting site specific stuff will be in IL. I do not doubt what you're saying about webasm.
- kuschku 9y agoThat’s until someone, like Microsoft, makes a serious version of this, and integrates automated obfuscation.
- TomMarius 9y agoWhat's bad about that? The owners have every right to not disclose their source code.
- kuschku 9y ago
- the8472 9y agodesktop application: the software is on your PC, the files are on your PC, you can use it forever, move it around and at least here in the EU your right to reverse-engineer it for compatibility is guaranteed web application: cloud-service, eternally rented, may go out of service at any time (this has already been an an issue, remember zune drm?), does not interoperate with the native environment at all. you can't even read/write to files! p2p networks are impossible in browsers, everything is centralized. People think that the "run applications in the browser" will bring us cross-platform goodness, but I think it will mostly make is more dependent on the ecosystem of cloud providers and lead to more vendor lockin since it is more difficult to get your stuff out of those silos. And the indirect effect of marginalizing desktop applications ultimately means less control for the user. This is easily visible in the mobile sector but is slowly encroaching on the desktop too.
- deleted 9y ago[deleted]
- cm2187 9y agoI'd argue the contrary. You have more control on a webapp than on a native app on iOS. You can create your own web application without having to pay a toll to Apple.
- the8472 9y ago> This is easily visible in the mobile sector
- themacguffinman 9y ago> desktop application: the software is on your PC, the files are on your PC, you can use it forever Not really, creative DRM is common in desktop applications. > does not interoperate with the native environment at all. you can't even read/write to files Not true with new web APIs that expose traditionally native functionality like Bluetooth and the FileSystem. > cloud-service, eternally rented, may go out of service at any time Lots of web apps are being built for offline usage with new offline-oriented web APIs. Web apps can also be packaged as offline Chrome Apps or "native" apps with Electron. > p2p networks are impossible in browsers, everything is centralized Not true, WebRTC was designed to address this and is already supported in all major browsers.
- Ajedi32 9y agoRemember back when some sites used to do their entire UI in flash, completely ignoring standard UI conventions of the web, breaking the back button and deep linking, hijacking the scrollbar and making printing an entire page impossible? Let's not go back to that please.
- MichaelGG 9y agoWhat's that got to do with replacing JS? These platforms will not render their own graphics via canvas, for the most part, but just interface with the browser APIs. They're just to ditch the JS language, not browser tech/UI.
- shaydoc 9y agoReally cool idea, and from the author of knockout.js no less! You can just see how this could become a mainstream approach
- simooooo 9y agoSteve has always been years ahead of the game
- mandeepj 9y agoRelevant talk with author - http://www.dotnetrocks.com/?show=1455 http://www.dotnetrocks.com/?show=1455
- mandeepj 9y agoSome more related links to .net micro fw - http://mattwarren.org/2017/03/30/The-.NET-IL-Interpreter/ http://mattwarren.org/2017/03/30/The-.NET-IL-Interpreter/ https://github.com/NETMF/llilum https://github.com/NETMF/llilum http://www.netmf.com http://www.netmf.com
- pier25 9y agoNothing will stop Adobe from bringing Flash back from the grave via Web Assembly.
- spankalee 9y agoAnd this will actually be a good thing to preserve old flash content, but more securely.
- Ajedi32 9y agoThat'd be fine as long as people only use it for _old_ flash content. The minute people start using it to render their website UI though, then we've got a problem.
- pier25 9y agoIt's going to happen. Many (most?) designers will avoid code like the plague and stick to visual tools like Flash.
- pjmlp 9y agoDue to the iPhone restrictions, Adobe worked on adding AOT compilation to native code, so nowadays many casual games are actually still done in Flash. http://www.adobe.com/products/flash-builder/features.html http://www.adobe.com/products/flash-builder/features.html
- emersonrsantos 9y agoHello applet my old friend
- deleted 9y ago[deleted]
- deleted 9y ago[deleted]
- dragonshed 9y ago> Blazor runs .NET code in the browser via a small, portable .NET runtime called DotNetAnywhere (DNA) compiled to WebAssembly Very ambitious for a side project. DotNetAnywhere is a 5 y/o interpreter project which needed a lot of love to build to WebAssembly. On top of that add the multiple layers needed for a competitive UI framework.. [edit] Link to an isolated DNA project fork: https://github.com/ncave/DotNetAnywhere/commit/982238dd3c334c80a88ec9623d16b763fe278e73 https://github.com/ncave/DotNetAnywhere/commit/982238dd3c334...
- macsloppy 9y agoFlash, Java applets, ActiveX - here we go again
- deleted 9y ago[deleted]
- slathrop 9y agoSteve and a few others have done a little work recently on DotNetAnywhere (DNA) under this branch: https://github.com/ncave/DotNetAnywhere/commits/latest https://github.com/ncave/DotNetAnywhere/commits/latest But aside from these recent tweaks, the code hadn't been touched for about 5 years. It's just a toy and POC for now, but interesting nonetheless. JavaScript won't be unseated as the go-to language for web development and web frameworks by WASM, C#, Java, Python, Go, or anything else... at least not in the next decade. But certainly high-performance pieces will be dropped-in via WASM to interop with JS for things like image manipulation, etc.
- soapdog 9y agoCouldn't get it to work under VS 2017. Tried both the 0.2.0 release from the GH repo and also cloning and opening the master branch... I really want to see this working, anyone managed to try it out? Can share how?
- viliescu 9y agoFor me, creating and running a project with the released VSIX (0.2.0) works fine. I was not able to build the project itself locally. And I wanted to understand the technology a little better, so I created a simpler version, no Razor involved, just plain C#: https://github.com/valentiniliescu/CSharpWeb https://github.com/valentiniliescu/CSharpWeb
- bedane 9y agosame here install log: 05/07/2017 14:16:10 - System.IO.FileNotFoundException: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\ at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName) at VSIXInstaller.SupportedVSSKU.get_VersionWithBuildRevisionInfo() at VSIXInstaller.App.IsValidSKUForExtension(SupportedVSSKU supportedSKU, IExtension extension, List`1 validSKUs) at VSIXInstaller.App.ShouldAddSkuToValidSkuList(SupportedVSSKU sku, IInstallableExtension extension, List`1 validSKUs) at VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable`1& skuData) at VSIXInstaller.App.Initialize(Boolean isRepairSupported) at VSIXInstaller.App.Initialize() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute()
- yodon 9y agoHow does this framework handle Garbage Collection? (WebAssembly has GC support planned for the future but doesn't have it in place yet[0]) [0] https://github.com/WebAssembly/design/blob/master/GC.md https://github.com/WebAssembly/design/blob/master/GC.md
- flukus 9y agoI'm guessing it will download a runtime that will include the garbage collector. Soon you can look forward to every page including a runtime, or maybe several depending on which advertising engines they're using.
- yodon 9y agoThe problem is there's been a ton of work on chained garbage collectors, and the frustrating and seemingly non-intuitive result that everyone eventually hits is that you have to collapse down to a single garbage collector to get garbage collection to work reliable. There are just too many edge cases when you have, say, a native browser garbage collector and a separate application garbage collector, with references held between them. That's why mainstream support for C# -> WebAssembly is on hold until WebAssembly exposes native garbage collection support.
- camus2 9y agoHow about a single live example? surely one could be uploaded on github pages...
- cholantesh 9y agoDotNetRocks mentions a talk in which Steve demoed the concept but it is absent from the NDC site and Youtube.