Web Analytics

Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

What's the same and what's different? - Windows Forms App (.NET Framework), Windows Forms App (.NET) and WPF Application

f:id:espio999:20211207230232p:plain
In Visual Studio, there are 3 options as the screenshot at the top of this post. They are

Windows Forms App (.NET Framework) an application with a Windows Forms (WinForms) user interface
Windows Forms App (.NET) an application with a Windows Forms (WinForms) user interface
WPF Application .NET WPF Application

I wonder that a translator in Microsoft is really confident that users can understand and recognize difference of them, especially between 2 Windows Forms Apps.
An user select framework they use at the later step and they will be able to realize 2 options intends at that stage. But I think a translator should indicate information leading more clear understanding and recognition at the 1st stage.

I imagine that most users select "Windows Forms App (.NET Framework)" and only small part of users in advance of others try "WPF Application".

This post introduces how they are difference.


The next matrix is a summary of their differences.

Project GUI Framework Logic Rendering
1 Windows Forms App (.NET Framework) WinForms .NET Framework Embedded in View GDI
GDI+
2 Windows Forms App (.NET) WinForms .NET Core
.NET 5.0~
Embedded in View GDI
GDI+
3 WPF Application WPF .NET Core
.NET 5.0~
MVVM
Separated from View
Direct3D

User select framework at the later step. Difference of frameworks listed there indicates difference of these options.

f:id:espio999:20211207230340p:plain
f:id:espio999:20211207230350p:plain

In general objective to develop desktop application for Windows, all options are applicable. The key to select an appropriate option is GUI and framework.

Windows Forms App (.NET Framework)

.NET Framework is included with Windows. Developers don't have to be conscious to distribute other than developed application in this option.

It is important to note that the life cycle of .NET Framework. Version 4.8 is its last version, and developers will be forced to choose other options in time.

.NET Framework 4.8 is the last version of .NET Framework.

Overview of .NET Framework - .NET Framework | Microsoft Docs

Windows Forms App (.NET)

This option is appropriate for desktop application development with .NET Core for framework, and WinForms for GUI.

Developer should be conscious about .NET Core is installed in end user's PC for for distribution of developed application so that .NET Core is not included in Windows.

WPF Application

This is an option for modern Windows application development. In advance of rushing into this option, developers should know that Microsoft is trying to change their course to "Windows App SDK" with WinUI introduced later.

In WPF (Windows Presentation Foundation), GUI is defined with XAML (eXtensible Application Markup Language) and logic is defined with .NET Core. Major difference from other 2 options are its structure and rendering.

In this option, design and implementation based on MVVM (Model View ViewModel) architecture as well as development for mobile as Android.

In other 2 options, application logic is behind Form even if core functions are separately provided from DLLs. State change and control for button, label, text box, etc, MVVM isolates such logic from GUI, and avoids embedding such codes into Form.
Therefore, development process is vary from traditional way. GUI is designed with defining in XAML, not drag & drop from toolbox, and describing logic in ViewModel corresponding XAML.
Depending on interpretation, "Windows Forms App" is defined as the option to develop in traditional way with new framework.

The another major difference between WinForms and WPF is rendering technology, Retained Mode and Immediate Mode*1. The following site provides easy to understand information for an explanation of these 2 modes. In a nutshell, WPF can render smoother than WinForms.

Windows Formsの基盤描画技術となるGDIの場合、最終的なビデオメモリに書き込んでいるのはアプリケーション自身です。すなわち、アプリケーションが実行する描画命令と実画面のフレームバッファに書き込まれるタイミングは同期しています。このような描画の仕組みを「即時モード」のグラフィックシステムと言います。


一方WPFの場合、アプリケーションから描画命令を実行してもビジュアルオブジェクトをシリアル化した描画データが生成されるだけで、そのまま即ビデオメモリへの書き込みは行われません。アプリケーションの実行スレッドとは別のWPFの描画スレッドが、描画データをスキャンして非同期にDirect3Dのバッファに描画します。このような描画の仕組みを「保持モード」のグラフィックシステムと言います。

Windows FormsとWPFの比較(描画編) | GrapeCity.devlog - グレープシティ株式会社

Windows App SDK, Windows UI Library (WinUI)

Since Windows 8, Microsoft has been trying to create a consistent environment supporting both mobile and desktop. WPF is a part of that, but Project REUNION brought change to their direction. "Windows App SDK" is its deliverable and is provided as an extension of Visual Studio.
And Windows UI Library (WinUI) is GUI library included it. This is mainstream since Windows 11, but WinForms has been still occupying there.

From my view, my stance against both WPF and WinUI is wait-and-see for a while.

docs.microsoft.com
docs.microsoft.com
docs.microsoft.com