.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.