Ooui:在浏览器中运行.NET 应用

  • Jeff Martin
  • 盖磊

2018 年 4 月 23 日

话题:.NET语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于 Web 和移动应用。由于 Microsoft 未来 Windows 平台的计划未定,并且 UWP 应用也没有突破性进展,因此技术落伍的责任也不应由.NET 开发人员来承担。当前迫切需要解决的挑战,是提供一种可运用这些开发人员在 C# 上知识积累的新方式。

这正是近期一些在浏览器上使用 C# 的工作吸引关注之处。今年早期,Microsoft 宣布他们对Blazor的支持。最近,Frank A. Krueger 宣布开发完成 Ooui 软件库。Ooui 支持将 C# 或 F# 用于编写可运行在浏览器中的应用。Ooui 支持以WASM为编译目标,这样Xamarin.Forms应用就可以部署到 WebAssemly 中,无需应用服务器即可完全运行在浏览器中。

据 Krueger 介绍,WASM 并非唯一受支持的平台,其它可用的编译目标还包括使用 ASP.NET Core 的 Web DOM、WebAssembly 以及 Ooui 内建的 Web 服务器。技术的底层工作机制如下:对于 WebAssembly 项目,所有的 Web 浏览器与应用间通信发生在进程内。对于其它项目,则使用 WebSockets 进行“浏览器 - 应用”间通信,以保持 UI 和应用状态的同步。

Krueger 还给出了一些概念验证演示,有效地展示了上述理念。其中包括一个基本的XAML 编辑器,演示了如何实现浏览器内的 XAML 编辑,并实时显示更改情况。此外,演示中还提供了一组样例代码,展示了Xamarin.Forms和基本 Web 控件的使用。

上手 Ooui 开发非常简单。你首先需要在.NET Core 中新建一个 Console 应用,并添加对 Ooui.Wasm 和 Ooui.Forms 的引用。然后使用通常使用的 dotnet 去构建应用,就可以部署应用了。进而,通过使用dotnet-server,或是将dist目录中的文件拷贝到任何一种可提供静态文件的 Web 服务器,你就可以测试所用的代码。

查看英文原文: Running .NET in the Browser with Ooui

.NET语言 & 开发