Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Net core3.0とWPF

.NET Conf 2019 meetup in AICHIのLT資料

  • Be the first to comment

  • Be the first to like this

Net core3.0とWPF

  1. 1. .NET Core 3.0とWPF 2019/10/05 Ayuma Kaminosono(@ayuma_x) .NET Conf 2019 meetup in AICHI
  2. 2. Ayuma Kaminosono .NET Conf 2019 meetup in AICHI • C#, WPF, Unreal Engine4… • Bread making • Twitter : @ayuma_x • Blog : https://www.ayumax.net/ C#(WPF) UE4 Unity ActionScript
  3. 3. WPFとは ▪ Windows Presentation Foundation (WPF) は、デスクトップ クライアン ト アプリケーションを作成する UI フレームワークです。 .NET Conf 2019 meetup in AICHI
  4. 4. MVVM ▪ Model-View-ViewModel (MVVM、モデル・ビュー・ビューモデル) は、ソフ トウェアアーキテクチャパターンのひとつ。 ▪ 独自のグラフィカルユーザインタフェース (GUI) を持つアプリケーションを、以下 に述べるようなModel-View-ViewModelの3つの部分に分割して設計・実 装する方法。 Wikipedia .NET Conf 2019 meetup in AICHI
  5. 5. 私のWPFアプリケーション利用例 主に自動車開発における業務用アプリケーションで使用 ▪ 車に載ってるECUの通信モニタアプリ 通信内容を画面に表示(数ms~数十ms間隔の通信) ▪ いろいろ同期とって表示するツール 記録されたいろんなデータ(通信ログや映像)を同期とりながら表示 .NET Conf 2019 meetup in AICHI
  6. 6. WPFと.NET Core 3.0 ▪ .NET Core3.0よりWPFがサポート ▪ .NET Frameworkは4.8で最後 ▪ 今後は.NET Coreが主流 ▪ 仕事ではWPFを使った資産はたくさんある ↓ ▪ これはすぐにでも試さなければ。。。 .NET Conf 2019 meetup in AICHI
  7. 7. .NET Core 3.0 & WPFアプリケーション .NET Conf 2019 meetup in AICHI ▪ 新規で.NET Core 3.0, WPFアプリケーションを作成 ▪ テーマは「ノードベースUI」 ▪ よく使用するライブラリをnugetよりチョイス ▪ Extended.Wpf.Toolkit ▪ Microsoft.Xaml.Behaviors. ▪ ReactiveProperty ▪ gong-wpf-dragdrop
  8. 8. 検証環境(2019/10/04現在) ▪ Visual Studio 2019 Version 16.3.2 ▪ .NET Core 3.0 ▪ .NET Framework 4.7.2 .NET Conf 2019 meetup in AICHI
  9. 9. プロジェクト設定 .NET Conf 2019 meetup in AICHI
  10. 10. Node Calculator .NET Conf 2019 meetup in AICHI ▪ ノードをつなげて計算式を作成するアプリケーション ▪ 足し算と引き算ができます
  11. 11. 作ってみた感想 .NET Conf 2019 meetup in AICHI ▪.NET Frameworkを使って開発するのとほぼ同じ
  12. 12. 出力ファイル(exeとdll)の比較 .NET Conf 2019 meetup in AICHI Core 3.0 Framework 4.7.2 ファイル数 1 + 11個 1 + 14個 ファイル総サイズ 3.44MB 3.42MB Releaseビルドを実施し、.NET Core 3.0と.NET Framework 4.7.2で出力された ファイルを比較
  13. 13. .NET Core 3.0ランタイムを出力ファイルに含める .NET Conf 2019 meetup in AICHI ▪ .csprojに以下の記述を追加する <RuntimeIdentifier>win10-x64</RuntimeIdentifier> App + Runtime App Only ファイル数 1 + 283個 1 + 11個 ファイル総サイズ 139MB 3.44MB
  14. 14. 単一の実行可能ファイル .NET Conf 2019 meetup in AICHI ▪ .csprojに以下の記述を追加する <PublishSingleFile>true</PublishSingleFile> ▪ シンボルファイル(*.pdb)を単一実行ファイルに含める場合 <IncludeSymbolsInSingleFile>true</IncludeSymbolsInSingleFile> RuntimeIdentifierも必須
  15. 15. 単一の実行可能ファイルの展開先 .NET Conf 2019 meetup in AICHI ▪ [User Directory]AppDataLocalTemp.net[App名]に展開される ▪ 初回起動は時間がかかる ▪ 展開は1度しか行われないので2回目以降は早い
  16. 16. 実行ファイルの場所はどこ? .NET Conf 2019 meetup in AICHI ▪ Environment.CurrentDirectory →単一実行ファイルの場所 ▪ Assembly.GetExecutingAssembly().Location →展開後の場所(Temp以下のディレクトリ) ▪ AppDomain.CurrentDomain.BaseDirectory →展開後の場所(Temp以下のディレクトリ) ▪ Environment.GetCommandLineArgs()[0] →展開後の場所(Temp以下のディレクトリ)
  17. 17. 考慮すべき重要なこととして、リフレクションまたは関連する動的機能を使っているアプ リケーションまたはフレームワーク (ASP.NET Core と WPF を含む) では、トリミングする と壊れることがよくあります。 (Microsoft Docsより) アセンブリのトリミング .NET Conf 2019 meetup in AICHI ▪ . csprojに以下の記述を追加する <PublishTrimmed>true</PublishTrimmed> トリミング後 トリミング前 ファイルサイズ 90MB 158MB
  18. 18. まとめ ▪ WPFは.NET Core 3.0でも.NET Frameworkと同じように開発ができる ▪ .NET Coreランタイムを出力ファイルに含めることができる →ユーザーのPCにランタイムをインストールする必要がない ▪ 単一実行ファイルを作ることができるが場所に注意!! ▪ トリミングはファイルサイズを減らすことができるがWPFでは危険!! .NET Conf 2019 meetup in AICHI
  19. 19. 参考資料 ▪ .NET Core 3.0の新機能 https://docs.microsoft.com/ja-jp/dotnet/core/whats-new/dotnet-core-3-0 ▪ 単一実行ファイルについて https://github.com/dotnet/designs/blob/master/accepted/single- file/design.md ▪ Node Calculator(GitHub) https://github.com/ayumax/NodeCalculator .NET Conf 2019 meetup in AICHI

×