看新闻很累?看技术新闻更累?试试下载 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 服务器,你就可以测试所用的代码。
评论