CodeZine(コードジン)

特集ページ一覧

WPF/WinFormsアプリをマイグレーションして、ComponentOneを利用したモダナイゼーションを行う

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/02/28 12:00
目次

ComponentOneについて

 ComponentOneはグレープシティが開発する.NET環境のWindows、Web、Mobileアプリ開発に利用できるコントロールセットです。新元号に対応済みであることはもちろんのこと、.NET環境にあるUIを便利にする新機能やコントロールが今なお機能追加されています。

ComponentOne
ComponentOne

ComponentOneの特徴

300種類を超えるコントロール

 標準コントロールで実現できなかった細やかな機能により、直感的な入力や操作感といったユーザーエクスペリエンスの向上に貢献します。

WinForms Control Explorer
WinForms Control Explorer
WPF Control Explorer
WPF Control Explorer

Platform間で共通的なAPI

 ComponentOneは、提供されている各プラットフォーム間で極力共通のAPIとなるようライブラリが構成されています。たとえばWinFormsで利用したComponentOneのChartコントロールを、WPFでも利用したい場合、プラットフォーム独自の制約があることを除けば、同じような手順で再利用できます。

WPFによるChartコントロール(BarChart)
WPF Chart
WPF Chart
WinFormsによるChartコントロール(BarChart)
WinForms Chart
WinForms Chart

最新の開発環境で利用できる

 ComponentOneは常に最新の開発環境におけるアップデートが行われています。利用者はサブスクリプションモデルとして利用することで、常に最新のモジュールを導入できるため、最新の開発環境をいち早く導入することが可能です。

Themes for WinFormsについて

 WPFやUWPなどのXAMLには、ThemeやStyle、ResourceDictionaryの仕組みを用いて統一的なインターフェイスを作成する機能があります。

 これはXAMLで記述された各UI要素が持つプロパティの初期値を適用するものですが、ComponentOneにはWinFormsアプリでも同様に統一されたデザインを適用することができる「Themes for WinForms」という機能があります。

 「Themes for WinForms」はアプリに統一的なデザイン適用を支援するコンポーネント群です。このコンポーネントを使用することで、共通的なデザインの作成・適用が簡単に行えます。

 本稿では、マイグレーションに使用するサンプルのWinFormsアプリに「Themes for WinForms」の主要コンポーネントである「C1ThemeController」を利用したデザインの適用方法を紹介します。

Tiles for WPFについて

 Tiles for WPFは、Windows 8で登場したインターフェイス「タイル」を用いたUIを簡単に作成することができるコントロールです。

 本稿で利用するマイグレーション対象のWPFアプリには、Windows標準のListBoxコントロールを使用した簡単なアプリケーションに対して、Tiles for WPFを使用してモダンな表現を適用したいと思います。

ComponentOneの.NET Core対応について

 ComponentOneの.NET Framework 4.5.2用アセンブリは.NET Framework互換モードにより.NET Coreプロジェクトで参照が行えます。

 .NET Framework互換モードとは.NET Standard 2.0以降に導入されたモードで、.NET Frameworkのライブラリが.NET Standardや.NET Coreのプロジェクトから参照可能となるモードです。

 このモードでアセンブリを参照すると、パッケージが正しく動作しているかどうかをテストする必要があるため、ビルド時にパッケージフォールバック警告NU1701が表示されます。

NU1701
NU1701

 つまり、プロジェクトに設定されているTargetFrameworkと非互換のアセンブリが参照されていることの警告を表示します。

 アプリケーションをテストして問題ないことが確認できた場合、そしてこの警告が気になる場合は、プロジェクトファイル内にあるPackageReferenceを検索し、NoWarn属性を追加することで警告を消すことができます。

<ItemGroup>
  <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

 NoWarn属性を追加した場合、以降は警告表示が行われないので、.NET Framework互換モードでライブラリ追加を行う場合は、動作に問題がないかきちんとテストするようにしましょう。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 森 博之(AZPower株式会社)(モリ ヒロユキ)

     Microsoft Azure、.NETテクノロジーを使用したWebサービスのプロダクトアーキテクト。他にも技術記事の執筆やトレーニング、セミナースピーカーを行っている。  Microsoft MVPをDeveloper Technologies、Visual Studio and Develo...

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5