Submit Search
Modern .NET
Download as PPTX, PDF
9 likes
3,074 views
信之 岩永
2015/8/8 C#UG&codeseek勉強会 「Visual Studio 2015リリース記念」 にて発表
Technology
Read more
1 of 29
Download now
Downloaded 14 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
More Related Content
PPTX
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
PPTX
C# design note sep 2014
信之 岩永
PPTX
.NET vNext
信之 岩永
PPTX
Net fringejp2016
Yusuke Fujiwara
PPTX
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
PPTX
Deep Dive C# 6.0
信之 岩永
PPTX
dotnetconfJP2017_netcore2
Yusuke Fujiwara
PPTX
C# 8.0 非同期ストリーム
信之 岩永
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
C# design note sep 2014
信之 岩永
.NET vNext
信之 岩永
Net fringejp2016
Yusuke Fujiwara
Unityで使える C# 6.0~と .NET 4.6
信之 岩永
Deep Dive C# 6.0
信之 岩永
dotnetconfJP2017_netcore2
Yusuke Fujiwara
C# 8.0 非同期ストリーム
信之 岩永
What's hot
(20)
PDF
Bluetoothでgo!
Kouji Matsui
PPTX
広がる .Net
信之 岩永
PPTX
C#/.NETがやっていること 第二版
信之 岩永
PPTX
C#言語機能の作り方
信之 岩永
PDF
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
PPTX
.NET Core 2.x 時代の C#
信之 岩永
PPTX
.NET Core とマルチプラットフォーム
shozon
PPTX
Orange Cube 自社フレームワーク 2015/3
信之 岩永
PDF
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
PDF
基礎からのCode Contracts
Yoshifumi Kawai
PDF
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
PDF
JavaScript Tips 2015(PDF 版)
taskie
PPTX
Golang tokyo #7 qtpm
Yoshiki Shibukawa
PDF
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue
PDF
SignalRブートキャンプ
Kouji Matsui
PPTX
(ゲームじゃない方の)switchで遊びたい話
Masanori Masui
PPTX
C#の書き方
信之 岩永
PDF
.NET Core時代のCI/CD
Yuta Matsumura
PDF
動的なILの生成と編集
terurou
PDF
20201127 .NET 5
Takayoshi Tanaka
Bluetoothでgo!
Kouji Matsui
広がる .Net
信之 岩永
C#/.NETがやっていること 第二版
信之 岩永
C#言語機能の作り方
信之 岩永
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
.NET Core 2.x 時代の C#
信之 岩永
.NET Core とマルチプラットフォーム
shozon
Orange Cube 自社フレームワーク 2015/3
信之 岩永
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
基礎からのCode Contracts
Yoshifumi Kawai
Pythonで始めるWebアプリケーション開発
Takahiro Kubo
JavaScript Tips 2015(PDF 版)
taskie
Golang tokyo #7 qtpm
Yoshiki Shibukawa
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue
SignalRブートキャンプ
Kouji Matsui
(ゲームじゃない方の)switchで遊びたい話
Masanori Masui
C#の書き方
信之 岩永
.NET Core時代のCI/CD
Yuta Matsumura
動的なILの生成と編集
terurou
20201127 .NET 5
Takayoshi Tanaka
Ad
Viewers also liked
(20)
PPTX
それっぽく、適当に
信之 岩永
PPTX
Code Contracts in .NET 4
信之 岩永
PPTX
.NET Compiler Platform
信之 岩永
PPTX
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
PPTX
C#や.NET Frameworkがやっていること
信之 岩永
PDF
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
sumito3478
PDF
Friendly
Takaaki Suzuki
PDF
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
PDF
Async History in .NET
Takaaki Suzuki
PDF
WPF Interoperability
Takaaki Suzuki
PPTX
Msgpack cli-tech-aid-2013
Yusuke Fujiwara
PDF
DeclarativeSql
Takaaki Suzuki
PDF
Sevens Algorithm
Takaaki Suzuki
PDF
酒の肴はC# vNext
Takaaki Suzuki
PDF
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
PPTX
Coding Interview
信之 岩永
PDF
Rust v1.0 release celebration party
Akira Hayakawa
PDF
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
PPTX
Keep yourself up to date
信之 岩永
PPTX
Overview of the .Net Collection Framework and Immutable Collections
Yoshifumi Kawai
それっぽく、適当に
信之 岩永
Code Contracts in .NET 4
信之 岩永
.NET Compiler Platform
信之 岩永
今から始める、Windows 10&新.NETへの移行戦略
信之 岩永
C#や.NET Frameworkがやっていること
信之 岩永
Rust 1.0 Release記念祝賀 - Rustのドキュメントを少し訳してみた
sumito3478
Friendly
Takaaki Suzuki
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
Async History in .NET
Takaaki Suzuki
WPF Interoperability
Takaaki Suzuki
Msgpack cli-tech-aid-2013
Yusuke Fujiwara
DeclarativeSql
Takaaki Suzuki
Sevens Algorithm
Takaaki Suzuki
酒の肴はC# vNext
Takaaki Suzuki
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
Coding Interview
信之 岩永
Rust v1.0 release celebration party
Akira Hayakawa
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
Keep yourself up to date
信之 岩永
Overview of the .Net Collection Framework and Immutable Collections
Yoshifumi Kawai
Ad
Similar to Modern .NET
(20)
PDF
Dotnetcore30forwindesktop
ru pic
PPTX
20170311 Developing & Deploying .NET Core on Linux
Takayoshi Tanaka
PPTX
Dot netcore multiplatform 2
shozon
PPTX
About .Net vNext
Kazunori Hamamoto
PPTX
About .Net vNext
Kazunori Hamamoto
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
PDF
ソフトウェア工学2023 14 ビルド
Toru Tamaki
PDF
How to run P4 BMv2
Kentaro Ebisawa
PDF
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
KEY
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
PPTX
Grunt入門
Tsuyoshi Maeda
PDF
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
PDF
.NET Coreとツール類の今
Yuki Igarashi
PPT
170622 02
openrtm
PDF
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
PDF
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
PDF
改めて C# でできることを振り返る
Yuta Matsumura
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
PPTX
Ossで作成するチーム開発環境
Tadahiro Ishisaka
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Dotnetcore30forwindesktop
ru pic
20170311 Developing & Deploying .NET Core on Linux
Takayoshi Tanaka
Dot netcore multiplatform 2
shozon
About .Net vNext
Kazunori Hamamoto
About .Net vNext
Kazunori Hamamoto
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ソフトウェア工学2023 14 ビルド
Toru Tamaki
How to run P4 BMv2
Kentaro Ebisawa
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
Grunt入門
Tsuyoshi Maeda
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Jun Omae
.NET Coreとツール類の今
Yuki Igarashi
170622 02
openrtm
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
改めて C# でできることを振り返る
Yuta Matsumura
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Ossで作成するチーム開発環境
Tadahiro Ishisaka
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
More from 信之 岩永
(13)
PPTX
YouTube ライブ配信するようになった話
信之 岩永
PPTX
C# 9.0 / .NET 5.0
信之 岩永
PPTX
C# コンパイラーの書き換え作業の話
信之 岩永
PPTX
Unicode文字列処理
信之 岩永
PPTX
C# 8.0 null許容参照型
信之 岩永
PPTX
C# 8.0 Preview in Visual Studio 2019 (16.0)
信之 岩永
PPTX
async/await のしくみ
信之 岩永
PPTX
C# 7.2 with .NET Core 2.1
信之 岩永
PPTX
非同期処理の基礎
信之 岩永
PPTX
C#とILとネイティブと
信之 岩永
PPTX
プログラミング .NET Framework 第4版
信之 岩永
PPTX
Anders Hejlsberg Q & A
信之 岩永
PPTX
C#マスコット(公開用)
信之 岩永
YouTube ライブ配信するようになった話
信之 岩永
C# 9.0 / .NET 5.0
信之 岩永
C# コンパイラーの書き換え作業の話
信之 岩永
Unicode文字列処理
信之 岩永
C# 8.0 null許容参照型
信之 岩永
C# 8.0 Preview in Visual Studio 2019 (16.0)
信之 岩永
async/await のしくみ
信之 岩永
C# 7.2 with .NET Core 2.1
信之 岩永
非同期処理の基礎
信之 岩永
C#とILとネイティブと
信之 岩永
プログラミング .NET Framework 第4版
信之 岩永
Anders Hejlsberg Q & A
信之 岩永
C#マスコット(公開用)
信之 岩永
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
#2:
https://github.com/ufcpp/UfcppSample/
#3:
「たぶん」とつく理由も最後で話すけども
#5:
予想ではたぶん、Windows 10関連の部分だけ前倒しリリース
#7:
CoreCLR/CoreFXに加えて、これから話すxproj, project.json, dotnetターゲットの辺り、あんまりはっきりと区別のある資料全然なくて。 割りかし混乱気味。というか、作ってる人ら的にも今整理の真っ最中な予感あり
#9:
実装が違っても、規約的に互換性ありなら同じコード・同じDLLでプログラムが動く
#19:
.NET 4.5ダメっぽいよね?たぶん。
#22:
Windows 10の前倒しリリースにより、Visual Studioチームが悲鳴あげてそう
#31:
思うに、UWPもこれまでの判断基準でいうとベータなんだけど、Windows 10出した手前大々的にベータと言えないのかな?
Download