SlideShare uma empresa Scribd logo
1 de 21
WPF & Windows Forms
on .NET Core 3.0
Visual Studio 2019 Launch at Kansai
2019/6/21
青柳臣一
@ShinichiAoyagi
自己紹介(1)
 株式会社ディーバ https://divakk.co.jp/
 大阪市中央区(淀屋橋)
 代表取締役 青柳臣一 aoyagi@divakk.co.jp Twitter:ShinichiAoyagi
 C#好き
 マイクロソフトMVPの受賞経験あり
 日本初のMS MVP 6名のうちの1人(2002年)、当時は唯一の.NET系MVP
 2002,2003 .NET / 2004~2007 C# / 2008 ASP.NET(Silverlight)
 書籍
 WindowsPhoneビジネスアプリケーション開発ガイド(2015年12月 秀和システム)
 Xamarinネイティブによるモバイルアプリ開発
C#によるAndroid/iOS UI制御の基礎Xamarinで作るAndroid/iOSアプリ(2017年9月 翔泳社)
自己紹介(2)
 株式会社ディーバ
 オリジナルソフト開発
 給排水設備CAD(C# WPF)
 mupic(Xamarin C# + MonoGame)
 受託開発
 C#
 ASP.NET MVC/WebAPI / ASP.NET Core / WPF / UWP / Xamarin.iOS,Android
 (依頼があればVB、Java、PHP、Ruby、Node.jsなどなど)
 フレックスタイム制(コアタイムなし) / 客先常駐なし / 服装自由 / 在宅
勤務OK
https://bit.ly/2wu25LL
mupic(ミューピック)
 画像から音楽を自動生成し、動画を制作するスマホアプリ
Xamarin C#
DOZAN11(元三木道三)との共同開発
http://mupic.jp/
WPF & Windows Forms on .NET Core 3.0
de:code 2019 DT07「.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ (前編)」 井上章氏
のセッション資料より
Windows Forms
 .NET Framework 1.0(2002年)より
 VB6の延長線上
 画面にコードをガシガシ書く
 画面はGUI(フォームデザイナー)で作成
 不可視のC#/VBのコードになる .Designer.cs/vb
 イベントにコードを書いていく
WPF(Windows Presentation Foundation)
 .NET Framework 3.0(2006年)より
 新規
 WPF 3.0→3.5→4→4.5
 見た目(プレゼンテーション)とコード(ロジック)の分離
 XAML(Extensible Application Markup Language)
 画面定義言語
 XAMLで書けるものはコードでも書ける
 基本的にベクターグラフィックス
 Button → RectangleやPathの組み合わせ
 データバインディング
なぜ.NET Core?
 .NET Frameworkは4.xで終了
 Fxは今後はメンテナンスのみ
 すでに.NET Core 3.0に注力(らしい)
 次は.NET 5
 高パフォーマンス
 .NET Core 2.0→2.1
 Performance Improvements in .NET Core 2.1
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/
 Performance Improvements in .NET Core 3.0
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/
 .NET Framework 4.8のJITはCore 2.1ベース
 「JIT コンパイラの機能強化。 .NET Framework 4.8 の Just-In-Time (JIT) コンパイラは、.NET Core 2.1 の
JIT コンパイラが基になっていいます。 .NET Core 2.1 の JIT コンパイラに対して行われた最適化の多くと
すべてのバグ修正が、.NET Framework 4.8 の JIT コンパイラに含まれます。」
https://docs.microsoft.com/ja-jp/dotnet/framework/whats-new/#v48
注意
 .NET Core 3.0はまだPreview 6です。
(TextBox系で謎のエラーが発生して困ってる。。。)
開発環境
 Visual Studio 2019 16.2.0 Preview2をインストール(後述)
 Communityでも可(のはず)
 .NET Core SDK 3.0 Previewをインストール
 https://dotnet.microsoft.com/
 SDK入れるとVSのテンプレートも増える
 入ってるバージョンの確認
 コマンドプロンプトで
dotnet --list-sdks
プロジェクトの作成
 コマンド
dotnet new wpf
 Visual Studio
 安定版の最新16.1.3はダメ
 Visual Studio Preview
https://visualstudio.microsoft.com/ja/vs/preview/
16.2.0 Preview2だとOK
[ツール]-[オプション]の[プロジェクトおよびソリューション]
の[.NET Core]の"use preview versions of the .NET Core SDK"
すんごい発展途上
 WPFのデザイナーあるの?
 まだないよ
↓
できたよ(2019/5)
(けどまだWPFのみみたい)
 Self-contained deployment(SCD)作れる?
 VSでは無理。コマンドラインでやってね
↓
きっとVSで「発行」できるようになるんだろうなぁ
WPF on .NET Core 3.0の互換性(1)
 .NET Framework用ライブラリ
 結構動く
 警告は出る
 邪魔なら「警告の抑制」に「NU1701」を追加
 Extended WPF Toolkit
 MahApps.MetroやMaterialDesignThemes
 問題なく使えそう
 GrapCityの人がいろいろ書いてた(英語)
 https://www.grapecity.com/blogs/using-the-dot-net-core-3-0-preview-with-wpf
WPF on .NET Core 3.0の互換性(2)
 AnyCPU以外
 x64/x86ともに作れる
 hostfxr.dllがないというエラーが出るとき
 たぶんx64/x86のランタイム/SDKが入ってない
 https://dotnet.microsoft.com/ からインストール
ん?.NET Framework用のライブラリが動く?!
 うまいことやってくれてるので動きます
 Bait and switch(おとり商法)
 .NETではビルド時に使用するDLLが特定される
 と、いうのが前提だけどインターフェース(クラスやメソッド)がまったく同じ
なら実装時に差し替えちゃってもいいよね?
 もともとXamarinやNuGetなどで普通に使われてる技術
 けど、100%じゃない
 メソッドはあってもNotImplementだったりすることも
Windows APIが足らない
 .NET Coreはマルチプラットフォーム
 Windows固有のAPI(クラス・メソッド)がない
 Windows 互換機能パック
 NuGet: Microsoft.Windows.Compatibility
 https://docs.microsoft.com/ja-jp/dotnet/core/porting/windows-compat-pack
 Registry, SqlClient, EventLog, Drawing, Pipe, などなど
 Linux/Macでもレジストリーを再現してくれる
↓
ただし、Linux/Macでは動作しないものもある(実行時例外)
↑
とりあえずWPFとWindows Formsでは関係ない(Windowsでしか動かないので)
未対応が決定済みのもの
 .NET Core で使用できない .NET Framework テクノロジ
 https://docs.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-unavailable
 AppDomain
 CAS(コードアクセスセキュリティ)
 あきらめろ
 WCF
 リモーティング
 もしかしたらある?
.NET Portability Analyzer
 https://docs.microsoft.com/ja-jp/dotnet/standard/analyzers/portability-analyzer
 Visual Studio拡張
 互換性に問題がありそうなところを指摘してくれる
 あくまでクラス・プロパティ・メソッドなどから判断している
だけ
.NET Coreのうれしいところ その2
 Side by Side
 フォルダーの中に必要なものをまるっと入れればそれでいい
 WPFとWindows Formsも同じ
 .NET Coreが入っていないWindowsにexe1つでデプロイするこ
とも可能
デプロイ方式
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/
 フレームワークに依存する展開
(Framework-dependent deployment / FDD)
 dotnet public
 自己完結型の展開
(Self-contained deployment / SCD)
 .csprojに
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
を追加(もしくは↓のように「-r win10-x64」を指定)
 dotnet publish -r win10-x64 --self-contained true /p:PublishSingleFile=true
ご清聴ありがとうございました。

Mais conteúdo relacionado

Mais procurados

~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーションAkira Inoue
 
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacTomohiro Suzuki
 
Visual Studio 2019 の個人的なお勧め機能(発表時点)
Visual Studio 2019 の個人的なお勧め機能(発表時点)Visual Studio 2019 の個人的なお勧め機能(発表時点)
Visual Studio 2019 の個人的なお勧め機能(発表時点)一希 大田
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線Akira Inoue
 
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発Osamu Monoe
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windowsKazushi Kamegawa
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCodeYuki Igarashi
 
これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説Saki Homma
 
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-Saki Homma
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめYuta Matsumura
 
Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Akira Inoue
 
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~Saki Homma
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素Akira Inoue
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方Yuta Matsumura
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?Yuta Matsumura
 
WPF on .NET Core 3.1 で Windows 10 アプリ開発
WPF on .NET Core 3.1 で Windows 10 アプリ開発WPF on .NET Core 3.1 で Windows 10 アプリ開発
WPF on .NET Core 3.1 で Windows 10 アプリ開発一希 大田
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot ArmMasuda Tomoaki
 

Mais procurados (20)

~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
~ アプリ開発に新たな息吹を ~ クラウドが当たり前の今こそ知っておきたい Azure & Visual Studio コラボレーション
 
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for Mac
 
Visual Studio 2019 の個人的なお勧め機能(発表時点)
Visual Studio 2019 の個人的なお勧め機能(発表時点)Visual Studio 2019 の個人的なお勧め機能(発表時点)
Visual Studio 2019 の個人的なお勧め機能(発表時点)
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説
 
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
 
Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.Empower every App and every Developer in a Mobile-first, Cloud-first World.
Empower every App and every Developer in a Mobile-first, Cloud-first World.
 
Team development
Team developmentTeam development
Team development
 
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
 
WPF on .NET Core 3.1 で Windows 10 アプリ開発
WPF on .NET Core 3.1 で Windows 10 アプリ開発WPF on .NET Core 3.1 で Windows 10 アプリ開発
WPF on .NET Core 3.1 で Windows 10 アプリ開発
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 

Semelhante a WPF & Windows Forms on .NET Core 3.0

.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについてTakuhiro Fukumori
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートAkira Inoue
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用de:code 2017
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方Akihiro Kitada
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜日本マイクロソフト株式会社
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来decode2016
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能Takayoshi Tanaka
 
Asp.net core mvc の core な話
Asp.net core mvc の core な話Asp.net core mvc の core な話
Asp.net core mvc の core な話Masuda Tomoaki
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能Takayoshi Tanaka
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET するm ishizaki
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Akira Inoue
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要Developers Summit
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発m ishizaki
 
WPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめないWPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめないm ishizaki
 

Semelhante a WPF & Windows Forms on .NET Core 3.0 (20)

.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて.NET Conf 2019 のデスクトップアプリに関するセッションについて
.NET Conf 2019 のデスクトップアプリに関するセッションについて
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
 
20021007
2002100720021007
20021007
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Asp.net core mvc の core な話
Asp.net core mvc の core な話Asp.net core mvc の core な話
Asp.net core mvc の core な話
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要18-D-1 .Net Framework 4 概要
18-D-1 .Net Framework 4 概要
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
WPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめないWPF .NET Core でも XAML デザイナをあきらめない
WPF .NET Core でも XAML デザイナをあきらめない
 

Mais de ShinichiAoyagi

【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -ShinichiAoyagi
 
Visual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinVisual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinShinichiAoyagi
 
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれXamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれShinichiAoyagi
 
うるう秒とタイムゾーン
うるう秒とタイムゾーンうるう秒とタイムゾーン
うるう秒とタイムゾーンShinichiAoyagi
 
LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLShinichiAoyagi
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・ShinichiAoyagi
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろShinichiAoyagi
 
Windows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようWindows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようShinichiAoyagi
 
WindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるWindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるShinichiAoyagi
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~ShinichiAoyagi
 
メトロスタイルアプリ開発 最初の一歩
メトロスタイルアプリ開発最初の一歩メトロスタイルアプリ開発最初の一歩
メトロスタイルアプリ開発 最初の一歩ShinichiAoyagi
 
メトロスタイルってなに?
メトロスタイルってなに?メトロスタイルってなに?
メトロスタイルってなに?ShinichiAoyagi
 
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発ShinichiAoyagi
 

Mais de ShinichiAoyagi (15)

【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
 
Visual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinVisual Studio 2015 + Xamarin
Visual Studio 2015 + Xamarin
 
Xamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれXamarin+MVVMCross のあれこれ
Xamarin+MVVMCross のあれこれ
 
うるう秒とタイムゾーン
うるう秒とタイムゾーンうるう秒とタイムゾーン
うるう秒とタイムゾーン
 
XAML 入門
XAML 入門XAML 入門
XAML 入門
 
LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XML
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
 
LINQ概要
LINQ概要LINQ概要
LINQ概要
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろ
 
Windows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようWindows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみよう
 
WindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるWindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみる
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
 
メトロスタイルアプリ開発 最初の一歩
メトロスタイルアプリ開発最初の一歩メトロスタイルアプリ開発最初の一歩
メトロスタイルアプリ開発 最初の一歩
 
メトロスタイルってなに?
メトロスタイルってなに?メトロスタイルってなに?
メトロスタイルってなに?
 
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発ついに日本上陸!Windows Phone 7.5 アプリケーション開発
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
 

Último

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Último (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

WPF & Windows Forms on .NET Core 3.0

  • 1. WPF & Windows Forms on .NET Core 3.0 Visual Studio 2019 Launch at Kansai 2019/6/21 青柳臣一 @ShinichiAoyagi
  • 2. 自己紹介(1)  株式会社ディーバ https://divakk.co.jp/  大阪市中央区(淀屋橋)  代表取締役 青柳臣一 aoyagi@divakk.co.jp Twitter:ShinichiAoyagi  C#好き  マイクロソフトMVPの受賞経験あり  日本初のMS MVP 6名のうちの1人(2002年)、当時は唯一の.NET系MVP  2002,2003 .NET / 2004~2007 C# / 2008 ASP.NET(Silverlight)  書籍  WindowsPhoneビジネスアプリケーション開発ガイド(2015年12月 秀和システム)  Xamarinネイティブによるモバイルアプリ開発 C#によるAndroid/iOS UI制御の基礎Xamarinで作るAndroid/iOSアプリ(2017年9月 翔泳社)
  • 3. 自己紹介(2)  株式会社ディーバ  オリジナルソフト開発  給排水設備CAD(C# WPF)  mupic(Xamarin C# + MonoGame)  受託開発  C#  ASP.NET MVC/WebAPI / ASP.NET Core / WPF / UWP / Xamarin.iOS,Android  (依頼があればVB、Java、PHP、Ruby、Node.jsなどなど)  フレックスタイム制(コアタイムなし) / 客先常駐なし / 服装自由 / 在宅 勤務OK https://bit.ly/2wu25LL
  • 5. WPF & Windows Forms on .NET Core 3.0 de:code 2019 DT07「.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ (前編)」 井上章氏 のセッション資料より
  • 6. Windows Forms  .NET Framework 1.0(2002年)より  VB6の延長線上  画面にコードをガシガシ書く  画面はGUI(フォームデザイナー)で作成  不可視のC#/VBのコードになる .Designer.cs/vb  イベントにコードを書いていく
  • 7. WPF(Windows Presentation Foundation)  .NET Framework 3.0(2006年)より  新規  WPF 3.0→3.5→4→4.5  見た目(プレゼンテーション)とコード(ロジック)の分離  XAML(Extensible Application Markup Language)  画面定義言語  XAMLで書けるものはコードでも書ける  基本的にベクターグラフィックス  Button → RectangleやPathの組み合わせ  データバインディング
  • 8. なぜ.NET Core?  .NET Frameworkは4.xで終了  Fxは今後はメンテナンスのみ  すでに.NET Core 3.0に注力(らしい)  次は.NET 5  高パフォーマンス  .NET Core 2.0→2.1  Performance Improvements in .NET Core 2.1 https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/  Performance Improvements in .NET Core 3.0 https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/  .NET Framework 4.8のJITはCore 2.1ベース  「JIT コンパイラの機能強化。 .NET Framework 4.8 の Just-In-Time (JIT) コンパイラは、.NET Core 2.1 の JIT コンパイラが基になっていいます。 .NET Core 2.1 の JIT コンパイラに対して行われた最適化の多くと すべてのバグ修正が、.NET Framework 4.8 の JIT コンパイラに含まれます。」 https://docs.microsoft.com/ja-jp/dotnet/framework/whats-new/#v48
  • 9. 注意  .NET Core 3.0はまだPreview 6です。 (TextBox系で謎のエラーが発生して困ってる。。。)
  • 10. 開発環境  Visual Studio 2019 16.2.0 Preview2をインストール(後述)  Communityでも可(のはず)  .NET Core SDK 3.0 Previewをインストール  https://dotnet.microsoft.com/  SDK入れるとVSのテンプレートも増える  入ってるバージョンの確認  コマンドプロンプトで dotnet --list-sdks
  • 11. プロジェクトの作成  コマンド dotnet new wpf  Visual Studio  安定版の最新16.1.3はダメ  Visual Studio Preview https://visualstudio.microsoft.com/ja/vs/preview/ 16.2.0 Preview2だとOK [ツール]-[オプション]の[プロジェクトおよびソリューション] の[.NET Core]の"use preview versions of the .NET Core SDK"
  • 12. すんごい発展途上  WPFのデザイナーあるの?  まだないよ ↓ できたよ(2019/5) (けどまだWPFのみみたい)  Self-contained deployment(SCD)作れる?  VSでは無理。コマンドラインでやってね ↓ きっとVSで「発行」できるようになるんだろうなぁ
  • 13. WPF on .NET Core 3.0の互換性(1)  .NET Framework用ライブラリ  結構動く  警告は出る  邪魔なら「警告の抑制」に「NU1701」を追加  Extended WPF Toolkit  MahApps.MetroやMaterialDesignThemes  問題なく使えそう  GrapCityの人がいろいろ書いてた(英語)  https://www.grapecity.com/blogs/using-the-dot-net-core-3-0-preview-with-wpf
  • 14. WPF on .NET Core 3.0の互換性(2)  AnyCPU以外  x64/x86ともに作れる  hostfxr.dllがないというエラーが出るとき  たぶんx64/x86のランタイム/SDKが入ってない  https://dotnet.microsoft.com/ からインストール
  • 15. ん?.NET Framework用のライブラリが動く?!  うまいことやってくれてるので動きます  Bait and switch(おとり商法)  .NETではビルド時に使用するDLLが特定される  と、いうのが前提だけどインターフェース(クラスやメソッド)がまったく同じ なら実装時に差し替えちゃってもいいよね?  もともとXamarinやNuGetなどで普通に使われてる技術  けど、100%じゃない  メソッドはあってもNotImplementだったりすることも
  • 16. Windows APIが足らない  .NET Coreはマルチプラットフォーム  Windows固有のAPI(クラス・メソッド)がない  Windows 互換機能パック  NuGet: Microsoft.Windows.Compatibility  https://docs.microsoft.com/ja-jp/dotnet/core/porting/windows-compat-pack  Registry, SqlClient, EventLog, Drawing, Pipe, などなど  Linux/Macでもレジストリーを再現してくれる ↓ ただし、Linux/Macでは動作しないものもある(実行時例外) ↑ とりあえずWPFとWindows Formsでは関係ない(Windowsでしか動かないので)
  • 17. 未対応が決定済みのもの  .NET Core で使用できない .NET Framework テクノロジ  https://docs.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-unavailable  AppDomain  CAS(コードアクセスセキュリティ)  あきらめろ  WCF  リモーティング  もしかしたらある?
  • 18. .NET Portability Analyzer  https://docs.microsoft.com/ja-jp/dotnet/standard/analyzers/portability-analyzer  Visual Studio拡張  互換性に問題がありそうなところを指摘してくれる  あくまでクラス・プロパティ・メソッドなどから判断している だけ
  • 19. .NET Coreのうれしいところ その2  Side by Side  フォルダーの中に必要なものをまるっと入れればそれでいい  WPFとWindows Formsも同じ  .NET Coreが入っていないWindowsにexe1つでデプロイするこ とも可能
  • 20. デプロイ方式 https://docs.microsoft.com/ja-jp/dotnet/core/deploying/  フレームワークに依存する展開 (Framework-dependent deployment / FDD)  dotnet public  自己完結型の展開 (Self-contained deployment / SCD)  .csprojに <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers> を追加(もしくは↓のように「-r win10-x64」を指定)  dotnet publish -r win10-x64 --self-contained true /p:PublishSingleFile=true