Convert WebAssembly Blazor to a Hosted one

岁酱吖の 提交于 2020-03-25 19:22:04

问题


I'm testing out Blazor.net but immediately fell short on the lack of debugging in WebAssembly (.net Core 3.1).

Is there a fast & easy way to reconfigure my WebAssembly app to a hosted app, so that I can debug the .net code as I develop my samples?


回答1:


I just watched this video and it shows a nice trick:

  • Add 2 projects to your solution, ServerApp and WasmApp.
  • in your ServerApp, add a reference to WasmApp
  • in ServerApp._Host.cshtml , change this line to use WasmApp.App:

    <component type="typeof(WasmApp.App)" render-mode="ServerPrerendered" />

  • now remove all .razor files and the resulting dead code from the ServerApp project.

You can now develop all blazor pages in the WasmApp and also run them with the ServerApp. The only duplication is in maintaining _Host.cshtml and index.html in parallel when you add css or js files.

And the vid als showed an additional feature to show what is running:

@using System.Runtime.InteropServices

<p>Env: @Environment</p>

@code{
  string Environment = RuntimeInformation.IsOSPlatform(OSPlatform.Create("WEBASSEMBLY")) 
  ? "WebAssembly" 
  : "Server";

}

put this on you main page or NavMenu or something.



来源:https://stackoverflow.com/questions/60147458/convert-webassembly-blazor-to-a-hosted-one

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!