dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.91k stars 4.63k forks source link

Can you please make .NET BLAZOR integrating with c++ webassembly easier? #49959

Open vsfeedback opened 3 years ago

vsfeedback commented 3 years ago

This issue has been moved from a ticket on Developer Community.


let me easily start writing logic in c++, you can figure out the rest of the stuff. suggestion : use existing tool chains like llvm/emscripten to compile it to webassembly modules and start using it with intelisense from c# codes in visual studio.


Original Comments

Feedback Bot on 3/11/2021, 00:45 AM:

Thank you for taking the time to provide your suggestion. We will do some preliminary checks to make sure we can proceed further. We'll provide an update once the issue has been triaged by the product team.

javiercn commented 3 years ago

Thanks for contacting us.

This would be a feature for the runtime team to consider. Moving it there for them to evaluate the ask.

dotnet-issue-labeler[bot] commented 3 years ago

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

lewing commented 3 years ago

This is largely covered by https://github.com/dotnet/runtime/issues/44636

ghost commented 3 years ago

Tagging subscribers to 'arch-wasm': @lewing See info in area-owners.md if you want to be subscribed.

Issue Details
_This issue has been moved from [a ticket on Developer Community](https://developercommunity.visualstudio.com/t/Can-you-please-make-NET-BLAZOR-integrat/1366735)._ --- let me easily start writing logic in c++, you can figure out the rest of the stuff. suggestion : use existing tool chains like llvm/emscripten to compile it to webassembly modules and start using it with intelisense from c# codes in visual studio. --- ### Original Comments #### Feedback Bot on 3/11/2021, 00:45 AM: Thank you for taking the time to provide your suggestion. We will do some preliminary checks to make sure we can proceed further. We'll provide an update once the issue has been triaged by the product team.
Author: vsfeedback
Assignees: -
Labels: `arch-wasm`, `area-VM-coreclr`
Milestone: Future
Xyncgas commented 8 months ago

To elaborate, we can consider bringing the C/C++ environment closer to .NET

Specifically the ability for consuming C/C++ code in blazor project easily by targeting C/C++ projects to blazor The C/C++ projects targeting blazor can access browser interops (interacting with dom directly in C/C++ projects, the environment can be initialized by dependency injection later on in the actual blazor project consuming these C/C++ projects)

The C/C++ projects targeting blazor, through careful engineering, can ideally be consumed in blazor directly with intellisense.

  1. (Possible because .NET running in JIT running in webassembly, C/C++ is compiled to wasm modules for us to load and run)
  2. (Write a function inside C++, you can see intellisense giving you the proper function name and signature for you to use in blazor)

let C/C++ be capable of dynamically running webassembly (string format / binary), let .NET be capable of too. Use the browser's webassembly to achieve it

It's a feature that's important as blazor's oppertunity for becoming the all-interfacing all-purpose app engine for writing all-platform business applications

I understand we can compile C/C++ to dll and use dll in .NET, but I am hoping to bring webassembly in the game, let C/C++ compile directly to webassembly, and .NET will help developers use C/C++ functions as if there is no barrier, then later on the two will see each other in webassembly and .NET use the native-compiled wasm modules to run the native code

Eventually we can use webassembly even when there is no browser by bundling its runtime, for example we can replace MAUI with Blazor for our next generation application framework. Developers would be using blazor + native codes to build an unified UI experience, and if they require platform specific, they can use native codes to access them if the app is targeting those platform (multi-targeting is possible, we can do it a lot of ways, for people to use native features on IOS/Android/etc)

@javiercn @lewing

If there is a path for Microsoft .NET to be the framework for building all UI-heavy applications, [Browser-UI] + [Any Programming Language] glued together by [.NET] utilizing [Webassembly] seems to be the one

Stage is presented, Microsoft's name will be remembered. .NET doesn't have to be the one to do this, the liability is minimal later on. All it had to offered was the C#/F# language and existing codes. All the other programming language's developers can improve the experience of this platform by demanding solutions within their own communities, Microsoft .NET is not alone and would be a part of this experience like everyone else.

Imagine a tomorrow you wanted to display a dialog box for login, Kotlin community already built a library for drawing such a dialog box, you decide where to put it in blazor, meanwhile hashing the password using a library from ALGOL 60, in VisualStudio, where meets productivity

Xyncgas commented 8 months ago

This is largely covered by #44636

Let native development integrate with blazor to build the application of our diverse community.