Add .NET 4.8.1 support for Syncfusion WinForms

Hello, 


Currently Syncfusion WinForms is only built for .NET Framework versions up to 4.6. If you use a version of .NET Framework newer than 4.6 for your app then your app can still call the .NET 4.6 Syncfusion WinForms dlls with full backwards compatibility. I previously created an issue to add either 4.7 or 4.8 support to get some of the DPI enhancements in those newer versions: https://www.syncfusion.com/forums/145624/winforms-controls-in-net-framework-4-7-and-4-8


Yesterday, .NET Framework 4.8.1 was released: https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/


The main functional improvement to .NET 4.8.1 is native support for ARM64. With more and more devices supporting ARM64 (such as Microsoft's Surface Pro X line, and the M1/M2 powered Macs with Windows running through Parallels) it is important to get the best performance possible in our apps when running on the ARM64 architecture. If we use .NET 4.8 or older, our software is still compatible with ARM64 but it is run in a virtualization layer with much slower performance whereas if the app is built using .NET 4.8.1 then we will have much better performance on ARM64 powered machines.


In order to get the best performance on ARM64 machines, we would need both our main app and any 3rd party libraries or NuGet packages to be compiled with .NET 4.8.1. I suggest that you recompile and release Syncfusion WinForms on .NET 4.8.1 so that we have the option of using it with full performance on these newer ARM64 powered computers.


Thanks and Kind Regards,

-Taylour


17 Replies

VS Vijayarasan Sivanandham Syncfusion Team August 12, 2022 12:59 PM UTC

Hi Taylour,

Our WinForms controls are compatible with the ARM64 configuration. You can still build the application with our existing assemblies. Please refer to the below link for more information,

https://help.syncfusion.com/windowsforms/arm-support


We will validate about the .NET Framework 4.8.1 advantages and provide you the further details about our plan on August 16, 2022.

Regards,
Vijayarasan S



TT tttmack August 12, 2022 01:26 PM UTC

Hi Vijayarasan,


Thanks for your reply. The link you referenced about Syncfusion WinForms controls supporting ARM64 is for .NET 6 (.NET Core). I created this forum post for creating a Syncfusion WinForms release for .NET Framework that is fully compatible(with native performance, not virtualization) with ARM64. Not every .NET Framework based application can migrate to .NET Core as there are often compatibility issues for certain features and functionality that may only work with .NET Framework so it is important that Syncfusion provides a .NET Framework WinForms release with ARM64 support.


Thanks and Kind Regards,

Taylour



VS Vijayarasan Sivanandham Syncfusion Team August 12, 2022 01:49 PM UTC

Hi Taylour,

Thanks for your update.

We can understand your scenario. As promised, we will validate the .NET Framework 4.8.1 and provide you with our plan on August 16, 2022.

Regards,

Vijayarasan S



VS Vijayarasan Sivanandham Syncfusion Team August 16, 2022 02:03 PM UTC

Hi Taylour,

We are ensuring the performance of our controls against the .NET framework 4.8.1 version in the ARM64 device. We will need another three business days to ensure the performance and make the plan. We will get back to you on August 19, 2022 [Friday].


We appreciate your patience until then.

Regards,
Vijayarasan S




NK Neelakandan Kannan Syncfusion Team August 19, 2022 05:57 PM UTC

Hi Taylour,

Thanks for your patience.

We are still ensuring our controls in .NET framework 4.8.1 with ARM64 machine. To test the controls with different scenarios, we need a timeline till 24/8/2022.

Regards,

Neelakandan



NK Neelakandan Kannan Syncfusion Team August 24, 2022 02:40 PM UTC

Hi Taylor,


Thanks for your patience.


We have tried to launch the ARM64 configured WinForms app in ARM64 device [Microsoft Surface Pro X], which is targeted in .NET 4.8.1 framework. But, we are unable to launch the simple sample itself on ARM64 device. We have created the query for Microsoft,

https://docs.microsoft.com/en-us/answers/questions/980281/net-481-arm64-configuration-is-not-running-in-arm6.html


As our Syncfusion assemblies are compiled against AnyCPU configuration, our controls will be compatible with ARM64 targeted OS. We will further follow up with Microsoft and decide whether we need to publish the .NET 4.8.1 assemblies in the future.


Regards,

Neelakandan



TT tttmack September 10, 2022 08:54 PM UTC

Hi Neelakandan,


Any update on this? Looks like there was a reply on your Microsoft query some time ago.


Kind Regards,

-Taylour




VS Vijayarasan Sivanandham Syncfusion Team September 12, 2022 02:19 PM UTC

Hi Taylor,

Currently, we are checking the provided suggestions from our end. We will check and update you with further details on September 14, 2022.

Regards,
Vijayarasan S



NK Neelakandan Kannan Syncfusion Team September 14, 2022 01:09 PM UTC

Hi Taylour,

Thanks for your patience.

We have tried the suggestion shared by Microsoft expert. But, unfortunately its not working. I have posted my response to him. I will get back to him as early as possible if i get response from him.

Thanks for your understanding.

Regards,

Neelakandan



TT tttmack July 1, 2024 05:12 PM UTC

Hi, 


Are there any updates on Syncfusion adding support for .NET Framework 4.8 and 4.8.1 for Essential Studio WinForms?


Syncfusion currently only supports 4.6.2 as the newest version and there are significant improvements that can be made by supporting both 4.8 and 4.8.1.


Specifically, 4.8 has significant per-monitor v2  DPI Awareness updates over 4.6.2. Additionally it has the same operating system support as 4.6.2 with support for Windows 7, 8.1, 10 and 11.

https://www.syncfusion.com/forums/145624/winforms-controls-in-net-framework-4-7-and-4-8

https://www.syncfusion.com/feedback/7491/4-7-net-framework-support-for-winforms-controls


4.8.1 has reduced operating system support with only Windows 10 and 11 but it offers native performance on Arm processors. So devices like the Surface Pro X, Surface Pro 9 SQ3, and all of the new Snapdragon X and Snapdragon X Elite computers will be able to run x86 and x64 apps with native performance instead of relying on virtualization with slower performance. With SnapDragon X having massive benchmark performance (just like Apple Silicon), expect many new PCs to use ARM instead of x86/x64 architecture.

https://devblogs.microsoft.com/dotnet/announcing-dotnet-framework-481/ 


With High DPI monitors and ARM processors becoming more and more common, it would be highly beneficial to provide support for both of these newer .NET Frameworks. As far as I can tell the only important changes needed are to add support for these newer versions are to add new form events for dpi changes (as mentioned on my 4.7/4.8 post) and just changing the code to target the newer versions of .NET Framework. For 4.8.1, the code base should be able to be built using an x64 machine (.NET 4.8.1 does  not require an ARM processor to build).


Note that your two main competitors both support.NET Framework 4.8 (and possibly 4.8.1). 

https://docs.devexpress.com/WindowsForms/8092/prerequisites#net-framework

https://docs.telerik.com/devtools/winforms/installation-and-upgrades/distributions


Thanks and Kind Regards,

-Taylour





MA Manikanda Akash Munisamy Syncfusion Team July 2, 2024 02:10 PM UTC

Hi Taylor,

Thank you for reaching out with your query regarding support for .NET Framework 4.8 and 4.8.1 in Essential Studio WinForms.
 
We want to assure you that we do provide support for .NET Framework 4.8 and 4.8.1. Our approach involves using .NET Framework 4.6.2 as the base assembly and ensuring compatibility with higher versions, including 4.8 and 4.8.1. This method allows for seamless support of the latest .NET Framework versions without the need for separate assemblies.
 
Since you mentioned our competitors, we reviewed their practices and found that they follow a similar method. They do not provide dedicated assemblies for .NET Framework 4.8/4.8.1 but use a base assembly and ensure compatibility with the newer versions.
 
For further details, please refer to our documentation on Syncfusion .NET Framework Compatibility. If you face any difficulties with this, please let us know.

Regards,
Manikanda Akash M


TT tttmack July 2, 2024 06:39 PM UTC

Hi Manikanda,


When I asked for Syncfusion Winforms support for .NET Framework 4.8 and 4.8.1 I was asking for direct support, not backwards compatible support using 4.0 or 4.6.2 dlls. As I have mentioned before there are unique benefits that building the Syncfusion dlls as 4.8 and 4.8.1 provide (specifically better access to High DPI functionality and better performance on ARM processors). While 4.0 and 4.6.2 dlls technically still work in projects targeting 4.8 or 4.8.1 they are missing functionality and performance improvements associated with building the Syncfusion WinForms dlls in a newer version of .NET Framework.


Your team had previously gone over my requests and approved support for .NET 4.8: https://www.syncfusion.com/feedback/7491/4-7-net-framework-support-for-winforms-controls

Having missed the promised release date of Essential Studio 2023 Volume 2 (June 2023) your team just closed that feedback request today saying it will not be implemented.


Also note that your statement regarding your competitors not providing dedicated 4.8 assemblies is incorrect.

You can see that Telerik provides 4.8 dlls here:

https://docs.telerik.com/devtools/winforms/visual-studio-integration/available-nugets

https://docs.telerik.com/devtools/winforms/visual-studio-integration/install-using-nuget


I am also sure that DevExpress has dedicated 4.8 dlls but I don't want to go through the bother of installing a trial to prove it.


Please consider adding direct support for 4.8 and 4.8.1 dlls since there are real benefits vs using older Syncfusion dlls built using 4.6.2 or 4.0.


Thanks,

-Taylour



MA Manikanda Akash Munisamy Syncfusion Team July 3, 2024 03:12 PM UTC

Hi Taylour,
We apologize for the inconvenience caused.
Currently, we provide compatibility support using our existing DLLs for .NET frameworks 4.8 and 4.8.1. We appreciate your input and understand your requirements. While we understand the benefits of native support, we will analyze the details further and provide you with an update by July 05, 2024.
If you have any further questions or specific needs, please let us know.
Regards,
Manikanda Akash M


MA Manikanda Akash Munisamy Syncfusion Team July 5, 2024 02:26 PM UTC

Hi Taylour,
 
Thank you for your inquiry regarding the compatibility of our components built with .NET Framework 4.6.2 when used in a .NET Framework 4.8.1 application, especially concerning ARM support.


We want to assure you that our components are fully compatible with .NET Framework 4.8.1. The .NET Framework maintains a high degree of backward compatibility, which means applications and libraries built on earlier versions, such as 4.6.2, will run seamlessly on later versions, including 4.8.1. Furthermore, .NET Framework 4.8.1 supports ARM, providing additional flexibility.


To demonstrate this in a real-world scenario, we created a simple .NET Framework 4.6.2 component and a .NET Framework 4.8.1 application that utilizes this component. We deployed this application to an ARM machine, and it worked without any issues, proving the backward compatibility and ARM support. We attached the sample for your reference.


Here are some official references from Microsoft to support this:
  1. Application Compatibility in the .NET Framework: Microsoft states that the .NET Framework maintains backward compatibility to ensure that applications and libraries built with earlier versions run on later versions.
  2. .NET Framework Versions and Dependencies: This document details how applications built on earlier versions of the .NET Framework are expected to run on newer versions.
  3. .NET Framework Release Notes: Here, Microsoft highlights backward compatibility across .NET Framework versions.

By leveraging the information provided in these resources and the demonstration we conducted, you can be confident that our .NET Framework 4.6.2 components will work reliably in your .NET Framework 4.8.1 application, even on ARM machines.
If you have any further questions or need additional information, please don't hesitate to reach out.


Regards,
Manikanda Akash M

Attachment: WindowsFormsApp1_b5f5d7aa.zip


TT tttmack July 5, 2024 03:16 PM UTC

Hi Manikanda,


I understand that the .NET Framework maintains backwards compatibility. However, my focus is on the new features introduced in .NET Framework versions 4.7, 4.8, and 4.8.1, which are not available in Syncfusion DLLs built with .NET Framework 4.6.2.

For instance, WinForms events such as `DpiChangedAfterParent`, `DpiChangedBeforeParent`, and `DpiChanged` are only present in .NET 4.7 and later. These events enable per-monitor DPI scaling, allowing manual scaling of forms and controls when moved across screens, as opposed to relying on the OS's bitmap scaling that can make forms appear blurry on extended monitors. More information can be found here: https://learn.microsoft.com/en-us/dotnet/desktop/winforms/high-dpi-support-in-windows-forms?view=netframeworkdesktop-4.8


Regarding .NET Framework 4.8.1 versus 4.6.2:

Native ARM64 execution in 4.8.1 removes the performance overhead of translating x86/x64 instructions to ARM64, resulting in faster startup times, improved execution speed, and reduced CPU usage. Although I haven't found specific benchmarks comparing WinForms apps on 4.8.1 to earlier versions, the performance gains over using Syncfusion's 4.6.2 DLLs in emulation are significant.

You previously mentioned that the application could be built using 4.8.1 while the UI components could use Syncfusion 4.6.2 WinForms. While this ensures reliable functionality, the performance aspect is crucial. For example, displaying a Syncfusion form with many controls might take 10 seconds using 4.6.2 but significantly less time (perhaps around 5 seconds) if Syncfusion DLLs were built with 4.8.1. With the growing popularity of Snapdragon X processors in PCs, it's crucial to avoid the performance degradation caused by running all WinForms components in emulation mode on ARM processors.


Thank you and kind regards,

Taylour



MA Manikanda Akash Munisamy Syncfusion Team July 8, 2024 04:41 PM UTC

Hi Taylour,
We apologize for the inconvenience caused. We appreciate your input and understand your requirements. We are currently analyzing the details and will provide further updates on July 10, 2024.
Thank you for your understanding and patience.
Regards,
Manikanda Akash


MA Manikanda Akash Munisamy Syncfusion Team July 10, 2024 02:29 PM UTC

Hi Taylour,
Thank you for your patience and for providing detailed insights regarding the need for native support for .NET Framework 4.8 and 4.8.1.
We have conducted a performance analysis to compare the execution time between different framework versions. In our analysis, we prepared three projects:
  1. A .NET 3.5 application using a class library built with .NET 3.5.
  2. A .NET 4.8.1 application using a class library built with .NET 3.5.
  3. A .NET 4.8.1 application using a class library built with .NET 4.8.1.
We noticed that the time taken to complete string concatenation in the first project was around 30 seconds, whereas the same operation in the second and third projects took around 15 seconds. This significant difference is due to the enhancements and optimizations available in the newer .NET Framework versions. Although .NET 3.5 does not natively support certain optimizations like efficient string concatenation, running the application on .NET 4.8.1 allows it to benefit from these enhancements due to the runtime version.
Similarly, you can utilize Syncfusion components built with .NET Framework 4.6.2 in applications targeting .NET Framework 4.8.1 and still access many of the new features and performance enhancements provided by the runtime environment. The runtime behavior of .NET 4.8.1 ensures that even if the base assemblies are from an earlier version, the application can leverage the performance improvements and new capabilities of the latest framework.
Please find the attached samples demonstrating the above scenario. If you face any difficulties or have further questions, please let us know.
Regards,
Manikanda Akash M

Attachment: BenchmarkingApp_a11632b.zip

Loader.
Up arrow icon