.NET — Visual Studio 2012 & 2013 Deprecation, Raised C# Version for Product Source and More (v22.2)

News
16 August 2022

First, a quick reminder: This year we intend to deprecate .NET Core support for Visual Studio 2019 for our desktop products (since this IDE version does not support .NET 6 LTS). In our v22.2 release cycle, DevExpress .NET Core-based WinForms and WPF products will – at a minimum - require .NET 6 and Visual Studio 2022. Worth noting that our ASP.NET Core Blazor-based products (Blazor ComponentsXAF UI, Web API Service) already require .NET 6 and Visual Studio 2022 (v22.1 and higher). These changes do NOT affect .NET Framework customers in any manner — only .NET Core-based development will be affected.

Visual Studio 2012/2013 — Deprecation in Our v22.2 Release Cycle

At present (v22.1), design-time for our .NET Framework components (project templates, component designers and wizards) operate flawlessly in these old IDEs when (and only when) newer IDE versions are installed on the same machine side by side (for instance, Visual Studio 2015, 2017, 2019, 2022 – as these IDEs install the necessary Microsoft.VisualStudio.Shell.14.0 - or newer - assembly). The reasons we have chosen to drop support for these older IDEs include:

  • Visual Studio 2012/2013 are 10+ years old. It is time consuming and at times extremely problematic to deliver a high quality design time experience for old IDE versions.
  • Visual Studio 2012/2013 do not support High DPI screens (common across most enterprises today). As such, the developer experience (even without the use of third-party components) leaves much to be desired (small UI elements, unreadable text, etc).
  • Microsoft’s mainstream end date for support for Visual Studio 2012 and 2013 was 2018 and 2019 respectively. Though extended support dates for these IDE are 2023 and 2024, internal/external data points tell us that only a handful of users continue to leverage Visual Studio 2012 and 2013.

Of course, variations within certain products/usage trends may require even newer versions of Visual Studio (like with .NET 6). For instance, Report Designer usage data for Visual Studio 2015 indicates that this IDE can be dropped in the future because of its extremely small user base (another example is XAF: XAF-powered .NET Framework apps already require Visual Studio 2019). Should circumstances/requirements change, we will update blog/support/documentation content accordingly.

v22.2 Demo Apps Will Require .NET Framework 4.7.2

At present, Visual Studio 2022 users see the following dialog when they attempt to open our .NET Framework 4.5.2-based demos.

Since Visual Studio 2022 usage continues to grow, we want to eliminate this experience for the majority of our users. Our solution is to target .NET Framework 4.7.2 for our v22.2 demo apps. The .NET Framework 4.7.2 targeting pack is available in Visual Studio 2017, 2019, 2022. It represents a common denominator. Only a tiny percentage of those who continue to use Visual Studio 2015 will have to install the targeting pack (understandable for a 7-year old IDE). 

These demo app changes do NOT affect .NET Framework customers in any manner — our product assemblies will continue to target .NET Framework 4.5.2 in v22.2.

Raising the Version of C# in DevExpress Product Source Code

Problem

At present, we maintain the same C# version as "+1" to the version used in our demo apps. Example: Visual Studio 2013/2015 supports C# 6.0 at maximum, so we use C# 5.0 in our demo apps and C# 6.0 in our product sources. This constraint (supporting older C# versions) exists because of a very tiny percentage of user base who require source code recompilation in older versions of Visual Studio. Unfortunately, the current convention has a negative impact for both our developers and customers:

  • Our .NET team cannot benefit from modern C# 7.0 features in production code (such as out variables, Tuples and deconstruction, Pattern matching, Local functions available in Visual Studio 2017). This also prevents us from using tons of other useful C# features added in C# 7.1, 7.2, 7.3, 8.0, 9.0 for Visual Studio 2019.
  • Without these modern C# features, we invest an inordinate amount of time on old-fashioned and time-consuming development techniques.

To give you a better sense of the current situation and why we are making this change, here is a summary of a 2021 customer survey:

  • 78.3% of our customers never recompiled DevExpress source code;
  • 19.9% of our customers recompiled 1-2 times in the last 1-2 years;
  • 1.8% of our customers recompiled source code more often.
My research also showed that a handful of people from the last two groups did not actually need to recompile source code - they were not aware of our PDF symbols for debugging. Because of this fact, we updated our documentation and included PDBs into our installer last year: Debug DevExpress .NET Source Code with Debug Symbols.

Future Plans

Having shared the facts above, we want to have the maximum C# version available in the previous ("-1") version of the maximally supported Visual Studio. The minimum C# version is not strictly defined as we are bound by the minimally supported Target Framework in our production libraries and Microsoft’s release pace.

Example: Visual Studio 2022 is the most recent version we currently support. Visual Studio 2019 is the previous ("-1") IDE version, and it supports C# 8-9. This means that DevExpress .NET engineers may use C# 9 (the maximum) for our .NET libraries. Less than 2% of our customers who need to recompile product sources frequently will need to use Visual Studio 2019. As you can imagine, variations will exist in certain products because of the following:

  • Visual Studio 2022 is the only IDE that supports .NET 6 today. Our .NET 6-based products may require the use of C# 10 in production source code, even though .NET Framework-based products may use C# 9.
  • Though .NET Framework 4.5.2 limits available C# features, it is possible to safely work around this in some cases (Enabling and using C# 9 features on older and “unsupported” runtimes).
  • Like many of you, we do not want to blindly adopt the next version of C# when Microsoft releases Visual Studio vNext. For instance, though Microsoft will release .NET 7 and C# 11 this year, we may continue use of C# 9 or even older C# versions in our sources, if required.
This new approach adds a lag of ~2 years from the first release of a new version of C# until we use it in our source. We feel this is a reasonable compromise between competing interests: R&D needs, product quality, customer requirements, and source code recompilation.

Your Feedback Matters!

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.