Discovering snaps with .NET and Microsoft

.NET Core, run by the .NET Foundation and Microsoft,  is a free, cross-platform platform that supports building and running the next generation of web services, microservices and apps. By its very nature, it is an open source platform which supports cross-platform development. Lee Coward and Rakesh Singh at Microsoft are working on the project and have just started to discover snaps as a new tool. As they start their discovery and use of snaps, they told us about their initial impressions and learnings to date.

How did you find out about snaps?

We contacted Patricia at Canonical to learn about deployment options and she introduced us to Sergio Schvezov. From that introduction, we started learning about snaps as a concept. We decided to attend the recent Ubuntu Rally to learn more. We have already started building Hello World as a snap and are looking to create snaps for the .NET Core runtime and SDK.

How does building snaps compare to other forms of packaging you produce? How easy was it to integrate with your existing infrastructure and process?

We definitely find it easier as it is yaml based and provides details of what artifacts are needed. Debian packaging has things that need to be followed which can be distribution specific, which creates complication. We had briefly read up on Flatpak but didn’t pursue. To date all containerization has been in Docker for us. The modular containments is what appealed about snaps and we see that it will be a lot more flexible. Starting with snaps is easy and the resources that are provided are clean and structured which aids adoption.

Do you currently use the snap store as a way of distributing your software? How do you see the store changing the way users find and install your software?

Using the snap store will definitely be a goal for us. Our software is already in some of the other distros plus we have our own website. However, the option of adding it to another store will enhance discovery and be a venue to help early adoption. Being distro agnostic is a big benefit in our eyes.

What are your expectations on savings by using snaps instead of having to package for other distros?

We see the benefits more for our users. There won’t be obvious internal resource savings for us as we will still be maintaining assets for other package managers. However, the user education should be simpler from our side. Snaps and the store will provide further reach and a uniformed manner in which to acquire .NET Core. We hope to see a more broadened acquisition as a result.

What release channels (edge/beta/candidate/stable) in the store are you using or plan to use, if any?

Once we get a bit further down the line, we envisage using all channels that are available. At the very least, we would be looking to use edge, candidate and stable.

How do you think packaging .NET as a snap helps your users? Did you get any feedback from them?

It’s a little too early to talk about user feedback at the moment. However, Microsoft management is very interested in pursuing our snaps journey further with .NET Core.

ubuntu logo

What’s the risk of unsolved vulnerabilities in Docker images?

Recent surveys found that many popular containers had known vulnerabilities. Container images provenance is critical for a secure software supply chain in production. Benefit from Canonical’s security expertise with the LTS Docker images portfolio, a curated set of application images, free of vulnerabilities, with a 24/7 commitment.

Integrate with hardened LTS images ›

Newsletter signup

Select topics you're
interested in

In submitting this form, I confirm that I have read and agree to Canonical's Privacy Notice and Privacy Policy.

Related posts

How’s my snap faring on different distributions?

The life of an application can roughly be divided into two: everything that happens before it goes live – building, packaging, publication – and then,...

What has snapd ever done for other distros?

Snaps are self-contained applications designed with ease of use, security and portability in mind. They bundle their necessary dependencies, so they can work...

The magic behind snap interfaces

Snaps are confined, self-contained applications, designed with portability and security in mind. By default, strictly confined snaps run in isolation, with...