NuGet Hot-Fixes Are Available, NuGet Licensing Best Practices, and Future Installation Enhancements

News
14 December 2021

Hot-Fixes for Runtime DevExpress Libraries Are Available via Online NuGet Feeds

As you may recall, we conducted a big "Installation & NuGet Experience" survey in April 2021. Your feedback helped us validate a few hypotheses, among them the need for NuGet hot-fixes. Thanks to your engagement, NuGet hot-fixes are now available for nearly all runtime DevExpress .NET libraries. We expect to publish NuGet hot-fixes through nuget.devexpress.com and NuGet.org (for our free XPO ORM library) 3-5 times per month.

NOTE: We will publish hot-fixes via our “battle tested” Unified Component Installer just like before, using the same cadence - this option will also help you obtain hot-fixes for design-time functionality. 

The Why: The Benefits of NuGet Hot-Fixes

For those using CI/CD pipelines to build projects, our new NuGet hot-fixes will help save time during the upgrade/update process. Previously, hot-fixes via our Unified Component Installers required manual intervention within CI/CD systems. 

Even if you are not using a CI/CD system, NuGet hot-fixes will help streamline the upgrade/update process for non-visual components such as the DevExpress Office File API, Role-Based Access Control API (FREE) (products that do not require Visual Studio design-time functionality). If you are using non-visual components, it will be much faster to edit a package version (two bytes) in Directory.Build.props or *.CSPROJ files than to download and execute our Unified Component Installer.
small

The Upgrade/Update Process – Feedback from Your Peers

To appreciate the benefits of NuGet hot-fixes, please review the following "public" DevExpress Support Center ticket. In it, Alex Miller explains some of his frustrations: 

Since then, I think i've updated with 3 different hotfix versions. Each time requiring me to download and install locally. This is a huge killer for productivity.

1. Wait for the the hotfix to download
2. Exit all VS instances…
3. Install DX (this takes over 10 minutes)
4. Relaunch VS
5. Reopen projects
6. Edit Directory.Build.props to set the new DX hotfix package version number
7. Wait for the restore to complete
8. Get back in the working flow

If the hotfixes were available on the DX nuget feed, I could skip steps 1-5 which would roughly save 15+mins and I can remain productive without leaving Visual Studio.

This also causes problems with the build pipeline. The local feed doesn't exists on the build service and the only alternative is to push the DX hotfix packages to my private feed, which not only takes me some time and maintenance, but costs me the artifact storage fees.

Thanks, Alex


How NuGet Hot Fixes Work

  1. Once you request a hot-fix in a Support Center ticket, we will test and publish it within a week (of course, it may take more than a week to issue a hot fix, but our goal is to release a hotfix within a week).

  2. After you receive a hot fix notification email from us, visit the appropriate Support Center ticket and find the following form:
     
  3. To access a hot-fix via the NuGet Package Manager from your personal NuGet feed (1), please check the Include prerelease option (2). Otherwise hot-fix packages will not be displayed (3).

Important: NuGet Licensing Best Practices for Multi-License Holders & CI/CD

In the following section, we’ll define licensing related actions/configurations for CI/CD systems.

Scenario: If your team includes multiple individuals, a license holder (typically a team lead or company owner) assigns individual DevExpress licenses to each developer using the Assign Licenses menu on our web site. An individual DevExpress license assigned to a developer grants this developer the right to use the DevExpress Unified Component Installer or individual NuGet feed credentials.

Question: What NuGet feed should a team of multiple developers use for a shared CI/CD pipeline?

Answer: For a shared CI/CD pipeline, we recommend the use of individual NuGet feed credentials for a developer with a valid DevExpress license (it does not matter whether this individual is a team lead/developer/company owner). And even though this developer "volunteered" a license for your organization’s shared CI/CD pipeline, the developer in question can also develop with valid DevExpress products within the Visual Studio and/or other IDE. Of course, all other developers within the team that use DevExpress products must also own valid DevExpress licenses. 

If the primary license holder assigned ALL licenses to developers within the team, the license owner can NOT use his/her NuGet feed for a shared CI/CD pipeline or any other development purposes. Nothing changes regarding NuGet in this regard - this has always been the case for our Unified Component Installer – primary license holders without a license cannot install our products (whether through NuGet or the Unified Installer).

NOTE: Our licensing rules (as defined in the DevExpress EULA) prohibit the use of a single DevExpress license by multiple developers for build and development purposes within the Visual Studio and/or other IDE - each developer that uses our products must own a license. If you own the appropriate number of developer licenses, but need licensing related clarification for your CI/CD system, be sure to contact us via the DevExpress Support Center. We’ll be happy to accommodate your specific business situation (where possible).

If you have questions regarding our license and terms of use, please write to us at info@devexpress.com.

2021 Recap for Installation & NuGet Experience

Once again, thanks to everyone who shared feedback via the DevExpress Support Center, surveys, email, etc. Your contributions helped us refine our installation/distribution logic and implementation. The following changes were a direct result of community-sourced feedback:

  • Supported NuGet Hot-Fixes;
  • Introduced NuGet trial versions and enhanced the trial experience for DevExpress Reporting;
  • Enhanced NuGet stability and authentication with personal access tokens;
  • Merged .NET Framework and .NET Core Desktop installers, and NuGet packages in v21.1 (removed redundant .NET Core Desktop installer in v21.2);
  • Added Portable PDB support for Windows and Linux debugging;
  • Extended the DevExpress Template Gallery with support for .NET Core apps.

For more information, please review my posts in this News blog and also our What's New documentation for 2021.

Future Plans

Before I wrap up, a quick look into hot-fix/distribution/installer plans for 2022:

  1. NuGet hot-fixes for our free Xamarin UI components are coming in about a month. Once Microsoft releases .NET MAUI in Q2 2022, we hope to have NuGet hot-fixes for our .NET MAUI components as well.
  2. Our Unified Component Installer will include an option to install localized resources for certain languages (DE, ES, JA, RU). We will not install these resources by default – you can install them at your discretion. NOTE: based on actual usage, we may completely remove these localization resources from the Unified Component Installer in favor of the DevExpress Localization Service.
  3. We will soon conduct a survey about DevExpress localization in .NET apps. We hope to validate a few hypotheses about our Localization Service, Unified Component Installer, overall localization quality, and ways to translate strings in general.
  4. We hope to include our free WinUI components into the Unified Component Installer in 2022. Simultaneously, we may remove our UWP components from the Unified Component Installer (though we have not finalized this decision yet).
  5. Our Unified Component Installer may include an option to install CodeRush (for licensed CodeRush users) in 2022. Currently, CodeRush is only available in our trial installation and through the Visual Studio Marketplace. If you’ve yet to explore CodeRush, we hope you will consider it for future use as we expect to introduce new features like code snippets for key DevExpress controls (like sort a grid, build a filter criterion, etc.) and DevExpress-specific error diagnostics (like this one). Bottom line – CodeRush will soon help simplify use of DevExpress components within the Visual Studio Code Editor and save time during troubleshooting. Be sure to follow our IDE Productivity Tools blog in for exciting news in this regard in about a month or so. UPDATE: here we go.
NOTE: Things may change, but this is what we have at the top of our list at present time

Your Feedback Matters

If the changes we’ve introduced do not fully address your business needs or if you’d like to engage us further on this topic, please leave a comment below or create a new support ticket via the DevExpress Support Center. We’ll be more than happy to follow-up.

Thanks,
Dennis
Principal Product Manager
dennis@devexpress.com

Free DevExpress Products – Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We’ll be happy to follow-up.
Customer78699
Lior
Do you have public run time only nuget feed (without design time assemblies)?  this will solve the license usage since no design time functionality will be enabled but compilation will still work. This way there is no need for license installation in the CI machine.
14 December 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@Lior: Normally, you should not run the Unified Component Installer on the CI machine if you use NuGet.
Existing NuGet feed should work just fine for your task and the build machine should not display trial windows.

If you have specific design-time related compilation issues, please email me the details. I anticipate that you check in your licenses.licx files into the source control by a mistake, which may cause issues. For more information, please review Licenses.licx file woes.
14 December 2021
Christopher Jay
Christopher Jay
This is a nice development, thanks!
14 December 2021
Peter Drier 2
Peter Drier
Pre-release nuget packages helps a lot.  Thanks.
14 December 2021
Stephen J White
Stephen J White
This is great news, I really appreciate it. Hot fixes were always difficult to integrate into our pipeline because we exclusively use Nuget. Thanks for doing this!
14 December 2021
CRM-40267349-7608-4495-a806-7d5f38270c84
mn

So I see in visual studio nuget 21.2.5-preXYZ

but how do I know what changes are made inside, what fixes are applied?

15 December 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@mn: After you receive a hot fix notification email from us, you can visit the appropriate Support Center ticket (to see what's fixed) and download the latest installer/NuGet package.
21 December 2021
CRM-bdb9f2e4-9fb2-48b2-900e-95c67448ed82
Alexey Gurin
We want to support a separate nuget package for Russian localization
9 November 2022

Please login or register to post comments.