WinForms — Performance Enhancements in the Microsoft WinForms Designer for .NET 6+ Development

WinForms Team Blog
18 March 2024

We were in close collaboration with the Microsoft dev team over the last few months, and Microsoft has recently released Visual Studio 2022 version 17.10 Preview 2, which improves form load performance across a number of .NET Core / .NET usage scenarios.

I invite you to download Visual Studio 2022 v17.10 Preview 2 (or newer) and test how forms using DevExpress components perform at design time. These performance enhancements are not tied to any DevExpress version because they are implemented at the Visual Studio core level (based on our feedback associated with problematic internal routines). Let me quote Microsoft release notes:

Performance improvements in Windows Forms out-of-process designer
Through a fruitful collaboration with a key partner, we are thrilled to announce substantial enhancements to the WinForms server process TypeResolutionService. These enhancements have yielded remarkable design time performance improvements, ranging from 30% to an impressive 50% in typical line of business applications. Notably, these enhancements particularly shine during scenarios that trigger server process restart and designer reload, such as project rebuilds or adjustments in project references. At the heart of these performance improvements lies a new mechanism implemented by our team, prioritizing assemblies crucial for designer load. We encourage you to explore the updated designer and share your invaluable feedback through VS Feedback channel so that we can continue improving WinForms designer performance.

In addition to Microsoft, I also want to thank the DevExpress WinForms community. Your feedback/participation in .NET Core / .NET related support surveys last summer helped pave the way for this improvement.

Bonus Performance Tips

More good news if you are using DevExpress WinForms v23.2 or newer...you can cut an additional 1-2 seconds from designer startup (if you do not need all DevExpress WinForms components simultaneously on your forms) by using the following smaller packages instead of the large DevExpress.Win.Design package:

  • DevExpress.Win.Diagram
  • DevExpress.Win.Dialogs
  • DevExpress.Win.Gantt
  • DevExpress.Win.Gauges
  • DevExpress.Win.Grid
  • DevExpress.Win.Map
  • DevExpress.Win.PdfViewer
  • DevExpress.Win.PivotGrid
  • DevExpress.Win.RichEdit
  • DevExpress.Win.Charts
  • DevExpress.Win.Dashboard
  • DevExpress.Win.SpellChecker
  • DevExpress.Win.Spreadsheet
  • DevExpress.Win.TreeList
  • DevExpress.Win.TreeMap
  • DevExpress.Win.VerticalGrid
  • DevExpress.DataAccess.UI (should also be used instead of DevExpress.Xpo and DevExpress.DataAccess)
  • DevExpress.Win.Navigation (should also be used instead of DevExpress.Data and DevExpress.Utils)
  • DevExpress.Win.Reporting (should also be used instead of DevExpress.Win.Printing)
  • DevExpress.Win.SchedulerExtensions (should also be used instead of DevExpress.Win.Scheduler and DevExpress.Win.SchedulerReporting)
NOTE: Packages listed with parentheses do not offer design time for associated components. The larger replacement package must be used instead.

Your Feedback Matters!

We look forward to hearing from you on whether you noticed better performance once you have had a chance to enable and test the recommended enhancements.

Thanks,
Dennis Garavsky
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.