温故知新,.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之后,继而推出了WPFUWPWinUIMAUI等更新的客户端应用框架。

但是论资历,在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的由来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"人工智能导论 全部知识点思维导图整理.emmx"是一份非常值得收藏的文件。这份文件以思维导图的形式整理了人工智能导论的全部知识点,对于学习人工智能的初学者来说,这是一个非常方便且有效的学习工具。 首先,思维导图的形式使得知识点间的关联性一目了然。人工智能是一门涉及到多个领域的学科,知识点之间的联系错综复杂。通过思维导图,我们可以清晰地看到各个知识点之间的逻辑关系,更好地理解人工智能的整框架。 其次,这个文件涵盖了人工智能导论的全部知识点。人工智能是一个庞大而复杂的领域,很难一下子掌握所有的知识点。这份思维导图整理了全部知识点,使得我们可以有一个全面的了解。通过学习这份导图,我们可以快速地掌握人工智能导论的核心概念和基本原理。 此外,思维导图的形式让我们可以更好地复习和回顾知识点。当我们需要温故知新时,可以通过浏览思维导图中的知识点,快速地回忆起相关的内容。思维导图中的关键词和分支结构,也可以帮助我们更好地组织和记忆知识。 总之,"人工智能导论 全部知识点思维导图整理.emmx"是一份非常有价值的学习资源。通过这份导图,我们可以清晰地了解人工智能导论的知识点之间的逻辑关系,快速地掌握核心概念和基本原理,并且可以更好地复习和回顾知识点。无论是初学者还是进阶学习者,都会从这份文件中受益匪浅。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值