.NET Conf in Tokyo 2019に参加してきました #dotnetconf
- What’s New in .NET Core 3.0 and Visual Studio 2019 for .NET developers
- .NET の今と今後に思うこと (Tokyo Ver.)
- 資料
- Windows DNA?
- One ASP.NET
- .NET オープンソースの道のり
- .NET foundation
- .NET Application Models(.NET Core 3.0)
- .NET Framework の今後について
- Visual Studio App Center for .NET Core 3.0 Windows Apps
- Windows Forms とWPFのオープンソースモメンタム
- APS.NET Core 3.0 Blazor
- Programinng
- Machine Learnig
- ML.NET
- Introducing .NET 5
- .NET スケジュール
- まとめ
- .NET Core 3.0 + Windows 10 で WPF 開発
- Inside FastEnum
- C# 8.0 非同期ストリーム
- Unity Trackの資料
- 他の方の感想・まとめ
2019/10/27(日)に開催された .NET Conf in Tokyo 2019の参加レポートです。遅っ
危うく前日の10/26(土)に品川に行くところだった。
.NET関連は初めて参加した。
.NET Core 3.0だからLinux中心か?と思ってたぐらい.NETは疎い。
Visual Studio 2019と.NET Core 3.0が普通の組み合わせなのね。
What’s New in .NET Core 3.0 and Visual Studio 2019 for .NET developers
Steve Carroll
資料
.NET Growth Continues
スポンサー
.NET FoundationのコーポレートスポンサーにAWSが参加
Miscroservice
ASP.NET Core 3.0
- gRPC
- Woker Service
- WebAPI + Identity
C#8.0
- null許容参照型
- 非同期ストリーム
- 範囲アクセス
- パターン ベースな using
- readonly 関数メンバー?
- using ステートメントの改善
Xamarin
Blazor
ML.NET
.NET 5
.NET Framework、.NET Core、Xamarinと3つに別れていたランタイムとライブラリが.NETで一本化する
.NET Schedule
バージョン | リリース予定 | LTS |
---|---|---|
.NET Core 3.1 | Dec 2019 | LTS |
.NET 5.0 | Nov 2020 | |
.NET 6.0 | 2021 | LTS |
.NET 7.0 | 2022 | |
.NET 8.0 | 2023 | LTS |
.NET Core 3.1が2019/11から2019/12に延びたらしい。 2年ごとの偶数バージョンがLTSになるのね。
Visual Studio 2019 for .NET devs
- Visual StudioとVisual Sutdio Code で Live Share
- ソース画面の共有
- 定義元へのジャンプ
- co-editing
- co-debugging
Viusal StudioとVisual Studio CodeでLive Shareで共有。
将来Language Srever Protocolのように、エディタ、IDEで跨って共有できるようにプロトコルが できたら面白いんだけどな。
Code fixes and refactorings
変数を検索したに出てくるウインドウでread(参照)かwirte(更新)かがわかり、kindカラムでフィルターもできる。 Visual Studio 2019 リリース ノート より
正規表現もIntelliSenseのリファクタリングの対象
Visual Studio 2019に正規表現の補助機能が増えてた話Clrl + .
usingしなくても補完の候補にでるし、選択したらusingが補完される。
メソッドの引数のnullチェックを自動生成
いいようにリファクタリングしてくれる。 以下にアニメーション、動画があってわかりやすい。- Visual Studio で一番費用対効果の高いショートカット「Ctrl + .」
- Visual Studio 2019 Preview .NET Productivity
configure
.editorconfigをVisual Studio上から生成
タブとスペースの宗教戦争の抑止
Visual Studioのデモを生で見たの初めてだ。
動かしてるのを見るとそうやって使うのねと感心する。
.NET の今と今後に思うこと (Tokyo Ver.)
Akira Inoue (@chack411)
資料
Windows DNA?
https://www.itmedia.co.jp/help/howto/win/win2000/0007special/complus_vb/chap1/08.html
.NET Frameworkが出る2002年よりも前。com中心の世界。
One ASP.NET
コンパクトにプラがブルにOSに依存しないようにする流れ
.NET オープンソースの道のり
- 2008 ASP.NET MVC
- 2014 Apr. Roslyn
- 2014 Nov. .NET core
.NET foundation
- 今年はawsがコーポレートスポンサーとして参加
.NET Application Models(.NET Core 3.0)
- .NET Core クロスプラットフォーム Linux、Windows、Mac
- WPF、Win Formsが.NET Core 3.0で作れるようになった。 ただし、Windowsプラットフォームのみ。
.NET Framework の今後について
- .NET Framework 4.8が最後のメジャーバージョンとなる予定 マイナーバージョンは変わる可能性はある。
- サポートライフサイクルポリシーの変更はなし インストール先のWindows OSと同じライフサイクルポリシーと同じ
- .NET Coreが主流となってきた
- 既存は、.NET Frameworkベースはそのまま利用可能
- 新規開発の場合は.NET Coreを推奨
Visual Studio App Center for .NET Core 3.0 Windows Apps
WPF、Win Fromsなどデスクトップアプリの機能は停滞していた。 裏では、.NET Core側へ移行していた
App Center
App Centerで配布用のアプリの作成、配布できる 配布対象グループの人にメールが届き、使う人は、App Centerからダウンロードして、インストールできるWPF、Win Formsでcraashレポート、テレメトリーがとれるようになった。
実行環境、バージョンなどが取れるようになった
Windows Forms とWPFのオープンソースモメンタム
プルリクが増加、今まで見えなかったバグの見るかと対応の速さもOSS化もメリット
APS.NET Core 3.0 Blazor
ブレザー
- C#で作ったWebAssemblyをブラウザで動作させる
- JavaScript(Angular、React、Vue)を知らなくてもOK
- 全部C#で作れる
rezor構文
2種類
Programinng
アルゴリズムと入力から答えを求める
Machine Learnig
答えと入力からアルゴリズムを求める
ML.NET
- ML.NET Model Builder
- AutoMLである程度最適なアルゴリズムを検出してくれる
- 生成されたモデルもzip形式でアプリケーションに組み込まれる
- 例 感情分析
Introducing .NET 5
- 別れていた実装部分を統一
- .NET Core/Xamarionのアプリケーションモデルは全サポート
- .NET Frameworkからは.NET 5では含まれないアプリケーションモデルもある
.NET スケジュール
- .NET Core 3.1 Dec 2019
NovからDecにずれ込んでいる
まとめ
この10年はクラウド革新・・・今後は?
- .NET Frameworkは、Windowsしか動けない巨大なフレームワーク
- 細分化して、OSへの依存をなくしていったのが.NET Core。
技術を塩漬けするリスクと最新技術を使う意味
- 今使えるから塩漬けすると、5年後、10年後にアップデートすると大変
- 常に最新化するも大変だが、CI/CD/DevOpsの環境を整えて、最新化していく 最低でもLTS版でアップデートする 10年後も最新版を保っていく
.NETを使い続けたいなら"今"に目を向けよう
.NET はOSS、コミュニティベースで開発している、開発に参加することで、エコシステムがより盛り上がる
Life runs on Code
It's agrate time to be .NET Developer
.NET Core 3.0 + Windows 10 で WPF 開発
Kazuki Ota (@okazuki)
資料
今日のゴール
WPF
- Windows Presentation Foudation
- 3.0から登場
- イマイチ流行った印象がない
- WinFormsが強い
- Visual StudioがWPFで作られている
- XAMLベース
- 見た目を柔軟にいじれる
.NETの今後 WPF的には
- .NET Frameworkで今後考えられること
- 対応しないライブラリの登場
- C#の最新言語仕様に対応しきれない
.NET Coreへいくメリット
- ランタイム込みでデプロイにも対応(バージョン問題を解決できる)
- シングルバイナリ(EXE)での提供
.NET Coreへいくデメリット
- サポートライフサイクルが短い
- Windows組み込みではないので、ランタイムの更新は考えないと行けない セキュリティアップデートなど
.NET Frameworkから.NET Coreへ移行
移行ドキュメントを読め
.NET Frameworkからの移行時の苦しみ
互換性があるかわからない
→ .NET Portability Apanalyzerがあるよ! Visual Studioの拡張機能突破してもPlatformNotSupportedException
→ Microsoft.DotNet.Analyzers.Compatibilityがあるよ! 現状プレリリース版。 NuGetはプレビュー版を選択できるようにする- Blend SDK(Behavior)がディスコン
→ Microsoft.Xaml.Behavios.Wpfを使おう
Windows 10対応
サポートされているWindows 10 API
MSIX
Visual Sutdioにパッケージ化する機能がある Windowsアプリケーションパッケージプロジェクト
更新
- 次回起動時にチェックして、次々回時に更新するのがデフォルトの設定
- 更新しないと起動しないようにも設定できる
XMAL Islands
https://docs.microsoft.com/ja-jp/windows/apps/desktop/modernize/xaml-islands
参考
Inside FastEnum
Takaaki Suzuki (@xin9le)
資料
高速化
今日からできる!簡単.NET高速化 Tips https://www.slideshare.net/xin9le/dotnetperformancetips-170268354
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する https://www.slideshare.net/neuecc/cedec-2018-c-c
速いものを使う
- NET Core
- ASP.NET Core
Enum is too late
FastEnum の方が20万倍〜30万倍速い
Static Type Caching
- 静的コンスタラクタ 一度だけ動くことが保証されるので、排他不要
Unsafe.As
同じメモリ領域を別の型で参照することができる Cのポインターのキャストみたいだな。
感想
性能改善はナノ秒のオーダーなのか。恐れ入りました。
いつか言ってみたいセリフ。
「会社ではなく世界に貢献しているです。」
「早すぎて測定できない」
C# 8.0 非同期ストリーム
Nobuyuki Iwanaga (@ufcpp)
資料
- C# 8.0 非同期ストリーム
非同期ストリーム
C# 8.0 再帰パターン、switch式などプレビューから安定してる機能
https://www.slideshare.net/ufcpp/c-80-preview-in-visual-studio-2019-160C# 8.0 null許容参照型
https://www.slideshare.net/ufcpp/c-80-null
C# 8.0の残りの大物が非同期ストリーム。それを今日説明する。
「複数のデータ」という点が非同期メソッドから非同期ストリームへの変更点
- awaitとyieldの混在:複数のデータを非同期に返す
- await foreach:複数のデータを非同期に受け取る
非同期ストリームの例 gRPC
gRPCのサンプルのリポジトリ https://github.com/ufcpp/UfcppSample/tree/master/Demo/2019/NetCoreGrpc>
proto定義 Microsoft独自なことをしておらず、普通のProtocol Buffers
C# 8.0の言語構文・ライブラリ的な説明
- 非同期メソッドの拡張
- awaitとyieldの混在
- async修飾子を付ける
- 戻り値はIAsyncEnumerable
型
- 非同期foreach
- await foreach (var x in asyncStream)
- IAsyncEnumerable
(と同じ名前のメソッドを持つ型)を受け付ける
- (おまけで)非同期using
- await using (var x = asyncResource)
- IAsyncDisposable (と同じ名前のメソッドを持つ型)を受け付ける
要求されるフレームワーク
- .NET Standard2.1/.NET 3.0では標準提供 最近のMSの方針としては基本的に古いバージョンへのバックポートはしない。 非同期ストリームだけは例外。下位バージョンにもNuGetパッケージで提供
Task周りの歴史
Taskクラス初期導入から非同期ストリームまでC#がおかれている当時の
背景も踏まえての説明。
Unity Trackの資料
Clean Architecture for Unity
https://www.slideshare.net/monry84/clean-architecture-for-unity
MagicOnion〜C#でゲームサーバを開発しよう〜
https://www.slideshare.net/torisoup/magiconionc
Riderはいいぞ!
https://speakerdeck.com/ryotamurohoshi/riderhaiizo
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
https://learning.unity3d.jp/3973/
講演動画もあり。
他の方の感想・まとめ
登壇者ブログ
.NET Core 3.0 + Windows 10 で WPF 開発 というタイトルで .NET Conf 2019 で登壇してきました
マイクロソフト様で開催された「.NET Conf in Tokyo 2019」でRiderの話をしてきた #dotnetconf
参加者グログ
- 【勉強会レポ】: .NET Conf in Tokyo 2019 (Unity Track)
- .NET Conf in Tokyo 2019
- .NET Conf in Tokyo 2019に行ってきました #dotnetconf #dotnetconfunity
- .NET Conf in Tokyo 2019に行ってきました
- .NET Conf in Tokyo 2019 に参加してきました #dotnetconf
- .NET Conf in Tokyo 2019に参加してきた