使用Uno将Windows应用程序放到网络上

目前, WebAssembly非常受关注,它是JavaScript的替代方法,并且是在渐进式Web应用程序和跨平台JavaScript托管框架(例如Electron)中提供更复杂,功能更强大的用户体验的一种方式。 但是它有一个地方会失败:交付类似于桌面的用户界面的空间很小。

微软的实验性Blazor是一种选择,尽管它可与嵌入式Razor C#和ASP.Net的Web控件一起使用,这使得很难在各处运行相同的代码。 在研究WebAssembly和.Net时,我遇到了另一种方法,即以Microsoft的开放源代码工具为基础,并且不仅使用熟悉的Windows开发工具而且使用熟悉的工作方式来定位Web。

[更深入: 如何开始使用WebAssembly WebAssembly的下一步是什么 8个使WebAssembly崭露头角的项目 •那么, WebAssembly的下一步究竟是什么? | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

Uno简介:浏览器中的通用Windows平台

Uno是使用Xamarin进行跨平台应用程序开发的有趣替代方法 。 像Xamarin一样,这是一种使用C#和XAML在任何设备上呈现控件的方式。 与Xamarin不同,它不依赖于在其自己的XAML中重新实现Windows控件来使用本机功能或呈现一组仍需要交付单独的Windows UI的移动优先形式。 相反,它需要熟悉的UWP控件并将其通过WebAssembly传递到浏览器。

Uno由位于蒙特利尔的应用程序开发咨询公司nventive开发,该公司可能以为Flickr等公司构建许多Windows Phone品牌的应用程序而闻名。 Uno积累了在跨平台环境(从Silverlight到Windows Phone,一直到现代UWP应用程序)中使用Windows设计的经验。 该公司已经利用其.Net技能投资建设了Xamarin应用程序,但发现与UWP控件的功能相比,Xamarin形式受到限制。

这导致团队考虑使用另一种方法,该方法可以将WebAssembly用作提供更好的用户体验的桥梁。 使用开源Mono的WebAssembly端口连接WebAssembly运行时并使用UWP控件对其进行验证,构建第一个原型花费了三周的时间。 正如nventive的首席执行官FrançoisTanguay告诉我的那样:“一旦有了网络,它就可以在任何地方运行。” 在客户端项目上证明其基于Mono的WebAssembly运行时后 ,nventive开始与其他开发人员共享, 开放源代码并将其命名为Uno。

Web和桌面的可移植代码

在网络上使用C#和UWP,Uno可以访问丰富的API集,并且可以将UWP控件带入更广泛的平台。 您不需要JavaScript,也不需要丢弃现有的工具。 如果您已经构建了Windows桌面应用程序,则可以将它们快速移动到Uno,可以在任何可以运行WebAssembly的位置运行它们,也可以很快在支持新的Web Assembly System Interface无浏览器运行时的位置运行它们。

这里的一大优势是,您的应用程序的业务逻辑在所有三个平台上都是相同的,并且C#代码在台式机,移动设备和Web上运行。 您为每个平台使用相同的用户界面还有一个额外的好处:UWP的自适应控制设计允许相同的元素在所有三个平台上都可以工作。

在体系结构上,您最好将Uno视为Xamarin的扩展,当为移动设备构建代码时,提供其自己的基于UWP的控件作为Xamarin Forms的替代。 Windows桌面(以及不久之后的任何.Net Core桌面应用程序)将只是标准的UWP代码,并通过Mono使用WebAssembly进行Web。 这意味着您可以在必要时混入本机控件,例如,如果要公开本机文件系统对话框,或者需要访问Android和iOS设备上特定于硬件的功能。

使用Uno在Web上构建UWP

使用Uno构建应用程序相对简单。 您将需要最新版本的Visual Studio 2019(免费的Community Edition将运行),并配置了对UWP,.Net移动应用程序和ASP.Net的工作负载支持。 您可以使用它们来开发和构建代码。 但是,调试可能是一个问题,因为Visual Studio尚不支持WebAssembly调试。 一种替代方法是使用Chrome的实验性WebAssembly调试器 ,该调试器在其DevTools中公开一个.Net调试器。

Uno的Visual Studio工具可从Visual Studio市场购买,并安装了一组解决方案模板,可用于创建新的跨平台应用程序。 您将找到两个新选项:一个用于可在多个项目中使用的库,另一个用于完整的基于XAML的跨平台应用程序。

Uno网站会引导您构建一个简单的UWP应用,该应用可以使用常见的model-view-viewmodel部署为单页Web应用。 它通过Uno.UI NuGet程序包使用Microsoft社区工具包控件,您可以使用标准XAML标记对任何Windows应用程序进行管理和配置。 例如,您将使用XAML定义并设置网格控件的格式,设置行和间距,并使用绑定将XAML链接到在链接的C#中运行的代码。 您不限于可以使用的控件类型,因此可以将网格控件与文本框和滑块一起使用,混合数据绑定和事件以在基础代码中进行处理。

如果您已经构建了UWP应用或.Net早期的任何XAML代码,就会发现使用Uno不需要任何实际的学习过程。 这里没有新内容; 您将以自己的方式构建应用程序。 当然,那是新的旧事物。 您将使用XAML和C#并与Windows或移动设备同时为WebAssembly编译它们。 Uno的Uno.UI具有与UWP相同的名称空间,尽管由于WebAssembly的限制存在一些差异 。 为简化起见,如果有使用Uno的控件的方法,则即使使用其他平台,也应使用它。 网络的解决方法仍然可以在PC或电话上使用。

正如Tanguay所说:“ [与Uno合作,我们不会建立一个新的生态系统,而是通过其开源功能利用现有的生态系统。” 微软对其Windows UI UWP控件库和.Net的开源采购简化了将新控件引入Uno的过程,例如,为新的Windows Terminal开发的UWP选项卡式控件。 Uno,为您的应用做好准备。

当然,这是将Windows开发技能引入新平台的一种有趣方法。 NET的体系结构使其非常适合WebAssembly,并且随着Microsoft的Blazor在Web和服务器上运行以及向基于Chromium的浏览器的转移,我们应该看到WebAssembly调试工具进入了Visual Studio,从而为Uno等新平台提供了支持。他们需要真正的成功的端到端体验。

From: https://www.infoworld.com/article/3397836/put-windows-apps-on-the-web-with-uno.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值