温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...
什么是WinForm
https://docs.microsoft.com/zh-cn/dotnet/desktop/winforms
Windows窗體(Windows Form),簡稱WinForms,是一個可創建適用于Windows的豐富桌面客戶端應用的UI框架。Windows窗體開發平臺支持廣泛的應用開發功能,包括控件、圖形、數據綁定和用戶輸入。Windows 窗體采用Visual Studio中的拖放式可視化設計器,可輕松創建Windows窗體應用。
WinForm的來世今生
說起WinForm,其實很多現在的程序員已經是不用它了,原因是其實它已經是老爺爺了,微軟推出WinForms之后,繼而推出了WPF、UWP、WinUI、MAUI等更新的客戶端應用框架。
但是論資歷,在Windows平臺,先是經歷了Windows API + C,江湖人稱Win32,隨后C++的發展,誕生了經典的MFC(Microsoft Foundation Class),配合C++,還是不錯的。
Windows API && C?- 最早的開發Windows GUI程序的思路。用C語言直接調用Windows操作系統提供的API函數來開發,程序員處理Windows消息。經歷過這段開發時期的程序員一般對底層比較清楚,要了解Windows操作系統的工作原理。
MFC && C++?- Microsoft Foundation Class(MFC),微軟用C++封裝了Win32 API, C++程序員通過使用MFC類庫來開發,面向對象的編程方法。
后來,隨著.Net平臺的壯大和發展,微軟為了簡化開發門檻,把Windows API封裝成了控件,誕生了我們今天要說的Windows窗體(Windows Form)這項技術,并且搭配全新的C#語言使用。
但是,隨著應用的復雜話,微軟也意識到了WinForm的一些弊端,于是從.Net Framework 3.0開始,推出了能支持MVVM模式,并靠數據驅動界面的新框架WPF(Windows Presentation Foundation),相較于前輩的消息驅動、事件驅動模式,基于數據驅動的開發方式大大提高了編程效率,也更利于多工種和團隊協作。
雖然,后續伴隨著Windows 10發布了全新的UWP、Windows 11發布了WinUI、MAUI等框架,但是都是繼續建立在數據驅動的開發思想上的。
到了2021年了,隨著.Net Core的發展和生態需要,微軟回頭來,讓WinForm這么一門較老的客戶端窗體框架,老樹發芽,喚來新生,大概是從.Net Core 3.1開始,WinForm正式被納入.Net Core支持的范疇。
所以,今天的角度來看WinForms,其實際上具備兩個實現版本:
1. 托管于GitHub上的開放源代碼實現。
https://github.com/dotnet/winforms
此版本在.NET 5和.NET Core 3.1上運行。Windows窗體可視化設計器最低要求Visual Studio 2019版本16.8預覽版。
2. 受Visual Studio 2019和Visual Studio 2017支持的.NET Framework 4實現。
.NET Framework 4是僅限Windows的.NET版本,被視為一個Windows操作系統組件。此版本的Windows窗體隨.NET Framework一起分發。
創建WinForms應用
https://github.com/TaylorShi/HelloWinForm
基于命令行的創建
1. 新建名為HelloWinForm的解決方案
dotnet new sln -o HelloWinForm2. 切換到HelloWinForm目錄
cd .\HelloWinForm\3. 創建名為demoForWinForm的WinFroms項目
dotnet new winforms -o demoForWinForm4. 添加demoForWinForm到解決方案
dotnet sln add .\demoForWinForm\demoForWinForm.csproj5. 切換到demoForWinForm目錄
cd .\demoForWinForm\6. 運行demoForWinForm項目
dotnet watch run7. 查看運行效果
8. 檢查demoForWinForm.csproj配置
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>net6.0-windows</TargetFramework><Nullable>enable</Nullable><UseWindowsForms>true</UseWindowsForms></PropertyGroup></Project>基于Visual Studio的創建
1. 打開Visual Studio創建新項目
2. 搜索WinForms項目模板
這里可以看到Windows窗體應用(.Net Framework)就是.Net Framework框架的項目模板,而Windows Form App就是.Net Core框架的項目模板。
3. 選擇Windows Form App項目模板進行創建配置,配置項目名為HelloWinForm
4. 選擇Framework版本,暫時選擇默認的.Net 5.0預覽
5. 創建并打開解決方案
6. 運行項目并查看效果
7. 檢查HelloWinForm.csproj配置
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>net6.0-windows</TargetFramework><Nullable>enable</Nullable><UseWindowsForms>true</UseWindowsForms></PropertyGroup></Project>參考
Windows 窗體文檔
桌面指南(Windows 窗體 .NET)
教程:創建新的 WinForms 應用(Windows 窗體 .NET)
.NET Core 3.0 和 3.1 的 Windows 窗體中斷性變更
使用.net core3.0 正式版創建Winform程序
Introducing .NET Core (2021) by Microsoft.NET
WPF的由來
總結
以上是生活随笔為你收集整理的温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用EF Core操作层次结构数据
- 下一篇: MemoryCache 使用不当导致的一