O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019

921 visualizações

Publicada em

.NET Core 3.0で追加されたClient Application Frameworkと.NET Frameworkからのマイグレーションについて

Publicada em: Engenharia
  • Seja o primeiro a comentar

.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019

  1. 1. .NET Coreで見る Client Apps 森 博之(Hiroyuki Mori) (@hiroyuki_mori) Microsoft MVP – Developer technologies
  2. 2. 自己紹介 • 森 博之(もり ひろゆき) • MS開発技術を専門としたフリーランスエンジニア • Microsoft MVP – Developer Technologies • ブログ:もり ひろゆきの日々是勉強 https://moriblog.kit-eng.com • Twitter • Qiita https://qiita.com/hiroyuki_mori
  3. 3. Agenda • .NET Core概要 • .NET CoreとクライアントApps • 既存アプリのマイグレーション • Open SourceとClient Apps
  4. 4. .NET Core 概要
  5. 5. .NET Core • クロスプラットフォームで利用できるアプリの開発プラットフォーム • Windows / Linux / macOSで動作する • DeviceやCloud, IoTなど幅広い用途のアプリ開発が行える • .NET Coreに含まれる軽量なコマンドラインツールを使用して容易に開発を行うこと ができる • .NET Standardを利用することで.NET Framework, Xamarin, Monoなどの環境と互換性 のあるライブラリを作成することができる • ランライムなしによるアプリの配置のシナリオをサポート • C#/Visual Basic/F#などで開発できる
  6. 6. .NET Coreの起動 • コマンドラインツール:dotnet (通称.NET CLI) • dotnet – Windowsではdotnet.exe。アプリケーションのランチャー • dotnet.dll - .NET CLI本体。 Githubのdotnet/cliをビルドするとこれが できる • アプリ本体: dotnet publishすることで生成される実行可能ファイル • corehost: .NET Coreのランチャー。Windowsの場合はcorehost.exe • hostfxr: Corehostの実体。 Windowsの場合はhostfxr.dll • Hostpolicy: CoreCLR ホスティングAPIの各種初期化を行う。 • ICLRRuntimeHost2: CoreCLRのHosting APIの実体 corehost • hostfxr • hostpolicy CoreCLR • HostingAPI • ICLRRuntimeHost2 • 実行エンジン dotnet / app
  7. 7. FDDとSCD • Framework dependent deployment • 実行マシンにインストールされている.NET Coreに依存するモジュール配置 • 必要なファイルは実行に必要最低限のモジュールのみ(.NET Coreは不要) • Self contained deployment • 実行マシンにインストールされてり.NET Coreに依存しないモジュール配置 • SCDにはプラットフォーム毎の実行ファイルが含まれる • 実行に必要なモジュールはすべて組み込むため、.NET Coreは不要
  8. 8. .NET CoreとクライアントApps
  9. 9. .NET Core 3 and Open Sourcing Windows Desktop Frameworks • Windows Desktop Comes to .NET Core • Windows Forms / WPFなどのクライアントアプリフレームワーク • モダンなコントロール • XAML Islandsを通じたFluentスタイルのWindows UI XAML Library(WinUI) • .NET Core 3のEntity Framework 6をサポート • SCDによる配布も可能
  10. 10. WPF, Windows Forms and WinUI Open Sourced! • というワケでオープンソース化されています。 • 現状は限定的な公開。今後数か月のうちに追加でいろいろと出てくる模様。 • https://blogs.msdn.microsoft.com/dotnet/2018/12/04/announcing-net-core-3-preview-1-and-open-sourcing-windows-desktop-frameworks/
  11. 11. 既存アプリのマイグレーション
  12. 12. サードパーティによる対応が進む。 • Winforms/WPFをOpen Source化 →.NET Foundationの管理下へ →SponserやSteering Groupによるサポートも進む • Red Hat, JetBrains, Google, Unity, Microsoft, Samsung • 新たにPivotal, Progress Telerik, Insight が加わった • https://dotnetfoundation.org/blog/2018/12/04/announcing-net-foundation-open- membership
  13. 13. 準備 • .NET Core SDK 3.0 Daily build • https://aka.ms/netcore3sdk • Visual Studio 2017 Update 15.8以上 • https://visualstudio.microsoft.com/downloads/ • .NETデスクトップ開発/.NET Core開発のワークロードを選択 • 個別インストールで以下を追加 • .NET Framework 4.7.2開発ツール • .NET Core 2.1開発ツール
  14. 14. Portability Analyzer • 使用されているAPIが.NET Core 3.0で利用できるか確認するツール • https://blogs.msdn.microsoft.com/dotnet/2018/08/08/are-your-windows-forms-and-wpf-applications-ready-for-net-core-3-0/ • https://github.com/microsoft/dotnet-apiport-ui • 現在サポートされていないAPIの特定や.NET Core 3.0との互換性をExcelシート で作成する。
  15. 15. Demonstration https://github.com/hiroyukimori/buridemo2019
  16. 16. .NET Core 3.0アプリの作成 • みなさんご存じ… • dotnet new wpf –o MyWPFApp • dotnet new winforms –o MyWinFormsApp
  17. 17. 元プロジェクトにある既存ファイルを追加 • 元プロジェクト内にある既存のソースコード群をリンクとして追加する
  18. 18. 既存ファイルの追加 • ビルドアクションを「Resouces」とした画像がある場合 • .NET Coreではリソースファイル(*.resx)に変更になった • 特にローカライズするアプリの場合は注意 • https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/localization?view=aspnetcore-2.2 • 「埋め込みリソース」または「Content」に変更 • AssemblyInfoやApp.Manifestは手動で追加 • .NET Coreで利用できないAPIでWindows.Compositionとして参照できる場合、 Windows.Compatibility Packを追加
  19. 19. Open SourceとClient Apps
  20. 20. 現在公開中のソース群 • WindowsForms • https://github.com/dotnet/winforms • WPF • https://github.com/dotnet/wpf
  21. 21. その他 • Corefx(Foundation class libraries for .NET Core) • https://github.com/dotnet/corefx • Coreclr(Runtime for .NET Core) • https://github.com/dotnet/coreclr • Standard(.NET Standard) • https://github.com/dotnet/standard • .NET Core SDK • https://github.com/dotnet/core-sdk
  22. 22. 参考:System.Xaml • XAML2009(標準規格)の実装 • WPFマークアップコンパイルされていなければ、XAML2009の機能は利用できる。 • WPFで利用されている、いくつかのクラスはこの中にある。 • ただし、BAMLなどはWPF独自のため利用できない
  23. 23. まとめ • もうすぐ来るぞ、.NET Core 3.0 • もうすぐ来るぞ、Winforms/WPFのOpen Source化 • もうすぐ来るぞ、サードパーティの.NET Core 3.0対応。¥
  24. 24. ご清聴 ありがとうございました。

×