Submit Search
Upload
Modern .NET
•
Download as PPTX, PDF
•
9 likes
•
3,066 views
信之 岩永
Follow
2015/8/8 C#UG&codeseek勉強会 「Visual Studio 2015リリース記念」 にて発表
Read less
Read more
Technology
Report
Share
Report
Share
1 of 29
Download now
Recommended
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
C# design note sep 2014
C# design note sep 2014
信之 岩永
.NET vNext
.NET vNext
信之 岩永
Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
Deep Dive C# 6.0
Deep Dive C# 6.0
信之 岩永
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
Yusuke Fujiwara
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
Recommended
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
C# design note sep 2014
C# design note sep 2014
信之 岩永
.NET vNext
.NET vNext
信之 岩永
Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
Deep Dive C# 6.0
Deep Dive C# 6.0
信之 岩永
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
Yusuke Fujiwara
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
Bluetoothでgo!
Bluetoothでgo!
Kouji Matsui
広がる .Net
広がる .Net
信之 岩永
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
信之 岩永
C#言語機能の作り方
C#言語機能の作り方
信之 岩永
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
shozon
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
信之 岩永
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
基礎からのCode Contracts
基礎からのCode Contracts
Yoshifumi Kawai
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
taskie
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
Masanori Masui
C#の書き方
C#の書き方
信之 岩永
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
動的なILの生成と編集
動的なILの生成と編集
terurou
20201127 .NET 5
20201127 .NET 5
Takayoshi Tanaka
それっぽく、適当に
それっぽく、適当に
信之 岩永
Code Contracts in .NET 4
Code Contracts in .NET 4
信之 岩永
More Related Content
What's hot
Bluetoothでgo!
Bluetoothでgo!
Kouji Matsui
広がる .Net
広がる .Net
信之 岩永
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
信之 岩永
C#言語機能の作り方
C#言語機能の作り方
信之 岩永
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
shozon
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
信之 岩永
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
基礎からのCode Contracts
基礎からのCode Contracts
Yoshifumi Kawai
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
taskie
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue
SignalRブートキャンプ
SignalRブートキャンプ
Kouji Matsui
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
Masanori Masui
C#の書き方
C#の書き方
信之 岩永
.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
動的なILの生成と編集
動的なILの生成と編集
terurou
20201127 .NET 5
20201127 .NET 5
Takayoshi Tanaka
What's hot
(20)
Bluetoothでgo!
Bluetoothでgo!
広がる .Net
広がる .Net
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
C#言語機能の作り方
C#言語機能の作り方
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
基礎からのCode Contracts
基礎からのCode Contracts
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
SignalRブートキャンプ
SignalRブートキャンプ
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
C#の書き方
C#の書き方
.NET Core時代のCI/CD
.NET Core時代のCI/CD
動的なILの生成と編集
動的なILの生成と編集
20201127 .NET 5
20201127 .NET 5
Viewers also liked
それっぽく、適当に
それっぽく、適当に
信之 岩永
Code Contracts in .NET 4
Code Contracts in .NET 4
信之 岩永
.NET Compiler Platform
.NET Compiler Platform
信之 岩永
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
sumito3478
Friendly
Friendly
Takaaki Suzuki
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
Async History in .NET
Async History in .NET
Takaaki Suzuki
WPF Interoperability
WPF Interoperability
Takaaki Suzuki
Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013
Yusuke Fujiwara
DeclarativeSql
DeclarativeSql
Takaaki Suzuki
Sevens Algorithm
Sevens Algorithm
Takaaki Suzuki
酒の肴はC# vNext
酒の肴はC# vNext
Takaaki Suzuki
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
Coding Interview
Coding Interview
信之 岩永
Rust v1.0 release celebration party
Rust v1.0 release celebration party
Akira Hayakawa
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
Keep yourself up to date
Keep yourself up to date
信之 岩永
Overview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable Collections
Yoshifumi Kawai
Viewers also liked
(20)
それっぽく、適当に
それっぽく、適当に
Code Contracts in .NET 4
Code Contracts in .NET 4
.NET Compiler Platform
.NET Compiler Platform
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
Friendly
Friendly
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Async History in .NET
Async History in .NET
WPF Interoperability
WPF Interoperability
Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013
DeclarativeSql
DeclarativeSql
Sevens Algorithm
Sevens Algorithm
酒の肴はC# vNext
酒の肴はC# vNext
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Coding Interview
Coding Interview
Rust v1.0 release celebration party
Rust v1.0 release celebration party
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Keep yourself up to date
Keep yourself up to date
Overview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable Collections
Similar to Modern .NET
Dotnetcore30forwindesktop
Dotnetcore30forwindesktop
ru pic
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
Takayoshi Tanaka
Dot netcore multiplatform 2
Dot netcore multiplatform 2
shozon
About .Net vNext
About .Net vNext
Kazunori Hamamoto
About .Net vNext
About .Net vNext
Kazunori Hamamoto
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
Toru Tamaki
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
Grunt入門
Grunt入門
Tsuyoshi Maeda
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
170622 02
170622 02
openrtm
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
改めて C# でできることを振り返る
改めて C# でできることを振り返る
Yuta Matsumura
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
Tadahiro Ishisaka
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Similar to Modern .NET
(20)
Dotnetcore30forwindesktop
Dotnetcore30forwindesktop
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
Dot netcore multiplatform 2
Dot netcore multiplatform 2
About .Net vNext
About .Net vNext
About .Net vNext
About .Net vNext
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
How to run P4 BMv2
How to run P4 BMv2
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Grunt入門
Grunt入門
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
.NET Coreとツール類の今
.NET Coreとツール類の今
170622 02
170622 02
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
改めて C# でできることを振り返る
改めて C# でできることを振り返る
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
More from 信之 岩永
YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
信之 岩永
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
信之 岩永
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
信之 岩永
Unicode文字列処理
Unicode文字列処理
信之 岩永
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
信之 岩永
async/await のしくみ
async/await のしくみ
信之 岩永
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
非同期処理の基礎
非同期処理の基礎
信之 岩永
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
信之 岩永
Anders Hejlsberg Q & A
Anders Hejlsberg Q & A
信之 岩永
C#マスコット(公開用)
C#マスコット(公開用)
信之 岩永
More from 信之 岩永
(13)
YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
Unicode文字列処理
Unicode文字列処理
C# 8.0 null許容参照型
C# 8.0 null許容参照型
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
async/await のしくみ
async/await のしくみ
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
非同期処理の基礎
非同期処理の基礎
C#とILとネイティブと
C#とILとネイティブと
プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
Anders Hejlsberg Q & A
Anders Hejlsberg Q & A
C#マスコット(公開用)
C#マスコット(公開用)
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Recently uploaded
(8)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Modern .NET
1.
Modern .NET C# とともに祝15周年 岩永信之
2.
Modern .NET • .NET
2015と呼ばれてる一連の製品 既存技術系 2015世代系 .NET .NET Framework 4.6 .NET Core 5 • ASP.NET 5 • "Modern" PCL‡ • UWP† プロジェクト形式 csproj/vbproj xproj パッケージ参照 package.config project.json (NuGet v3) ターゲット バージョン net45, netcore45, MonoAndroid10, ... dotnet beta RTM beta † Portable Class Library ‡ Universal Windows Platform beta beta RTM beta • .NET CoreとかASP.NET 5はまだベータ • 全部ベータだと思ってたら一部RTMだった たぶん
3.
今日話すこと 既存技術系 2015世代系 .NET .NET
Framework 4.6 .NET Core 5 • ASP.NET 5 • "Modern" PCL‡ • UWP† プロジェクト形式 csproj/vbproj xproj パッケージ参照 package.config project.json (NuGet v3) ターゲット バージョン net45, netcore45, MonoAndroid10, ... dotnet beta RTM beta † Portable Class Library ‡ Universal Windows Platform beta beta RTM beta • 何がRTMで何がベータかわかるように • RTMな部分を少し詳細に説明 • .NET 2015と呼ばれてる一連の製品
4.
リリース状況 • .NET 2015と呼ばれてる一連の製品 既存技術系
2015世代系 .NET .NET Framework 4.6 .NET Core 5 • ASP.NET 5 • "Modern" PCL‡ • UWP† プロジェクト形式 csproj/vbproj xproj パッケージ参照 package.config project.json (NuGet v3) ターゲット バージョン net45, netcore45, MonoAndroid10, ... dotnet beta RTM beta † Portable Class Library ‡ Universal Windows Platform beta beta RTM beta 赤枠 Visual Studio 2015を入れると ベータ版テンプレートが入ってる 青枠 Visual Studio Tools for Windowsを入れる とRTMテンプレートが入ってる
5.
.NET Core • .NET
Frameworkを再実装 • オープンソース • クロスプラットフォーム • modular • 秋以降にRTMしそう? • 今のところ63%くらいっぽい† beta 要するに • Win32依存部分の切り離し • mscorlibの分解 • 長期保守に耐えうる造りに変更 † https://github.com/dotnet/corefx-progress
6.
CoreCLRとCoreFX • 「.NET」って言葉が含む2つの意味 GitHubリポジトリ的に も別れてたり ランタイム 標準ライブラリ 何ものか
• ILをJITして実行 • GCとかの実行時処理 • 規約(どのクラスをどの プラットフォームで使えるか) • その実装 .NET Core CoreCLR† CoreFX‡beta beta † https://github.com/dotnet/coreclr ‡ https://github.com/dotnet/corefx GitHubリポジトリ的に も別れてたり • 規約的にはWindowsストア アプリ向け.NETと同系統 • 実装は新規(mscorlibを分解 + クロスプラットフォーム化) 同世代の別技術に .NET Nativeあり RTM
7.
Modularアーキテクチャ Collections Threading Reflection Linq Net IO … Modern (.NET Core) Legacy (.NET
Framework) mscorlib※ ※正確にはいくつかのクラスはSystem.dllとかに分かれてるけど、それでもかなりでかい単位 • 機能単位でアセンブリを分割 • 必要な時に必要な分だけ参照 して使う • 標準ライブラリも個別・ NuGet配布 beta 既存 • インストーラーで一括インス トール
8.
Modularアーキテクチャ(移行期があった) Collections Threading Reflection Linq Net IO … Modern (.NET Core) Legacy (.NET
4まで) mscorlib Collections Threading Reflection Linq Net IO … Facades (.NET 4.5, Win8) mscorlib 実体はこれまでのmscorlibの バージョン アップ Fasade(見せかけ)アセンブリ 型の「転送」だけする 本当はmscorlibで実装してるものを 個別のライブラリに実装しているように見せる beta 既存 既存 転送 (移行期) (.NET 4.6と)互換
9.
互換性 • ランタイムに関して • 仕様は一緒で別実装 •
標準ライブラリの規約に関して • Facadesがある※/.NET 4.5時代からFacadesを用意してた Core機能版 Full機能版 Windows 8世代 ストア アプリ .NET Framework 4.5 Windows 10世代 .NET Core 5 UWP† .NET Framework 4.6 おおむね上位互換 (Full = Core + Win32) バージョン アップ RTM beta 既存 既存 RTM互換 †Universal Windows Platform ※ NuGet v3はmscorlibへの転送を自動的にやってくれるみたい
10.
.NET Core系プロジェクト • ASP.NET
5 • "Modern PCL" • Universal Windows Platform (UWP) beta RTM beta .NET Core .NET Framework※ 両対応 • デバッグ時にはCoreCLR上で普通に実行 • 配布前に.NET Nativeでネイティブ化 • 標準ライブラリ規約的には.NET Core .NET Core規約で 作っておけば どこでも動く ※ 現時点では(たぶん今後も) .NET Framework 4.5以降のみ RTM beta
11.
xproj • xproj: プロジェクトの新しいファイル形式 •
XMLでソースコード管理するのやめました • 基本、フォルダー以下にある全ソースコードがビルド対象 • 除外したいものは、project.jsonの中に除外設定を書く • ASP.NET 5とModern PCLはこれ • csproj/vbproj • ビルド対象にしたい.cs/.vbソースコードや、アセンブリ参照設定を 1つ1つXMLで記述 beta beta beta 既存
12.
project.json (xproj系) • xprojはほぼ空 •
プロジェクト設定はproject.jsonに書く • これまでnuspecに書いてたようなパッケージ情報 • 依存するライブラリの情報 • これを使えるプロジェクトのタイプ • ASP.NET 5 • Modern PCL beta beta beta
13.
project.json (NuGet v3) •
csproj/vbprojでもproject.jsonを使うように • xprojでのproject.jsonのサブセット • 依存ライブラリに関する情報だけ • package.config (NuGet v2まで) の置き換え • これを使えるプロジェクトのタイプ • UWP • (未保証でよければ)その他なんでも • プロジェクト テンプレートにはなってなくて 手動でpackage.configをproject.jsonに差し替えたら動く (要プロジェクト再読み込み) RTM RTM 既存
14.
project.json (NuGet v3)の中身 •
csproj中で動かす 最低ラインの書き方 • runtimesとかを抜くと 意味不明のビルド エラー が発生 { "frameworks": { "net35": {} }, "runtimes": { "win": {}, "win-anycpu": {} }, "dependencies": { "Newtonsoft.Json": "7.0.1" } } ターゲット フレームワーク ターゲットOS、CPU 依存ライブラリ一覧を "パッケージ名": "バージョン" という形式で並べる
15.
NuGet v3でのパッケージ管理(参照側) • JSON
(project.json)で管理するようになった • ソリューション単位でのキャッシュ管理をやめた • 旧: ソリューションの下に「packages」フォルダー • 新: ユーザー フォルダーの下に「.nuget/packages」フォルダー • csproj/vbproj汚染しなくなった • hint pathとかもなくなって、1つのプロジェクトを複数のソリューショ ンから参照してもパスが狂って困る問題なくなった • 多段の依存管理が楽になった • 直接参照しているものだけがproject.jsonに入る • アンインストールやアップグレード作業がだいぶ楽
16.
NuGet v3でのパッケージ管理(作成側) • install/uninstall.ps1が働かなくなった •
プロジェクト単位でインストールされない • init.ps1は動く • コンテンツ(contentsフォルダー)を持てない • analyzersフォルダーにDLL入れるだけでアナライザーの参照でき るように
17.
"dotnet"ターゲット • 今まで: ターゲットごとに「プロファイル」が分かれてた •
デスクトップ向けならnet35, net45, net46, ... • ストア アプリ向けならwp7, wp71, win8, win81, netcore45, ... • Xamarin向けならMonoTouch10, MonoAndroid10, ... • 新世代: "dotnet" 1個だけに! • 「どのライブラリに依存してるか」だけで、どのターゲットで動くか を自動判別 • ターゲットを気にして作るのは、標準ライブラリとかXamarinみたいな ものだけ RTM ※ ※ dotnetターゲット(NuGet v3が必要)が使えて、RTMかつ保証があるのは現状ではUWPだけ 未保証・ベータ込みでも、.NET Framework 4.6/.NET Core 5以降のみ
18.
"Modern PCL" • xprojなライブラリ
プロジェクト • 自動的にdotnetターゲットなnupkgを作ってくれる このテンプレートがModern PCL beta
19.
新旧世代 • 同世代技術・新技術の方がサポート早いのは当然 • 世代的には
.NET Core = xproj = project.json = dotnetターゲット • 混同されがち(ひとくくりに.NET 2015とか.NET vNextとか) • でも、いくらか新旧混在可能 • .NET Core/.NET Framework共用 • Facadesがある • xprojで作ったアプリや、dotnetターゲットのライブラリは .NET Framework 4.6/.NET Core 5両対応 • NuGet v3で、project.jsonをcsproj/vbprojからも使える
20.
まとめ • 新旧はっきりわかれてるけど、いくらか混在利用可能 • .NET
Framework ⇔ .NET Core • ASP.NET 5, "Modern PCL", UWP • csproj/vbproj ⇔ xproj • package.config ⇔ project.json (NuGet v3) • net45, win81, ... ⇔ dotnet • ぶっちゃけていうと • 新しい方が使えると結構幸せ • 移行期に当たる今はたぶん余計に苦労する • UWPに合わせてNuGet v3だけ前倒しでRTMした雰囲気 RTM RTM
21.
RTM状況、実はよくわからず ここからおまけ
22.
ASP.NET系 • xproj系プロジェクト =
ASP.NET 5系チームによる開発 「Web」カテゴリー内に 「コンソール アプリ」って何なんだよ xproj xproj xproj beta beta beta
23.
「プレビュー」の文字 • ASP.NET 5は、プレビューのところにプレビューの文字あり 「プレビュー」とは 書かれてないけども さっきの
24.
やっぱり「beta」って入ってる • DNX SDKバージョン 作成 プロパティ 「プレビュー」とは 書かれてないけども
やっぱベータなの?
25.
ASP.NET系 → UWP系 •
project.json = ASP.NET系 → UWP系 ASP.NET 5 xproj beta UWP csproj RTM xprojでは、プロジェクト 設定全般を書く だから「project.json」 サブセット パッケージ依存管理だけ をproject.jsonに書く • VS Tools for Windows • VS2015 RTM (7/20)よりも 後(7/29)にリリース • csproj+project.jsonを使うには これが必須 • UWP用?
26.
csproj+project.jsonはUWP系(1) • 任意のプロジェクト タイプに対するproject.json 手作業で •
packages.config削除 • project.json追加 • プロジェクトをリロード csproj packages.config 既存 csproj project.json RTM ? UWP以外であっても、VS Tools for Windowsのインストールが必須 手作業必須なのは、 • 単にUWP以外の対応が間に合ってな いのか? • まだやって欲しくないから テンプレートを用意してないのか?
27.
csproj+project.jsonはUWP系(2) • project.jsonからのパッケージの復元 • csproj+project.jsonなプロジェクトのビルド NuGetパッケージ
マネージャーを3.1以上にすればできる VS Tools for Windowsが必要 (UWP以外のプロジェクト タイプであっても) (同時にNuGetの方も更新されてた) (7/31にリリースしてた) (7/29にリリース)
28.
.NET Coreはベータ(1) • CoreCLRにもCoreFXにも「beta」の文字
29.
.NET Coreはベータ(2) • UWPはRTM .NET
Core CoreCLR .NET Native ASP.NET 5 UWP beta beta わかる CoreFX beta .NET Framework 4.6 選べる RTM RTM Debug Release RTM 依存先がベータ?!
Editor's Notes
https://github.com/ufcpp/UfcppSample/
「たぶん」とつく理由も最後で話すけども
予想ではたぶん、Windows 10関連の部分だけ前倒しリリース
CoreCLR/CoreFXに加えて、これから話すxproj, project.json, dotnetターゲットの辺り、あんまりはっきりと区別のある資料全然なくて。 割りかし混乱気味。というか、作ってる人ら的にも今整理の真っ最中な予感あり
実装が違っても、規約的に互換性ありなら同じコード・同じDLLでプログラムが動く
.NET 4.5ダメっぽいよね?たぶん。
Windows 10の前倒しリリースにより、Visual Studioチームが悲鳴あげてそう
思うに、UWPもこれまでの判断基準でいうとベータなんだけど、Windows 10出した手前大々的にベータと言えないのかな?
Download now