Modern Strategies for Application Deployment: A Comprehensive Overview
Explore the evolution of deployment processes from historical challenges to modern complexities in a tech-packed session by Geoff Callaghan. Learn about standard Visual Studio deployment, single file applications, ClickOnce, and MSIX technologies, along with the shift towards self-contained and framework-dependent deployment models. Gain insights into the blurred boundaries between development and operations, as well as the impact of modern problems like mobile devices, security considerations, and high user expectations.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Desktop Installations Geoff Callaghan Senior Developer and Project Manager CODE Consulting https://www.codemag.com/People/Bio/Geoff.Callaghan CODE Training - codemag.com/training
About the Presenter Geoff Callaghan Senior Software Developer and Project Manager More than 25 years of development work Web and Desktop Many FoxPro to .NET conversion projects
What will we learn today? Standard Visual Studio deployment Single file applications ClickOnce MSIX Pros and cons of each technology
Deployment through history... It's never been fun. Used to be the responsibility of Ops, not Dev (in theory) In general, it's easy at first, then quickly becomes hard The line between Dev and Ops is now very blurry
Once upon a time One operating system One screen configuration Few security considerations Physical media (floppy or CD)
Modern problems Mobile devices Multiple operating systems Security Digital certificates Automatic updates High expectations
Self-contained Self-contained Includes .NET Runtime Platform specific Larger deployment ReadyToRun Ahead-of-time (AOT) compilation
Framework-dependent Framework-dependent Cross platform Does not include .NET Runtime, just the app and 3rd-party dependencies Smaller deployment Requires pre-installation of .NET Runtime
Single file applications All in one (sort of...) Been around since .NET Core 2.1 New in .NET 5: Not really a single file! IncludeAllContentForSelfExtract For some flags, there is no UI
ClickOnce Been around a while ClickOnce: Bringing Ease and Reliability to Smart Client Deployment, Patrick Darragh, January/February 2006 "ClickOnce for the Real World, Not Hello World", Julie Lerman, November/December 2006 Still being updated and maintained. Relatively simple
ClickOnce Multiple install location options UNC file path CD/DVD/USB drive Web site Automatic updates Versioning Has an API for complex scenarios
How I do things Create an Azure Web app Publish my installation to that web app Re-publish when new features are ready
In practice Create the installation as soon as there is code to publish Users and testers have early access Every time a user or test runs the app, they get the latest code Facilitates feedback Creating the installation last can cause issues.
ClickOnce Full featured installation process Great for most applications Automatic updates and versioning Easy to create web-based installations
MSIX Windows 10 and up Win32, WPF, WinForms, etc. Extensible with an SDK Open source and cross platform Microsoft Store Lots of documentation lots of documentation
Reliable, fast and clean 99.96% success rate over millions of installs Network optimization Only downloads 64k blocks AppxBlockMap.xml Disk space optimization Guaranteed uninstall
Containers Lightweight Access to the global registry Virtual file system and registry Other apps can t access All data is deleted on uninstall
Windows 10 version differences https://docs.microsoft.com/en-us/windows/msix/supported-platforms
Building an MSIX installation Requires adding a new project to your solution This may go away in .NET 6 Much of the tooling is MS Store-specific We ll be sideloading
MSIX Lots of options Lots of documentation You can do what you need to do fairly easily
Which one to use? Just need to get your app to a specific target? Self-contained or single file Needs to be cross platform? Framework-dependent Windows only, especially older versions (e.g. Windows 7) ClickOnce Lots of flexibility? Fast, efficient? Microsoft Store? MSIX
Resources https://docs.microsoft.com/en-us/windows/msix/ https://docs.microsoft.com/en-us/windows/msix/resources ClickOnce: Bringing Ease and Reliability to Smart Client Deployment (codemag.com) ClickOnce for the Real World, Not Hello World (codemag.com) Distribute a Windows 10 app from an Azure web app - MSIX | Microsoft Docs