在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于Web和移动应用。由于Microsoft未来Windows平台的计划未定,并且UWP应用也没有突破性进展,因此技术落伍的责任也不应由.NET开发人员来承担。当前迫切需要解决的挑战,是提供一种可运用这些开发人员在C#上知识积累的新方式。
这正是近期一些在浏览器上使用C#的工作吸引关注之处。今年早期,Microsoft宣布他们对Blazor的支持。最近,Frank A. Krueger宣布开发完成Ooui软件库。Ooui支持将C#或F#用于编写可运行在浏览器中的应用。Ooui支持以WASM为编译目标,这样应用就可以部署到WebAssemly中,无需应用服务器即可完全运行在浏览器中。
据Krueger介绍,WASM并非唯一受支持的平台,其它可用的编译目标还包括使用ASP.NET Core的Web DOM、WebAssembly以及Ooui内建的Web服务器。技术的底层工作机制如下:对于WebAssembly项目,所有的Web浏览器与应用间通信发生在进程内。对于其它项目,则使用WebSockets进行“浏览器-应用”间通信,以保持UI和应用状态的同步。
Krueger还给出了一些概念验证演示,有效地展示了上述理念。其中包括一个基本的XAML编辑器,演示了如何实现浏览器内的XAML编辑,并实时显示更改情况。此外,演示中还提供了一组样例代码,展示了和基本Web控件的使用。
上手Ooui开发非常简单。你首先需要在.NET Core中新建一个Console应用,并将引用添加到和中。然后使用通常使用的dotnet去构建应用,就可以部署应用了。进而,通过使用,或是将目录中的文件拷贝到任何一种可提供静态文件的Web服务器,你就可以测试所用的代码。
领取专属 10元无门槛券
私享最新 技术干货