日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...

發布時間:2023/12/4 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 温故知新,.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 HelloWinForm

2. 切換到HelloWinForm目錄

cd .\HelloWinForm\

3. 創建名為demoForWinForm的WinFroms項目

dotnet new winforms -o demoForWinForm

4. 添加demoForWinForm到解決方案

dotnet sln add .\demoForWinForm\demoForWinForm.csproj

5. 切換到demoForWinForm目錄

cd .\demoForWinForm\

6. 運行demoForWinForm項目

dotnet watch run

7. 查看運行效果

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大一统基础上老树发芽...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。