.NET 5 数据可视化项目移植指南

在.NET Core 3时代,微软将System.Windows.Forms.DataVisualization命名空间的部分源代码进行了开源,以支持WinForms应用程序的图表功能。随着.NET 5的发布,有必要将这些代码迁移到最新的.NET版本。本文将介绍如何进行这一迁移过程,以及在迁移过程中需要注意的关键点。

迁移到.NET 5

迁移到.NET 5的过程包括更新引用、修改项目文件以及替换已弃用的控件。以下是一些主要的迁移步骤:

在.NET Core 3.0的原始移植版本中,使用了非常旧的Beta/Preview版本的引用。在迁移到.NET 5时,需要将这些引用更新为最新的稳定版本。例如,可能需要避免使用System.Data.SqlClient,因为它可能在未来的版本中被弃用。

项目文件(CSProj)也需要根据新的.NET 5目标/平台进行修改。以下是.NET Core 3.0和.NET 5的项目文件对比:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> <AssemblyName>System.Windows.Forms.DataVisualization</AssemblyName> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> <CLSCompliant>false</CLSCompliant> <NoWarn>$(NoWarn);618</NoWarn> <DefineConstants>$(DefineConstants);WINFORMS_CONTROL</DefineConstants> </PropertyGroup> </Project> <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <TargetFramework>net5.0-windows</TargetFramework> <AssemblyName>System.Windows.Forms.DataVisualization</AssemblyName> <AllowUnsafeBlocks>true</AllowUnsafeBlocks> <CLSCompliant>false</CLSCompliant> <NoWarn>$(NoWarn);618</NoWarn> <UseWindowsForms>true</UseWindowsForms> <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets> <DefineConstants>$(DefineConstants);WINFORMS_CONTROL</DefineConstants> </PropertyGroup> </Project>

特别需要注意的是true指令,它控制应用程序是否构建为针对Windows Forms。这个属性会改变MSBuild管道,以正确处理Windows Forms项目和相关文件。默认值是false。设置UseWindowsForms属性为true以启用Windows Forms支持。只有当此设置启用时,才能针对Windows平台。

从.NET Core 3.1开始,一些Windows Forms控件不再可用。取而代之的是.NET Framework 2.0中引入的具有更好设计和支持的替代控件。以下是一些不再可用的控件及其推荐替代品:

  • ContextMenu - ContextMenuStrip
  • MenuItem - ToolStripMenuItem

开始使用图表控件

了解图表控件的最佳方式是通过查看示例解决方案。通过与应用程序的交互体验,可以了解每种图表类型和每个主要功能。在修改控件参数并立即看到它如何影响控件的外观的同时,也可以获取生成的C#或Visual Basic代码,以便在应用程序中使用。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485