SlideShare ist ein Scribd-Unternehmen logo
1 von 47
.NET vNext
岩永 信之
自己紹介
• 日本C#ユーザー会
• 日本のC#ユーザーを応援するコミュニティです
• codeseek
• 「システムの品質はコードに宿る」をポリシーに活
動をしています
• 毎月何かしら勉強会をやっています
今日の内容
• 最近のMicrosoft
• .NETの近い将来
• .NET Native
• .NET vNext Cloude Mode
主に.NETプログラムの
実行方式の話
最近のMicrosoft
One Windows
Device First, Cloud First
One
• One Microsoft
• One Windows
• 単一チームで全Windowsを開発
• 単一のコア(NTカーネル)
• 単一のストア
• 単一API (Windows Runtime)
今、すでにそう
なってる/なりつつある
要は、組織改編
Device first, Cloud first
デスクトップ
クライアント アプリ
Phone/タブレット
クライアント アプリ
サーバー アプリ
既存資産
Mobile firstCloud first
Mobile first, Cloud first
• “first” (優先して注力はするが、onlyではない)
• 既存のデスクトップへの投資もまだ続く
• MobileとCloud
• 改めてこれから注力すべき場所を強調
(この方針自体は前から変わってない)
.NETにとっては
• Mobile first
• ストア越し(審査付き)のアプリ配布
• 低消費電力を求められる
• Cloud first
• サーバー上でのソースコード手直し
• 共有ホスティング型のサーバーへの対応
.NET Native
.NET vNext Cloud Mode
.NET Frameworkの
実行方式
これまでの.NET Framework
中間言語とJIT
中間コードとJITコンパイル
• .NET Frameworkの中間言語
• 中間言語があることで
• 高級言語のコンパイラーを作る人と、CPUごとの最
適化する人の分業化
• セキュリティ チェックしやすい
• 動的リンク時に、コード修正の影響を吸収
• 動的な実行(リフレクション)
高級言語
(C#など)
中間言語
(IL)
ネイティブ
コード
コンパイル コンパイル
問題は「いつやるか」
中間言語の良し悪し
利点
• 動的リンク・部分更新しやすい
• セキュリティ検証しやすい
• (ソースコード配布よりは)高速
欠点
• .NET Frameworkのランタイム インストール必須
• (ネイティブ配布よりは)低速
• (ソースコード配布よりは)デバッグ・修正が面倒
用途によっては…
中間言語: デスクトップでは
利点
• 動的リンク・部分更新しやすい
• セキュリティ検証しやすい
• (ソースコード配布よりは)高速
欠点
• .NET Frameworkのランタイム インストール必須
• (ネイティブ配布よりは)低速
• (ソースコード配布よりは)デバッグ・修正が面倒
JITとかWindowsサービス巡回
とかでないと保証しにくい
PCの性能的に
許容範囲
なんだかんだいって
JITのメリットあり
JIT
そんなに頻繁な
修正しない
Just-in-Time
• 実行した瞬間にコンパイル
高級言語
(C#など)
中間言語
(IL)
ネイティブ
コード
コンパイル コンパイル
開発環境 実行環境
配布
ビルド時 Just-in-Time
(実行した瞬間)
起動した瞬間が重い
起動のたびに処理が走る
(最初期からある)
Ngen
• Ngen.exe (Native Image Generator)
• ILを事前にネイティブ化するためのツール
• 自前管理が必要
• アプリのインストーラー※とかを作って明示的に呼び出し
• 参照しているライブラリが更新された時には呼びなおす
必要あり
• かなり面倒なのでアプリを
Ngenすることはめったにない
• .NET自体が標準ライブラリの
高速化のために使ってる
※ 要するに、JITの負担を起動時じゃなくてインストール時に前倒しする
(最初期からある)
Auto-Ngen
• NgenがWindowsサービスとして常に動いてる
• アイドル時に動作
• 利用頻度の高いものを自動的にNgen
• デスクトップ アプリの場合はGACアセンブリのみ
• Windowsストア アプリの場合はすべてのアセンブリ
• よく使うアプリの起動はだいぶ早くなる
• インストール直後の起動は相変わらず遅い
(.NET 4.5)
問題: 実行環境の多様化
デスクトップ
クライアント アプリ
Phone/タブレット
クライアント アプリ
サーバー アプリ
既存資産
Mobile firstCloud first
要件が変わる
Mobile first
携帯端末中心の.NET Framework
端末側の負担を減らす
中間言語: 携帯デバイスでは
利点
• 動的リンク・部分更新しやすい
• セキュリティ検証しやすい
• (ソースコード配布よりは)高速
欠点
• .NET Frameworkのランタイム インストール必須
• (ネイティブ配布よりは)低速
• (ソースコード配布よりは)デバッグ・修正が面倒
ストア サーバー上で
やればいい
ランタイム分のストレージ
容量使いたくない
性能的に結構困る
ストア サーバー上で
ネイティブ化
.NET Native
MDIL※
• 部分的に、事前ネイティブ化
• 動的リンクに必要な情報だけ中間言語を残す
push ebp
mov ebp,esp
cmp dword ptr ds:[5011058h],0
je 00FE2A01
call 74B7AEA8
mov eax,dword ptr [ebp+8]
lea edx,[ebp+8]
imul eax,dword ptr [edx+4]
lea edx,[ebp+8]
imul eax,dword ptr [edx+8]
pop ebp
ret 0Ch
int32 Point::X
int32 Point::Y
int32 Point::Z
型情報だけ残す
(動的リンクに必要)
※ Machine Dependent Intermediate Language
(Windows Phone 8)
ほぼネイティブ
MDIL (Compile in the Cloud)
• ストア サーバー上でMDIL化までやっておく
C#コード
IL
MDIL
ネイティブ コード
C#コンパイラー
MDILコンパイラー
リンカー
開発環境でILにコンパイル
Windowsストア サーバー
上でILをMDIL化
Windows Phone実機上では
レイアウトの解決(リンク)だけ行う
インストール直後の起動も高速
(Windows Phone 8)
.NET Native
• ストア サーバー上でネイティブ化
C#コンパイラー
開発環境でILにコンパイル
Windowsストア サーバー
上でネイティブ化
ネイティブ化したものを
デバイスに配布
C#コード
IL
事前コード生成
ILレベル最適化
MDIL
ネイティブ
コード
crossgen
コンパイラー
(vNext)
.NET Native: in the Cloud
• 基本的にストア アプリ用
• セキュリティ保証などはサーバー上で
• アップロード時にはIL、審査付き
• クライアント デバイス的には低コスト
• JITのコストなし、ランタイムのインストール不要
• Visual Studio上で直接ネイティブ化も可能
• 通常版の.NETとの差で問題が起きないかの確認用
• 特にパフォーマンス
(vNext)
.NET Native: 最適化
• 「事前にJIT相当の処理」以上の最適化も
• C++最適化コンパイラーと成果共有
• シリアライズなどのコードを事前に展開
• 型情報を見たいからリフレクションを使ってただけで、
実際にはビルド時に型が確定してることが多い
• 必要な分だけ静的リンク
• ライブラリをまたいだ最適化が可能
• 不要コードは残さないので実行可能ファイルのサイズは
膨らまない
(vNext)
.NET Native: リフレクション
• リフレクションも使える
ただし…
• XAML {Binding}など、推論が効く部分は自動判定し
てくれる
• それ以外は、自分で「この型はリフレクションで
使ってる」という情報を書かないとダメ
(Runtime Directiveファイル)
• 動的コード生成は無理
• 式ツリーなどはインタープリター方式になるので遅い
(vNext)
Cloud first
サーバー、特にクラウド中心の.NET Framework
手軽なソースコード更新
side-by-sideランタイム
中間言語: サーバーでは
利点
• 動的リンク・部分更新しやすい
• セキュリティ検証しやすい
• (ソースコード配布よりは)高速
欠点
• .NET Frameworkのランタイム インストール必須
• (ネイティブ配布よりは)低速
• (ソースコード配布よりは)デバッグ・修正が面倒
アプリ稼働時間が長くて、
最初の1回だけのコストは
無視できる(低速でもいい)
開発機とサーバー機でバー
ジョンが違って困ることが
サーバー上で確認しつつ
その場でソースコードを修正したい
ソースコード配置
自動パッケージ管理
Cloud Mode
アプリごとに別バー
ジョンを使えない
.NET vNext Cloud Mode
• クラウド向けの実行形態
• side-by-sideインストール
• ソースコード配布
• パッケージ管理
(vNext)
side-by-sideインストール
• (サーバーにインストールするんじゃなく)
アプリごとに別.NETランタイムを使える
• (同一サーバーで)
アプリごとにバージョンを変えれる
• 共有ホスティング型のサーバーでも安心
• バージョン更新するかどうかをアプリ単位で判断できる
• 開発時と完全に同じバージョンを使える
• (.NETではめったに見ないけども)
バージョン違いに起因する問題を回避できる
(vNext)
ソースコード配置
• ビルドという工程不要
• ソースコード書き替えて、ブラウザー更新するだけ
• サーバー上で編集可能
• メモリ上で全部コンパイル
• コンパイル結果を一時ファイルに残さない
• ディスクI/Oがネックになりにくい
• .NET Compiler Service (Roslyn)を利用
(vNext)
補足: .NET Compiler Platform†
• C#/VBコンパイラーを再設計・再実装
• .NET実装 (C#実装のC#/VB実装のVBコンパイラー)
• コンパイラーの内部データを誰でも自由に使える
• 用途
• C#スクリプティング
• ソースコード配置
• .NET vNext (Cloud First)
• コード解析
• IDE連携、静的解析ツール
† コードネーム“Roslyn”って呼ばれてたやつの正式名称
パッケージ管理
• 自動パッケージ管理
開発機 アプリ サーバー パッケージ リポジトリ
例
http://nuget.org
http://myget.org
project.json
*.cs
"dependencies": {
"Library.A": "",
"Library.B": ""
}
var c = new Configuration();
c.AddJsonFile("config.json");
a.UseServices(services => …);
ソースコードとパッ
ケージ利用情報だけ
をアップロード
サーバー上で
編集可能
.NETランタイムや、
ライブラリの不足・更新
はクラウドから取得
利用するパッケージ
の情報ファイル
(vNext)
kproj
• (Visual Studio上の)新しいプロジェクト形式
• 「プロジェクト」と「アセンブリ参照」と「パッ
ケージ」を区別しない
• プロジェクト: 同一ソリューション内の他のプロジェクト
を参照
• アセンブリ参照: 標準ライブラリなどのDLLを参照
• パッケージ: NuGetを利用してWeb公開されているライブ
ラリを参照
• JSONで管理
(vNext)
旧形式(csproj)
新形式(kproj)
• JSON (project.json)でプロジェクト設定を管理
"dependencies": {
"Newtonsoft.Json": "",
"System.Console": "",
"Classlibrary1": ""
}
パッケージ参照
アセンブリ参照
プロジェクト参照
(必要ならバージョン
を明示的に指定)
ASP.NET vNext
• .NET vNext (これまでのまとめ)
• ソースコード配置
• side-by-sideインストール
• パッケージ管理
• これに加えて
• IIS(など、特定のアプリサーバー)依存脱却
• 脱System.Webアセンブリ
• OWIN (Open Web Inteface for .NET)
• Monoでのホストも可能
• ASP.NET MVC / Web API / Web Pagesの統合
• オープンソース、GitHub公開
その他補足
RyuJIT
• JITコンパイラーも新しくなる
• 既存資産にも投資は続いてる
• JIT方式しなくなるわけじゃない(適材適所)
• RyuJITの大きな改善点
• 起動時間短縮
• 今まで64bit JITコンパイラーはサーバー向けだったので、
起動に重きを置かれてなかった
• SIMD演算対応
補足: SIMD演算
• Single Instruction Multiple Data
演算
回路
入力
出力
普通の命令
• 1命令1データ
演算
回路
入力
出力
SIMD命令
• 1命令複数データ
入力 入力 入力
出力 出力 出力
単純な累算処理※なら
並列度の分だけ高速化
※ ↓こういうの
for (var i = 0; i < length; ++i)
output[i] = F(input[i]);
標準ライブラリ
• ランタイムが3系統別実装
• JIT
• .NET Native
• Cloud Mode
• 1つの“標準”ライブラリで保守するのは大変
• どうしても事前ネイティブ化しにくい…
• サーバーにGUIコンポーネント要るの?…
• フットプリント的に余計なもの載せれない…
new!
new!
1つの標準にできるのか?
デスクトップ
クライアント アプリ
Phone/タブレット
クライアント アプリ
サーバー アプリ
既存資産
Mobile firstCloud first
共通部分
この共通部分だけを
「標準」にすべき?
PCLみたいな仕組み必須
PCL(Portable Class Library)
• 実行環境ごとに
別の「標準ライブラリ」
プロファイルを用意
• ライブラリ側でどの
実行環境をターゲットに
するか選ぶ
実行環境ごとに
別メタデータを提供
ターゲット選択
PCLの例
• 例: 2環境
共通部分
PCLの例
• 例: 3環境
共通部分
.NET vNextプロファイル
• 今のプロファイル
• デスクトップ向け
• Windowsストア アプリ向け
• (Phone, Xbox, Silverlight, …)
• vNextのプロファイル
• .NET Native向け
• ストア アプリ向け - 事前ネイティブ化しにくいところ
• Cloude Mode向け
• GUI関連ごっそりない
まとめ
実行環境の多様化
デスクトップ
クライアント アプリ
Phone/タブレット
クライアント アプリ
サーバー アプリ
既存資産
Mobile firstCloud first
Mobile first, Cloud first
• Mobile: .NET Native
• ストア サーバー上でのネイティブ化
• かなりアグレッシブな最適化付き
• 一応、リフレクションも利用可能
• Cloud: .NET vNext Cloud Mode
• side-by-sideインストール
• ソースコード配置
• パッケージ管理

Weitere ähnliche Inhalte

Was ist angesagt?

.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指してAkira Inoue
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォームshozon
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCodeYuki Igarashi
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~UnityTechnologiesJapan002
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Akira Inoue
 
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsiVisual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsiTadahiro Ishisaka
 
Introducing Fluent Design
Introducing Fluent DesignIntroducing Fluent Design
Introducing Fluent Designc-mitsuba
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集terurou
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Takahiro Kubo
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25Yasuhiko Yamamoto
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:codeKouji Matsui
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"Akira Inoue
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 

Was ist angesagt? (20)

.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム.NET Core とマルチプラットフォーム
.NET Core とマルチプラットフォーム
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
Bluetoothでgo!
Bluetoothでgo!Bluetoothでgo!
Bluetoothでgo!
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsiVisual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
 
Introducing Fluent Design
Introducing Fluent DesignIntroducing Fluent Design
Introducing Fluent Design
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
 
Async deepdive before de:code
Async deepdive before de:codeAsync deepdive before de:code
Async deepdive before de:code
 
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!".NET Conf 2017 Japan Keynote ".NET Everywhere!"
.NET Conf 2017 Japan Keynote ".NET Everywhere!"
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 

Ähnlich wie .NET vNext

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugSAKURUG co.
 
JavaScript And Keywords
JavaScript And KeywordsJavaScript And Keywords
JavaScript And Keywordsuupaa
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべKaoru NAKAMURA
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...Fujio Kojima
 
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Akira Hatsune
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在TomomitsuKusaba
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Akira Inoue
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internalsMakoto Kato
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜Kensaku Komatsu
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうMitsuhito Ishino
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Yuya Yamaki
 

Ähnlich wie .NET vNext (20)

20060419
2006041920060419
20060419
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
 
20021007
2002100720021007
20021007
 
20050903
2005090320050903
20050903
 
JavaScript And Keywords
JavaScript And KeywordsJavaScript And Keywords
JavaScript And Keywords
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
 
Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界Windows Phoneで始める拡張現実の世界
Windows Phoneで始める拡張現実の世界
 
Firefox Mobile
Firefox MobileFirefox Mobile
Firefox Mobile
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Node platforms
Node platformsNode platforms
Node platforms
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
 
Fcp
FcpFcp
Fcp
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
 

Mehr von 信之 岩永

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話信之 岩永
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話信之 岩永
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理信之 岩永
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型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)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)信之 岩永
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#信之 岩永
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に信之 岩永
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3信之 岩永
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4信之 岩永
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎信之 岩永
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること信之 岩永
 

Mehr von 信之 岩永 (20)

YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話YouTube ライブ配信するようになった話
YouTube ライブ配信するようになった話
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型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)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
それっぽく、適当に
それっぽく、適当にそれっぽく、適当に
それっぽく、適当に
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
Coding Interview
Coding InterviewCoding Interview
Coding Interview
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 

Kürzlich hochgeladen

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
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
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Kürzlich hochgeladen (9)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
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
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

.NET vNext

Hinweis der Redaktion

  1. http://japan.zdnet.com/os/analysis/35051280/ いろいろな用途に対して一貫したモデルで開発できるのがMSの強みなのに、縦割りな仕事してどうすんだと。 社内競争で緊張感があったっていう利点もなくはなかっただろうけど。 チームというか、バルマーVSシノフスキー的対立がなかったらPhoneの立ち位置ももう少しましになってたかもしれず。 そういうところを改善しなきゃいけない。
  2. とはいえ。 今、MSの好調な部門はOffice 365とAzureで、 シノフスキー(Phone系やってた)がさって、ナデラ(Azureな人)がCEOになり 元ノキア従業員を中心に18000人のリストラがあり Azureは開発的にもScotGuっていうカリスマが率いてて 割とパワーバランスはCloudの方によってると思う。.NETのイノベーションもCloud方面からの方が多きそう。
  3. 一度中間言語を挟むってこと自体は、たいていの言語がやってる。 コンパイラーの内部でだけ中間言語使うものとか、実行時のだけ使うものとかもあるけども。
  4. http://msdn.microsoft.com/ja-jp/library/6t9t5wcf(v=vs.110).aspx インストールに時間がかかるってのもそれはそれで大問題。最初が肝心。いまどき、インストールってだけでも敬遠されるのに、さらに時間かかるとかかったるい。 ほんといまどきは「インストールしてください」ってあるだけでユーザーを9割失う。
  5. 逆に、使ってないもののネイティブ イメージを削除したりも自動 .NET Framework自体のインストールの遅さもかなり改善(.NET標準ライブラリ全部をNgenしない。Auto-Ngenのサービスに任せる)
  6. http://blogs.msdn.com/b/msgulfcommunity/archive/2013/03/16/compile-in-the-cloud-with-wp8.aspx http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL
  7. http://blogs.msdn.com/b/msgulfcommunity/archive/2013/03/16/compile-in-the-cloud-with-wp8.aspx http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL
  8. P/Invokeとかのマーシャリングもコード事前展開
  9. 言葉を選ばずに言えば、Node.js的な実行形態
  10. 言葉を選ばずに言えば、Node.js的な実行形態
  11. IDE連携が一番最初の大きな目的なんだけども、Cloud Firstな.NETでも大活躍
  12. ライブラリどころか、ランタイム自体もクラウドのリポジトリからとってくるのよねぇ。 あと、どうも、Phone向けのMDIL生成ツールと同名のexe (crossgen)がK Runtimeに入ってるんで、パッケージの分はいったんMDIL化してそう。 毎回parseとか、毎回JITはしたくないんじゃないかと。
  13. OWINは、デフォ状態で対応してるというよりは、ライブラリでUseOwin的な書き方したら対応できるって感じみたいだけども。