こんにちは! インフラジスティックス・ジャパン テクニカルコンサルティングチームの石橋です。
このシリーズ記事では「.NET Framework 4.8 で作成した WPF アプリケーションを .NET 6 にアップグレードする」と題して、.NET アップグレード アシスタントを使って .NET Framework 4.8 で作成した WPF アプリケーションを .NET 6 にアップグレードする方法を 4 回にわけて書いていきたいと思います。
今回は「Step 0: はじめに」です。
Step 0: はじめに -- 出発点となる .NET Framework 4.8 WPF アプリケーションの説明 (今回はここ)
Step 1: 実行環境を準備する
Step 2: .NET アップグレード アシスタントでアップグレードする
Step 3: .NET アップグレード アシスタントでアップグレードできない部分を手動で置き換え、ビルドする
このブログで使用する WPF アプリケーションのソース コードは GitHub にあります。
https://github.com/igjp-sample/WPF_DotNetFramework2DotNet_UpgradeAssistance
./Step0/ScoreSheets_SampleWPFApplication が起点となる .NET Framework 4.8 のアプリケーションのソース コードです。これをローカルにダウンロードして読み進めてください。この記事では C:\ のすぐ下に Step0\ScoreSheets_SampleWPFApplication フォルダーがあり、この下にソリューション ファイルとプロジェクト フォルダーがあるという想定で進めていきます。
では早速見ていきましょう。
出発点となる .NET Framework 4.8 WPF アプリケーションの説明
今回使用するアプリケーションの実行画面です。
学校などで学年別に 5 教科の成績を集計して閲覧表示するアプリケーションを想定しています。左側に学年別のインデックス、画面中央上に各教科の 10 点刻みの度数分布、画面中央下に生徒の一覧と各教科の点数が表示されています。
画面レイアウト構成
画面の分割とレイアウト構成は WPF 標準のものを使用しています。3 分割にしているのは Grid と GridSplitter、画面中央上の度数分布グラフをタイル状に配置しているのは WrapPanel と ListView です。
画面で使用している UI コントロール
各 UI コントロールはインフラジスティックスのコントロールを使用しています。左側のリストは XamDataTree、画面中央上のグラフは XamDataChart、画面中央下の表は XamDataGrid です。
データソース
元の成績データは Excel ファイルです。
Excel ファイルの読み込みはインフラジスティックスの Excel エンジンを使っています。
プロジェクト - 構成プロパティ
ソリューションおよびプロジェクトは Visual Studio 2022 のビルトインで提供されている WPF 用の .NET Framework のテンプレートを使用して作成しています。
.csproj ファイルの構成プロパティ部分を見てみましょう。
ScoreSheets_SampleWPFApplication.csproj |
<PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{76650765-A56E-47BC-8A62-0D0B4794F1B3}</ProjectGuid> <OutputType>WinExe</OutputType> <RootNamespace>ScoreSheets_SampleWPFApplication</RootNamespace> <AssemblyName>ScoreSheets_SampleWPFApplication</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <Deterministic>true</Deterministic> <LangVersion>8.0</LangVersion> </PropertyGroup> |
- OutputType (出力形式): WinExe (Windows ベースの実行形式を出力)
- TargetFrameworkVersion (実行に必要な .NET Framework バージョン): v4.8
- LangVersion (C# 言語バージョン): 8.0
.NET Framework 4.8 用の Windows で実行できるアプリケーションになっているのがわかります。
LangVersion に関しては、プロジェクト作成後、.csproj ファイルをエディタで開いて手動で書き足しています。.NET Framework 4.8 のアプリケーション テンプレートの既定値は 7.2 なのですが、今回のアプリケーションでは null 許容参照型を使用していて、これが C# 8.0 以上で使用可能なためです。
プロジェクト - 参照
続いて .csproj ファイルの参照設定を見てみましょう。
ScoreSheets_SampleWPFApplication.csproj |
<ItemGroup> <Reference Include="InfragisticsWPF4.Controls.Charts.XamDataChart.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.Controls.Menus.XamDataTree.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.DataManager.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.DataPresenter.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.DataVisualization.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.Documents.Core.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.Documents.Excel.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.DragDrop.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.Editors.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="InfragisticsWPF4.v22.2, Version=22.2.20222.30, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb, processorArchitecture=MSIL"> </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Net.Http" /> <Reference Include="System.Xaml"> <RequiredTargetFramework>4.0</RequiredTargetFramework> </Reference> <Reference Include="WindowsBase" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> </ItemGroup> |
"InfragisticsWPF4" で始まるアセンブリはインフラジスティックスのアセンブリです。XamDataTree、XamDataChart、XamDataGrid、Excel エンジンの実装に必要なアセンブリを参照しています。
それ以外のアセンブリはアプリケーション テンプレートが既定で追加したアセンブリです。
以上が今回起点となる .NET Framework 4.8 の WPF アプリケーションについての説明です。
次回は .NET アップグレード アシスタントの実行環境の用意とインストールをしていきます。頑張っていきましょう!
この記事の内容についてご質問やご不明な点がありましたら、インフラジスティックスのお問い合わせ先までお問い合わせください。
また、こちらからインフラジスティックスの WPF 製品の試用版をダウンロードできます。今回のアプリケーションで使用したコントロール (XamDataTree、XamDataChart、XamDataGrid、 Excel エンジン) 等に少しでも興味を持った場合はぜひお試しください。