在Linux上使用Visual Studio开发Uno Platform项目

by liam zheng on 18 August 2020

Uno平台正在支持Linux。Uno允许你从单一代码库使用C#和XAML构建原生的移动,桌面和WebAssembly应用。你可以在WSL上的Ubuntu使用Uno和Visual Studio(VS)来构建Linux应用。与Uno的协作,我们构建了示例snap应用来演示在IoT设备上监测和调节速度。请参考Uno的声明。或者观看文末的视频。


在Ubuntu上使用Uno做开发

为每个平台维护独立的代码库需要大量的时间和工作。为每个平台(Windows,Android,macOS或Ubuntu)构建应用,然后承诺支持和维护使得跨平台开发的艰巨任务。例如功能差异,不兼容和重复工作等问题可能成为常见的做法。

Uno展示了一个解决方案。你可以使用Uno构建C#和XAML代码库,以使其可方便移植。使用WebAssembly,Uno动态地调节你的应用外观和与系统更匹配。你所需要的只是维护一个代码库。

在Visual Studio上构建Linux应用程序的支持由WSL上的Ubuntu和开源的Mono AOT-wasm项目提供支持。Uno也支持在VS code上WASM开发。在Linux上,Uno平台项目使用Skia渲染引擎和绘制图形元素。Uno应用程序与GTK Shell整合至Ubuntu桌面,全部都是开源软件,在Mono项目上构建。

用snap应用来部署Uno

一旦你有了应用程序,支持和维护将成为一个挑战。就像我们的demo应用,你的IoT设备应用,支持和维护将是安全的关键因素。应用程序或设备的用户应该能够信任开发人员,以使应用程序保持最新和有补丁可用。

不管在Ubuntu还是其他主流发行版上的Snap应用,你都能使用和保持Uno平台项目自动远程地更新和打补丁。你也可以塑造一个发布策略来满足项目或设备需要使用的snap通道。在其他用户使用稳定版时,大胆的用户可以使用你的dege(边缘)版,或者订阅一个鉴于2者的一个中间版本。

构建Uno IoT应用 

当你的应用程序在所有操作系统上运行并且易于支持,下一步该怎么办呢?随着你的Uno 平台项目迅速发布,你可以无忧地部署到工作站或服务器。同时,你可以更进一步创建一个基于Ubuntu Core的产品。

Uno和snap2者都可在X86和ARM上运行。因此,开发者可以树莓派为目标,测试IoT应用。Uno平台IoT demo就是一个例子,它可在armhf和amd64上工作。作为一个严格限制的snap,它可使用Ubuntu Core来轻松的部署到生产环境设备上。Ubuntu Core时一个最小,容器化版的Ubuntu。为了安全,其完全由snap应用构成,也拥有和你的应用一样的更新能力。

用Uno和snap来开发项目也给与你访问其他工具和其他现有的Ubuntu Appliances特性。例如,我们的演示版snap用到了Mir来做窗口管理和显示你的Uno平台应用。

下一步

如果你不熟悉Uno平台,我们推荐你阅读Uno Platform的公告。浏览他们的网站和体验我们的演示snap。需要注意的是这是一个简单的演示,展示了可能的情况,我们很高兴看到其他Uno项目在将来能充分利用snap的好处。

如你对Ubuntu Core和snap开发感兴趣,或者在树莓派上构建Uno项目。我们推荐你阅读以下内容:

或者与我们交流你的应用,我们可以帮助你发布,并且你也可以找到其他和你一样的开发者。

点击此处阅读原文

订阅博客文章

选择您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

Ubuntu Tech Live第二期:Ubuntu Core 20新版本抢先新体验

Ubuntu Tech Live是全新一档由Ubuntu / Canonical官方开设,并专为开发者和企业所设计的栏目。活动以视频直播的方式向大家介绍Ubuntu最新的技术和产品。 设置有问答环节,Canonical专家现场为您解答相关问题。同时,也将不定期邀请合作伙伴、业内专家分享相关有趣的主题。 直播时间:2020年9月25日12点15分至13点15分 您将了解到: Canonical与Ubuntu最新产品技术资讯 Ubuntu Core 20新特性介绍 观看视频直播就有机会获取Ubuntu官方纪念T恤。 前往注册 […]

Snap应用开发体验的协作与聆听

“你需要帮助吗?”是热情的开发者在开源项目中经常会说的话。 组成Snap生态系统的活动部件很多。这意味着有很多地方可以参与其中! 寻找开始的地方可能会令人生畏,但我们在这里示意您如何开始。无论您的技术水平和时间如何,我们都可以确保为发烧友留下深刻印象的机会。 Snap应用 让我们从snap本身开始。一般来说,用户关系对日常使用的软件的关心要多于构建软件的工具或托管的服务器。火狐浏览器的用户关心应用的使用体验,VLC的用户关心多媒体播放或视频捕获功能。 给这些snap应用开发者提供反馈是使其变得更好的且非常重要的一步。许多snap开发者通常会在Snap商店预发布测试版到测试通道。例如,火狐和VLC在测试通道都有更新可能不太稳定的版本。 $ snap info firefox […]

解开Kubeflow管道的神秘面纱第一部分:Kubernetes上的数据科学工作流程

Kubeflow管道(Pipeline)是构建可移植、可扩展的机器学习工作流程最好的方式,也是更大的Kubeflow生态的一部分,旨在减少大规模训练和部署机器学习模型的复杂性和时间。 在这个系列的博客文章中,我们将介绍Kubeflow pipelines和展示了这种方法来产生可重用和可再现的数据科学。 🚀 我们将探讨为什么Kubeflow为数据科学工作流程带来了正确的标准化,然后说明了如何通过Kubeflow管道实现这一目标。 在第二部分种,我们将开始上手实践。我们也会利用Fashion MNIST数据集和基础Tensorflow示例,采用逐步方法将示例模型转换为Kubeflow管道,以便你可以执行此操作。 为什么要用Kubeflow 机器学习工作流程可能涉及许多步骤,并 […]