Microsoft’s experimental Blazor is one option, although it works with embedded Razor C# and ASP.Net’s web controls, making it hard to have the same code running everywhere. In looking at WebAssembly and .Net I came across another approach, building on Microsoft’s open source tools and targeting the web with not only familiar Windows development tools but also familiar ways of working.
Introducing Uno: Universal Windows Platform in the browser
. Like Xamarin it’s a way of using C# and XAML to render controls on any device. Unlike Xamarin it doesn’t rely on reimplementing Windows controls in its own XAML, to either use native features or to render a set of mobile-first forms that still require delivering a separate Windows UI. Instead it takes familiar UWP controls and delivers them to a browser via WebAssembly.