~ Cloud First から Cloud Optimized へ ~
.NET on Cloud が描くモダナイゼーション
井上 章 (いのうえ あきら) http://aka.ms/chack
日本マイクロソフト株式会社
デベロッパー エクスペリエンス & エバンジェリズム統括本部
エバンジェリスト
 マイクロソフトの今を知る
 ASP.NET vNext の概要と .NET のこれからを学ぶ
 クラウド最適化とモダナイゼーションの流れを知る
セッションのゴール
Session Takeaways
全ての机に家庭にコンピューターを
Digital Life
Digital Work
デバイスの急速な増大
マイクロソフトのフォーカス
Satya Nadella, Chief Executive Officer, Microsoft Corporation
1
2
3
4
4.5.2
Update 2
“To move beyond today’s world of stand-alone Web sites to an
Internet of interchangeable components where devices and
services can be assembled into cohesive, user-driven experiences”
Bill Gates on the goal for .NET
Forum 2000
“Web サイトが個々に独立している状態から、交換可能なコンポーネントからなる
インターネットへと移行し、さまざまな デバイスとサービス を組み合わせること
で一貫性のあるユーザー主導のエクスペリエンスを実現する”
.NET 構想における初期のビジョン
Devices and Services
Microsoft .NET TV Commercial (2002)
.NET とは?
ライブラリランタイム 言語 ツール
.NET Framework の構成
OS
共通言語ランタイム
(CLR : Common Language Runtime)
各種ライブラリ
共通言語基盤
(CLI : Common Language Infrastructure)
VB C# C++ • .NET 対応の開発言語を利用可能
• 型などの共通仕様
• 言語間のコンポーネント呼び出しが可能
• IO, ネットワーク, 暗号化 …
• ASP.NET, ADO.NET …
• 実行制御
(メモリ管理, スレッド制御, 例外処理, セキュリティ …)
・・・
"More and more of ASP.NET is open source. We want to
make ASP.NET more pluggable, more open, more fun."
"We've got big things planned - some that will surprise you."
February 25, 2012
by Scott Hanselman
One ASP.NET 構想
One ASP.NET Vision
Katana Project
Helios
OWIN, Katana Project と Helios
Katana Architecture
OWIN
 OWIN = Open Web Interface for .NET : http://owin.org/
 .NET における Web サーバーと Web アプリケーションを
疎結合にするための抽象化インターフェース定義
 Katana Project : http://katanaproject.codeplex.com/
 OWIN の MS プラットフォーム実装プロジェクト
 名前空間 : Owin, Microsoft.Owin ..., Microsoft.AspNet.WebAPI.Owin
 Helios
 System.Web 非依存で、直接 IIS 上で動作する軽量 OWIN サーバー
OWIN, Katana Project と Helios
New Approach to building .NET
Cloud optimized (クラウド最適化)
 モジュラー設計 (NuGet)
 オープン ソース (.NET Foundation)
 コンパイル不要の開発と配置 (Roslyn)
 Windows, Mac, Linux での実行 (Mono Project)
 完全な Side by Side 実行
 依存性の注入 (Dependency Injection)
 高速化, 低メモリ使用量と高スループット
 クラウドへ最適化 (設定, デバッグ, ロギング, キャッシュ …)
ASP.NET vNext (Next Version)
Summary of ASP.NET vNext
www.asp.net/vnext : github.com/aspnet
 KRuntime (KRE)
 vNext アプリケーションのビルド・実行環境, SDK
 Core CLR, Application Host, Roslyn Loader, …
 K command
 ランタイム エントリ ポイント
 例: “k run”, “k web”, …
 K Version Manager (KVM)
 KRE バージョン管理 : install, upgrade, list, use, alias
 K Package Manager (KPM)
 アプリケーションのパッケージ管理 : restore, install, pack
ASP.NET vNext : ランタイム
ASP.NET vNext Runtime
KRE
K
App
KVM
KPM
 project.json
 ランタイム バージョンや依存関係などの実行に必要な情報を記述
 Visual Studio 設定などの開発ツール関連情報は含まない
ASP.NET vNext : プロジェクト設定
ASP.NET vNext Runtime
{
"dependencies": {
"Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*",
}
"commands": {
"web": "Microsoft.AspNet.Hosting server= ..."
},
"configurations": {
"net451": {"dependencies": { ... }},
"k10": {"dependencies": { ... }}
}
}
レイヤー 4
アプリケーション
レイヤー 3
アプリケーション
アプリケーション ホスト
レイヤー 2
マネージド エントリ ポイント
レイヤー 1
CLR ネイティブ ホスト
レイヤー 0
ネイティブ プロセス
ASP.NET vNext : KRuntime 構造
KRuntime Structure
https://github.com/aspnet/Home/wiki/KRuntime-structure
(aspnet/Home/samples/HelloWeb/image.jpg)
KRuntimeKHostApps
 Web Forms, MVC 5, Web API 2, Web Pages 3, SignalR 2, EF 6
 .NET vNext でフル サポート
 MVC, Web API, Web Pages 6, SignalR 3, EF 7
 MVC / Web API / Web Pages の統合と SignalR 3 のサポート
 新しいプロジェクト (*.kproj) と設定 (project.json)
 System.Web 非依存, 新しい軽量 HttpContext (NOT System.Net.Http)
 .NET vNext
 .NET Framework サブセット (Cloud Optimized) : Core CLR (k10)
 .NET Framework フルセット : Desktop CLR (net451)
ASP.NET vNext の互換性
Compatibility of ASP.NET vNext
 次期バージョン Visual Studio “14” CTP 2 リリース
 CTP : Community Technology Preview
 RTM (正式リリース) は 2015 年を予定
 Go-live ライセンスではないため運用環境で利用不可
 Azure 仮想マシン イメージが利用可能
 Windows Server 2012 R2 + Visual Studio “14” Professional CTP 2
 ASP.NET vNext
 Visual Studio “14” CTP 2 で vNext プロジェクト テンプレートが利用可能 (.kproj)
 新しい設定システム (project.json) の採用
Visual Studio “14” CTP 2 & ASP.NET vNext
Community Technology Preview
モダン Web と ASP.NET の今後
Modern Web and ASP.NET vNext
エディターや
開発ツールの選択
オープンソースへの貢献 クロス プラットフォームOSS
クラウドへ
シームレスな移行
迅速な開発サイクルモジュール化
パフォーマンス向上
OSS
API
C#
VB
.NET の今後
Future of .NET
Next gen JIT (“RyuJIT”)
SIMD (Data Parallelization)
ランタイム コンパイラー
.NET Compiler Platform (“Roslyn”)
Languages innovation
BCL and PCL
Entity Framework
ライブラリ
.NET Foundation 設立
.NET Foundation for Openness
.NET API for Hadoop WebClient
.NET Compiler Platform ("Roslyn")
.NET Map Reduce API for Hadoop
.NET Micro Framework
ASP.NET MVC
ASP.NET Web API
ASP.NET Web Pages
ASP.NET SignalR
Composition (MEF2)
Entity Framework
Linq to Hive
MEF (Managed Extensibility Framework)
OWIN Authentication Middleware
Rx (Reactive Extensions)
Web Protection Library
Windows Azure .NET SDK
Windows Phone Toolkit
WnsRecipe
Mimekit Xamarin.Auth
Xamarin.Mobile
Couchbase for .NET
http://www.dotnetfoundation.org
@dotnetfdn // #dotnetfdn
Mailkit
System.Drawing
 ASP.NET Official Web Site
 http://www.asp.net/
 ASP.NET で作る Web アプリケーション構築ジャンプ スタート
 http://www.microsoftvirtualacademy.com/training-courses/733552de-3921-4cca-8834-3e34ecedb9ab
 ASP.NET MVC 4 Web アプリケーションの開発ジャンプ スタート
 http://www.microsoftvirtualacademy.com/training-courses/developing-asp-net-mvc-4-web-applications-
jump-start-japanese
 Building Modern Web Apps
 http://channel9.msdn.com/Series/Building-Modern-Web-Apps
 An Overview of Project Katana
 http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
 Introducing ASP.NET Project “Helios”
 http://blogs.msdn.com/b/webdev/archive/2014/02/18/introducing-asp-net-project-helios.aspx
関連リソース
Resources
 aspnet – GitHub : https://github.com/aspnet
 ASP.NET vNext : Official ASP.NET Web Site
 Blog Posts :
 Introducing ASP.NET vNext
 ASP.NET vNext Overview
 TechEd 2014 NA Sessions :
 Introducing the future of .NET on the server
 Deep Dive the future of .NET on the server
 Channel 9 Live: ASP.NET Developer Q&A
ASP.NET vNext 関連リソース
Resources for ASP.NET vNext
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and
Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション

  • 1.
    ~ Cloud Firstから Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション 井上 章 (いのうえ あきら) http://aka.ms/chack 日本マイクロソフト株式会社 デベロッパー エクスペリエンス & エバンジェリズム統括本部 エバンジェリスト
  • 2.
     マイクロソフトの今を知る  ASP.NETvNext の概要と .NET のこれからを学ぶ  クラウド最適化とモダナイゼーションの流れを知る セッションのゴール Session Takeaways
  • 4.
  • 5.
  • 6.
  • 10.
    マイクロソフトのフォーカス Satya Nadella, ChiefExecutive Officer, Microsoft Corporation 1 2 3 4
  • 12.
  • 13.
    “To move beyondtoday’s world of stand-alone Web sites to an Internet of interchangeable components where devices and services can be assembled into cohesive, user-driven experiences” Bill Gates on the goal for .NET Forum 2000 “Web サイトが個々に独立している状態から、交換可能なコンポーネントからなる インターネットへと移行し、さまざまな デバイスとサービス を組み合わせること で一貫性のあるユーザー主導のエクスペリエンスを実現する” .NET 構想における初期のビジョン Devices and Services
  • 14.
    Microsoft .NET TVCommercial (2002)
  • 15.
  • 16.
    .NET Framework の構成 OS 共通言語ランタイム (CLR: Common Language Runtime) 各種ライブラリ 共通言語基盤 (CLI : Common Language Infrastructure) VB C# C++ • .NET 対応の開発言語を利用可能 • 型などの共通仕様 • 言語間のコンポーネント呼び出しが可能 • IO, ネットワーク, 暗号化 … • ASP.NET, ADO.NET … • 実行制御 (メモリ管理, スレッド制御, 例外処理, セキュリティ …) ・・・
  • 18.
    "More and moreof ASP.NET is open source. We want to make ASP.NET more pluggable, more open, more fun." "We've got big things planned - some that will surprise you." February 25, 2012 by Scott Hanselman
  • 19.
    One ASP.NET 構想 OneASP.NET Vision
  • 20.
    Katana Project Helios OWIN, KatanaProject と Helios Katana Architecture OWIN
  • 21.
     OWIN =Open Web Interface for .NET : http://owin.org/  .NET における Web サーバーと Web アプリケーションを 疎結合にするための抽象化インターフェース定義  Katana Project : http://katanaproject.codeplex.com/  OWIN の MS プラットフォーム実装プロジェクト  名前空間 : Owin, Microsoft.Owin ..., Microsoft.AspNet.WebAPI.Owin  Helios  System.Web 非依存で、直接 IIS 上で動作する軽量 OWIN サーバー OWIN, Katana Project と Helios New Approach to building .NET
  • 22.
  • 23.
     モジュラー設計 (NuGet) オープン ソース (.NET Foundation)  コンパイル不要の開発と配置 (Roslyn)  Windows, Mac, Linux での実行 (Mono Project)  完全な Side by Side 実行  依存性の注入 (Dependency Injection)  高速化, 低メモリ使用量と高スループット  クラウドへ最適化 (設定, デバッグ, ロギング, キャッシュ …) ASP.NET vNext (Next Version) Summary of ASP.NET vNext www.asp.net/vnext : github.com/aspnet
  • 24.
     KRuntime (KRE) vNext アプリケーションのビルド・実行環境, SDK  Core CLR, Application Host, Roslyn Loader, …  K command  ランタイム エントリ ポイント  例: “k run”, “k web”, …  K Version Manager (KVM)  KRE バージョン管理 : install, upgrade, list, use, alias  K Package Manager (KPM)  アプリケーションのパッケージ管理 : restore, install, pack ASP.NET vNext : ランタイム ASP.NET vNext Runtime KRE K App KVM KPM
  • 25.
     project.json  ランタイムバージョンや依存関係などの実行に必要な情報を記述  Visual Studio 設定などの開発ツール関連情報は含まない ASP.NET vNext : プロジェクト設定 ASP.NET vNext Runtime { "dependencies": { "Microsoft.AspNet.ConfigurationModel": "0.1-alpha-*", } "commands": { "web": "Microsoft.AspNet.Hosting server= ..." }, "configurations": { "net451": {"dependencies": { ... }}, "k10": {"dependencies": { ... }} } }
  • 26.
    レイヤー 4 アプリケーション レイヤー 3 アプリケーション アプリケーションホスト レイヤー 2 マネージド エントリ ポイント レイヤー 1 CLR ネイティブ ホスト レイヤー 0 ネイティブ プロセス ASP.NET vNext : KRuntime 構造 KRuntime Structure https://github.com/aspnet/Home/wiki/KRuntime-structure (aspnet/Home/samples/HelloWeb/image.jpg) KRuntimeKHostApps
  • 27.
     Web Forms,MVC 5, Web API 2, Web Pages 3, SignalR 2, EF 6  .NET vNext でフル サポート  MVC, Web API, Web Pages 6, SignalR 3, EF 7  MVC / Web API / Web Pages の統合と SignalR 3 のサポート  新しいプロジェクト (*.kproj) と設定 (project.json)  System.Web 非依存, 新しい軽量 HttpContext (NOT System.Net.Http)  .NET vNext  .NET Framework サブセット (Cloud Optimized) : Core CLR (k10)  .NET Framework フルセット : Desktop CLR (net451) ASP.NET vNext の互換性 Compatibility of ASP.NET vNext
  • 28.
     次期バージョン VisualStudio “14” CTP 2 リリース  CTP : Community Technology Preview  RTM (正式リリース) は 2015 年を予定  Go-live ライセンスではないため運用環境で利用不可  Azure 仮想マシン イメージが利用可能  Windows Server 2012 R2 + Visual Studio “14” Professional CTP 2  ASP.NET vNext  Visual Studio “14” CTP 2 で vNext プロジェクト テンプレートが利用可能 (.kproj)  新しい設定システム (project.json) の採用 Visual Studio “14” CTP 2 & ASP.NET vNext Community Technology Preview
  • 29.
    モダン Web とASP.NET の今後 Modern Web and ASP.NET vNext エディターや 開発ツールの選択 オープンソースへの貢献 クロス プラットフォームOSS クラウドへ シームレスな移行 迅速な開発サイクルモジュール化 パフォーマンス向上
  • 31.
  • 32.
    .NET の今後 Future of.NET Next gen JIT (“RyuJIT”) SIMD (Data Parallelization) ランタイム コンパイラー .NET Compiler Platform (“Roslyn”) Languages innovation BCL and PCL Entity Framework ライブラリ
  • 35.
    .NET Foundation 設立 .NETFoundation for Openness .NET API for Hadoop WebClient .NET Compiler Platform ("Roslyn") .NET Map Reduce API for Hadoop .NET Micro Framework ASP.NET MVC ASP.NET Web API ASP.NET Web Pages ASP.NET SignalR Composition (MEF2) Entity Framework Linq to Hive MEF (Managed Extensibility Framework) OWIN Authentication Middleware Rx (Reactive Extensions) Web Protection Library Windows Azure .NET SDK Windows Phone Toolkit WnsRecipe Mimekit Xamarin.Auth Xamarin.Mobile Couchbase for .NET http://www.dotnetfoundation.org @dotnetfdn // #dotnetfdn Mailkit System.Drawing
  • 36.
     ASP.NET OfficialWeb Site  http://www.asp.net/  ASP.NET で作る Web アプリケーション構築ジャンプ スタート  http://www.microsoftvirtualacademy.com/training-courses/733552de-3921-4cca-8834-3e34ecedb9ab  ASP.NET MVC 4 Web アプリケーションの開発ジャンプ スタート  http://www.microsoftvirtualacademy.com/training-courses/developing-asp-net-mvc-4-web-applications- jump-start-japanese  Building Modern Web Apps  http://channel9.msdn.com/Series/Building-Modern-Web-Apps  An Overview of Project Katana  http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana  Introducing ASP.NET Project “Helios”  http://blogs.msdn.com/b/webdev/archive/2014/02/18/introducing-asp-net-project-helios.aspx 関連リソース Resources
  • 37.
     aspnet –GitHub : https://github.com/aspnet  ASP.NET vNext : Official ASP.NET Web Site  Blog Posts :  Introducing ASP.NET vNext  ASP.NET vNext Overview  TechEd 2014 NA Sessions :  Introducing the future of .NET on the server  Deep Dive the future of .NET on the server  Channel 9 Live: ASP.NET Developer Q&A ASP.NET vNext 関連リソース Resources for ASP.NET vNext
  • 38.
    © 2014 MicrosoftCorporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.