Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to embed a Blazor component in a non .NET website?

Tags:

blazor

We would like to develop a client-side Blazor component for one of our clients to embed on a page in their website. The website is written with Drupal, but really my question refers to integrating Blazor into any non-ASP.NET website.

This image from https://www.nativoplus.studio/blog/blazor-introduction/ seems to suggest that this should be possible as none of the runtime parts are relying on a .NET host:

Blazor architecture diagram showing dev time and runtime elements

As I understand it, a client-side Blazor component is run using a combination of WASM and JavaScript for interop so it seems like it should be possible to embed a Blazor component on any website, not just one written with .NET?

(Possibly Mono.wasm might also need to be also present, I'm not sure if that's only used for compiling our C# client-app to wasm, or if that's needed when running the app too?)

Is this theoretically possible, or am I missing something obvious that makes that a non-starter?

If so, could anyone give an example of what files we would need to tell our client's website company to add to the site and where those files should be located?

like image 255
tomRedox Avatar asked Jul 30 '19 14:07

tomRedox


2 Answers

Yes. This is possible. Once you publish client-side Blazor application using dotnet publish resulting files can be served from any static file hosting. For example you could serve the results using http-server . from the folder where results are published.

To control appearance where Blazor application would be visible in the final HTML application, you can augment index.html as you see fit. <app> tag would be replaced by Blazor application.

like image 109
codevision Avatar answered Jan 02 '23 07:01

codevision


Should be possible. From here: https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-3.0:

An ASP.NET Core web server isn't required to host the app. Serverless deployment scenarios are possible (for example, serving the app from a CDN).

If I publish a client-side Blazor project within Visual Studio to the file system then I get the index.html, css folder and a _framework folder containing the js and wasm files.

I guess it should be possible to serve those from wherever, but not tried it.

like image 31
robaker Avatar answered Jan 02 '23 05:01

robaker