---
title: Develop Uno Platform projects on Linux with Visual Studio
description: Uno Platform now has support for creating Linux applications. Read about
  what this means and the demo application we have built with Uno.
url: https://canonical.com/blog/develop-uno-platform-projects-on-linux-with-visual-studio?format=md
---

1. [Blog](https://canonical.com/blog)
2. Article

---

[Rhys Davies](https://canonical.com/blog/author/rhys-davies "More about Rhys Davies")

13 August 2020

# Develop Uno Platform projects on Linux with Visual Studio

[Appliances](https://canonical.com/blog/tag/appliances)
[snapcraft.io](https://canonical.com/blog/tag/snapcraft-io)
[Snaps](https://canonical.com/blog/tag/snaps)
[uno platform](https://canonical.com/blog/tag/uno-platform)
[unoconf](https://canonical.com/blog/tag/unoconf)

---

Share the article

Uno Platform is bringing their support to Linux. Uno allows you to build native mobile, desktop, and WebAssembly apps with C# and XAML from a single code base. You can build Linux applications with Uno using Visual Studio and Ubuntu on WSL. In collaboration with Uno, we built a mock-up snap that measures and adjusts the speed of an IoT device to demonstrate what you can do. You can see Uno’s commentary over [in their announcement.](https://platform.uno/blog/announncing-uno-platform-3-0-linux-support-fluent-material-and-more/) Or in the **video** at the end of this article.

## Develop with Uno on Ubuntu

Maintaining separate code bases for each platform requires a lot of time and work. Building for each platform (Windows, Android, macOS or Ubuntu) and then committing to support and maintain your application makes true cross-platform development daunting. Issues such as feature disparity, incompatibilities, and duplication of work can become common practice.

Uno presents a solution. You can build your C# and XAML codebase with Uno to make it more portable. Using WebAssembly, Uno dynamically adjusts your application to look and feel the way it should regardless of the operating system. All you need is to maintain that one codebase

Support for building Linux applications on Visual Studio is [powered by Ubuntu on WSL](https://platform.uno/blog/how-to-build-webassembly-c-apps-with-the-mono-aot-and-windows-subsystem-for-linux/) and the open source Mono AOT-wasm project. Uno also supports [WASM development](https://platform.uno/blog/announcing-uno-platform-support-for-visual-studio-code/) in [Code](https://snapcraft.io/code). On Linux, Uno platform projects use the Skia rendering engine to draw graphical elements. Uno applications then integrate into the Ubuntu desktop with a GTK shell. And it’s all open source, built on the [Mono Project](https://www.mono-project.com/).

## Deploy Uno with snaps

Once you have your application, support and maintenance become a challenge. And, if like our [demo application](https://snapcraft.io/uno-platform-iot-sample-app), your application is for IoT devices, support and maintenance are key factors for security. Users of your apps or your devices should be able to trust the developers to keep applications up-to-date and patched.

Enter, snaps. On Ubuntu, or any major Linux distro, you can use snaps to keep your Uno Platform projects patched and up to date automatically and remotely. You can model a release strategy to fit your project or device needs using [snap channels](https://snapcraft.io/docs/channels). A brave user could follow your bleeding-edge channel, while others live on a stable channel, or subscribe to a special channel in-between.

## Build Uno IoT appliances

Once you have your application running on all OSs and it’s easy to support, what’s next? With your Uno Platform project published as a snap, you can deploy to workstations or servers without issue. And, you can go one step further and create an Ubuntu Core-based appliance.

Uno and snaps both run on x86 and ARM so developers can target and test IoT applications on [Raspberry Pi](http://raspberrypi.org). The [Uno Platform IoT demo](https://snapcraft.io/uno-platform-iot-sample-app) is one example, it works on armhf and amd64. As a strictly confined snap, it can easily be made into a production-ready device using Ubuntu Core;  a minimal, containerised version of Ubuntu that is entirely made of snaps for security and the same updatability you have in your application.

Developing Uno projects with snaps also gives you access to other tools and features that exist in other [Ubuntu Appliances](https://ubuntu.com/appliance/about). For example, our demo snap uses [Mir](https://mir-server.io/) for well-defined window management and display for your Uno Platform application.

**The application mocks a scenario of an IoT device measuring and adjusting the speed of an industrial piece of equipment.**

## What’s next?

If you’re not already familiar with Uno Platform, we recommend you read [their announcement too.](https://platform.uno/blog/announncing-uno-platform-3-0-linux-support-fluent-material-and-more/) Browse [their site](https://platform.uno/) and check out [our demo snap](https://snapcraft.io/uno-platform-iot-sample-app). Bear in mind it is a simple demo to show what’s possible, we’d love to see other Uno projects utilise the benefits of snaps in the future.

If you’re interested in what else you can do with Ubuntu Core and snaps, or want to build an Uno project for the Raspberry Pi, there are a few places you can go. You can read up on [building snaps](https://snapcraft.io/docs/creating-a-snap), learn how to [build your own Ubuntu Core image,](https://snapcraft.io/tutorials/create-your-own-core-image#1-overview) to distribute your software, or get involved with [Ubuntu Appliances](http://ubuntu.com/appliance). [Talk to us about your application](https://discourse.ubuntu.com/c/appliance) and we can help you snap it up, publish it, and find new users.

[Get in touch

Interested in running Ubuntu in your organization?](https://ubuntu.com/about/contact-us/form)

## Sign up for our newsletter

Get the latest Canonical news and updates in your inbox.

Work email:

\*I agree to receive information about Canonical's
products and services.

By submitting this form, I confirm that I have read and agree to [Canonical's Privacy Policy](https://canonical.com/legal/dataprivacy).

Sign up

## Share on

---

## Related posts

[### Managing software in complex network environments: the Snap Store Proxy](https://canonical.com/blog/managing-software-snap-store-proxy)

As enterprises grapple with the evolving landscape of security threats, the need to safeguard internal networks from the broader internet is increasingly important. In...

[Holly Hall](https://canonical.com/blog/author/hollyhall)

15 January 2024

[### Improving snap maintenance with automation](https://canonical.com/blog/improving-snap-maintenance-with-automation)

Co-written with Sergio Costas Rodríguez. As the number of snaps increases, the need for automation grows. Any automation to help us maintain a group of snaps is welcome and...

[Heather Ellsworth](https://canonical.com/blog/author/hellsworth)

27 June 2023

[### Snapcraft 8.0 and the respectable end of core18](https://canonical.com/blog/snapcraft-8-0-and-the-respectable-end-of-core18)

‘E’s not pinin’! ‘E’s passed on! This base is no more! He has ceased to be! ‘E’s expired and gone to meet ‘is maker! ‘E’s a stiff! Bereft of life, ‘e rests in peace! If you...

[Igor Ljubuncic](https://canonical.com/blog/author/igorljubuncic)

16 June 2023

[### TurtleBot3 OpenCR firmware update from a snap](https://canonical.com/blog/turtlebot3-opencr-firmware-update-from-a-snap)

The TurtleBot3 robot is a standard platform robot in the ROS community, and it’s a reference that Canonical knows well, since we’ve used it in our tutorials. As a matter of...

[gbeuzeboc](https://canonical.com/blog/author/gbeuzeboc)

25 September 2024
