More Related Content Similar to .NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019 (20) More from Hiroyuki Mori (14) .NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi20192. 自己紹介
• 森 博之(もり ひろゆき)
• MS開発技術を専門としたフリーランスエンジニア
• Microsoft MVP – Developer Technologies
• ブログ:もり ひろゆきの日々是勉強
https://moriblog.kit-eng.com
• Twitter
• Qiita https://qiita.com/hiroyuki_mori
5. .NET Core
• クロスプラットフォームで利用できるアプリの開発プラットフォーム
• Windows / Linux / macOSで動作する
• DeviceやCloud, IoTなど幅広い用途のアプリ開発が行える
• .NET Coreに含まれる軽量なコマンドラインツールを使用して容易に開発を行うこと
ができる
• .NET Standardを利用することで.NET Framework, Xamarin, Monoなどの環境と互換性
のあるライブラリを作成することができる
• ランライムなしによるアプリの配置のシナリオをサポート
• C#/Visual Basic/F#などで開発できる
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. FDDとSCD
• Framework dependent deployment
• 実行マシンにインストールされている.NET Coreに依存するモジュール配置
• 必要なファイルは実行に必要最低限のモジュールのみ(.NET Coreは不要)
• Self contained deployment
• 実行マシンにインストールされてり.NET Coreに依存しないモジュール配置
• SCDにはプラットフォーム毎の実行ファイルが含まれる
• 実行に必要なモジュールはすべて組み込むため、.NET Coreは不要
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. 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/
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. 準備
• .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. 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シート
で作成する。
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を追加
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