SlideShare a Scribd company logo
ASP.NET
"NOW" and "NEXT"
OITEC 第19回勉強会
2014/07/19
きよくら ならみ
自己紹介
• きよくら ならみ
–@kiyokura
–kiyokura.hateblo.jp
• 岡山生まれ岡山育ちの
ソフトウェアエンジニア
• NET系の開発やWebアプリ開発
– Microsoft MVP for ASP.NET/IIS
諸注意と免責事項
• 私個人による調査と見解であり所属
する組織を代表するものではありま
せん
• 万が一、本セッションの内容の誤り
に起因する何らかの損害が発生した
場合においても、私は一切の責任を
負うことができません
ご了承ください
アジェンダ
• “Web Forms”から“One ASP.NET”へ
• OWINとは
• 来るべき ”vNext”
“Web Forms”から“One ASP.NET”へ
現在のASP.NETの姿
ASP.NETとは
• .NET Frameworkを基盤とした
Webアプリケーションの
プラットホーム
ASP.NETのフレームワーク
• MSが提供するフレームワーク
–ASP.NET MVC
–ASP.NET Web Forms
–ASP.NET Web Pages
–ASP.NET SPA
–ASP.NET Web API
–ASP.NET SignalR
• これらすべてが ”ASP.NET” です
ASP.NET Web Forms
• ASP.NET登場時からある一番の古株
– 2002年に登場
– 現在の最新バージョンは
「Web Forms 4.5.1」
• 当初は「ASP.NET=コレ」
– そもそもWeb Formsという名前は
後述の「ASP.NET MVC」が出てきてから
区別のために呼ばれ始めた
ASP.NET Web Forms
ASP.NET Web Forms
• Webアプリ”らしくない”開発
–IDEによる"ポトペタ開発"
–コントロールのドラッグ&ドロップ
–JavaScriptを1行も書くことなくAjaxを実
現
• Web特有の事情を抽象化
–ViewStateとPostback
ASP.NET MVC
• その名の通り「MVC アーキテク
チャ」
–2009年にリリース
–当初はアドオンとして登場
–現在の最新版は「MVC 5.x」
ASP.NET MVC
Controller
View Model
ASP.NET MVC
• フレームワークとしての機能
– スキャフォールディング
– 設定より規約
– 割とRuby on Railsにインスパイア
• Viewはエンジンを選択可能
– Razor / ASPX の他、 Hamlなどオープンソース等々
• モデルについては自由
– 基本的に「これを使え」というは縛り無し
• 状況に合わせてテクノロジやアーキテクチャを選択す
ればよい、というスタンス
ASP.NET Web Pages
• ASP.NET中で最もシンプル
–2011年に最初のバージョンが登場
–MVCの既定ビューエンジン
「Razorビューエンジン」
をページフロント方式で使えるように
した感じ
ASP.NET Web Pages
• HTMLにコードを埋め込む方式
– Classic ASPやPHP、JSPに近い
• Razor構文
– @を使って、HTML中にコードを埋め込む
– コードには、C#とVB.NETが利用可能
• C#とVB.NETの機能はフルに利用可能
• 事前のコンパイルが可能
– サーバ上で直接編集も可能
ASP.NET Web Pages
ASP.NET Web API
• HTTPサービスを構築するためのもの
–2012年8月リリース
ASP.NET Web API
• RESTful
– REST
• Representational State Transfer
– HTTPの動詞とAPIのメソッドを対応させる
• POST / GET / PUT / DELETE
• 汎用的な出力形式
– JOSN
– xml
• OData対応
ASP.NET SignalR
• リアルタイムWeb通信を実現
–2013年2月に1.0リリース
ASP.NET SignalR
• リアルタイムWeb
– Webによる双方向通信
– WebSocket対応
• 状況に合わせてフォールバック
– 自動的に最善の手段を採用
• WebSocket
• Server Sent Events
• Forever Frame
• Ajax long polling
ASP.NET SignalR
• クライアント側にもライブラリを提
供
–JavaScript
–.NET
–iOS
–Android
• 類似技術:Socket.IO
ASP.NET SPA
• Single Page Application
–2012年に登場
• VS2012 Update2より
• 単一ページ構成のAjaxアプリケー
ション
–JavaScriptの
クライアントサイドライブラリを利用
ASP.NET SPA
クライアント サイド
HTMLページ
サーバ サイド
Webサービス
(Web API 等)
ページ返却
(MVC or 静的ページ等)
HTMLを
一枚返す
JavaScript
(クライアントサイド
MVCフレームワーク)
• ビジネスロジック
• 画面遷移
データ
ASP.NET SPA
• 多様なJavaScriptフレームワークに対応
– Knockout.js
– Backbone.js
– AngularJS
– DurandalJS
– EmberJS
• 各種テンプレートをダウンロード可能
– http://www.asp.net/single-page-
application/overview/templates
ASP.NETの歴史
• 初めて登場したのは2002年
• 2014年の現在まで、
かなりの速度で進化してきた
2002~2003年 ASP.NETの登場
• 2002年、ASP.NET 1.0
–.NET Framework 1.0
–Visual Studio .NET
• 2003年、ASP.NET 1.1
–.NET Framework 1.1
–Visual Studio 2003
1.1は1.1のバグフィックス&安定版的な
2005~2008年 Web Formsの完成へ
• 2005年、ASP.NET 2.0
– .NET Framework 2.0
– Visual Studio 2005
– アドオン:Ajax Extensions
Web Formはこの時点でほぼほぼ完成
• 2007年、ASP.NET 3.5
– .NET Framework 3.5
– Visual Studio 2008
– Ajax Extensionsの内包
ASP.NETそのものより、
LINQやC#の新しい構文などがインパクト大
2009~2012年 進撃のMVC
• 2009年03月、MVC 1.0
• 2010年03月、MVC 2.0
• 2010年04月、ASP.NET 4.0
– VS2010, .NET 4.0
– Web Forms 4.0
• 2011年01月、MVC 3.0, Web Pages 1.0
• 2012年08月、MVC 4.0, Web API 1.0, Web Pages 2
– VS2012, .NET 4.5
– Web Forms 4.5
 MVCが怒涛の勢いで進化
 Web APIとWeb Pagesも登場
2013~2014年 SignalRの登場とMVC 5
• 2013年02月、SignalR 1.0
• 2013年08月、SignalR 2.0
• 2013年10月、MVC 5, Web API 2,
Web Pages 3
– VS2013, .NET 4.5.1
Web Forms 4.5.1
• 2014年01月、MVC 5.1, Web API 2.1,
Web Pages 3.1
SignalRが登場
MVCの進化も止まらない
大体の歴史感
• VS2005時点でWeb Formsは概ね完成
–最近は大きな進歩はない
• 2009年に誕生したMVCは怒涛の勢い
で進化
–MVC 3 で大まかに固まって
–MVC 5.x まで堅実な進化
• Web APIやSignalRも着実に進歩中
One ASP.NET
• 数あるASP.NETのフレームワーク
• プラガブルに利用できるように
One ASP.NET
ASP.NET
Web
Forms
Web
Pages
MVC
Web
API
SignalR
Single Page Apps
Sites Services
Visual Studio 2013
キーポイント
• NuGet
–NuGetによってライブラリをプラガブル
に
–各フレームワークを構成するライブラ
リをNuGetで柔軟かつ整合性のとれた管
理を実現
より柔軟に
ASP.NET
Web
Forms
Web
Pages
MVC
Web
API
SignalR
Single Page Apps
Sites Services
YOU! YOU!
とはいえ…
• 何を使えばいい?
• 特に画面があるやつ
–Service系は特徴がハッキリしてるので
• あくまで私見ですが…
私の思う、選択のポイント
• MVCが最初の選択肢
– 何を選んでいいかわからないならコレ
• ライトな目的ならWeb Pagesを検討
– 3-4画面程度のちょっとしたアプリ
– Webアプリ自体の勉強目的
• Web Formsの選択は慎重に
– 幾つか要件が当てはまるなら採用して良い
• 要員にWeb Forms経験者
• 商用コンポーネントの利用
• 通信のオーバーヘッドの許容…等
– 例えばオンプレのエンプラアプリを商用コンポーネントを
バンバン使って経験者が開発するとかならまだまだアリ
その他外せないポイント
• クライアントサイドテクノロジー
–jQueryをはじめとしたOSSの採用
–TypeScriptとの親和性
• ツールの充実
–Visual Studioの機能
–Web Essentials等の便利機能
OWINとは
次へつながるキーテクノロジー?
Open Web Interface for .NET
• Webアプリケーション と Webサー
バーを接続する インタフェースの規
格
オープンな”仕様”
• http://owin.org/
• コミュニティプロジェクト
アプリとサーバ間の接続を抽象化
• WebアプリとWebサーバの結合を疎
に
–移植性の向上
–多様なコンポーネント開発
• インスパイア元
–Ruby- Rack
–Python - WSGI
–Perl- PSGI
OWINの仕様が決めていること
• アプリとサーバの間の接合方式
–インタフェースの仕様
–データ構造は二つ
• IDictionary<string, object>
• Func<IDictionary<string, object>, Task>
App
Server
ここ!
OWINがASP.NETにもたらすもの
• IISへの依存から卒業
–Selfhost
–IIS以外のWebサーバ
• プラガブルなコンポーネント開発
–コンポーネントもIIS非依存
アプリ
IIS selfhost
アプリ
Katanaプロジェクト
• マイクロソフトによるOWINの実装
–OWIN自体はあくまで"規格“
–リファレンス実装としてのkatana
• katanaの概要
–https://katanaproject.codeplex.com/
–http://msdn.microsoft.com/ja-
jp/magazine/dn451439.aspx
Katanaのアーキテクチャ
Application
Middleware
Server
Host
Microsoft.Owin.*
• Katanaにって実装されているアセン
ブリ
–例:Microsoft.Owin.Host.SystemWeb
• OWINをSystem.Web(≒ 現在のASP.NET)
で使うためのライブラリ
• ASP.NET Identity等で既に利用
OWINは既に使われている
• OWINの実装、katanaのプロダクトは
既に使われている
–ASP.NET Identity
–SignalR 2.0
Helios
• OWINをIISにホストするためのライブ
ラリ
–Microsoft.Owin.Host.IIS
–System.Webに依存しないラッパー
• 2014.07.15現在、まだα版
–Microsoft.Owin.Host.IIS 1.0.0-alpha1
ここまでのまとめ
• ”OWIN” とは
ASP.NETを次のステップへといざなう
オープン規格
• "Katana Project“
マイクロソフトによるOWINの実装
• OWINはVS2013世代で既に利用され
始めている
来るべき ”vNext”
次のクラウドの時代へ
注意
※ここから先はアルファのお話。
※現時点ですぐに
“使える”という類の話しではない
ASP.NET vNext
• ASP.NETの次バージョン
• 2014年5月、
TechEd North America 2014で発表
オフィシャルな情報
• http://www.asp.net/vnext
–ただし正式リリース後はコンテンツは
変わると思う(次世代バージョンのことな
ので)
特徴をピックアップ
• ASP.NET MVC 6, Entity Framework 7,
SignalR 3
• クラウドに最適化
• IISへの依存を解消
• DI (Dependency Injection)
• 破壊的な変更
• オープンソース
ASP.NET MVC 6, Entity Framework 7 ,
SignalR 3
• MVC 6はMVC, Web API , Web Pages
を含む
–名前空間やアセンブリを整理し統合
• Web FormsはvNextで
バージョンアップしない
–Web Forms 4.5.xの実行はサポート
クラウド最適化
• side-by-sideでのデプロイ
– GACに依存しない
– ランタイムの事前インストール不要
• ランタイムごと配置
• Core CLR
• 事前のコンパイルも不要
– Roslynによる実行時コンパイル
– サーバー上にソースファイルのまま配置
IISへの依存を解消
• セルフホスト可能
• k runtime
• IISへはHeliosを使ってホスト
• mono上でも動作
macやLinux上で動作
DI (Dependency Injection)
• DIのフレームワークレベルでのサ
ポート
–http://blogs.msdn.com/b/webdev/archiv
e/2014/06/17/dependency-injection-in-
asp-net-vnext.aspx
• NinjectやUnity DI等のコンテナも
利用可能
破壊的な変更
• プロジェクトファイルの形式の変更
–プロジェクトファイルが「kproj」
–設定ファイルがjson形式
• System.Webの消失
–既存のSystem.Webに依存したコードは
動かない
オープンソース
• Githubにてホスト
–https://github.com/aspnet
デモ
• Monaco上でvNextのアプリを編集
自分で触って試せます
• Visual Studio “14” CTP 2
–ダウンロード可能
–Azure VMのギャラリーに
設定済みイメージ
CTPというのを理解して触って下さい
安定動作は期待しない
パフォーマンスどういういう段階でも
ない
ここまでのまとめ
• ASP.NET はvNextへ
• vNextはよりクラウドを意識
• 破壊的な変更もある
• 乞うご期待!
本日のまとめ
たぶんまとまりきらない
本日の話題
• “One ASP.NET”という現在
• キーテクノロジー”OWIN”
• vNextはすぐそこまで来ている
是非このビデオを見てください
• 5月に開催されたde:codeのビデオ
–この 10 年をキャッチアップ! .NET 開発
者のための技術選択と「いま」
• http://channel9.msdn.com/Events/de-
code/2014/TL-001
–Web アプリケーション パターンの進化
~ One ASP.NET の今とこれから ~
• http://channel9.msdn.com/Events/de-
code/2014/TL-001
ご清聴ありがとうございました

More Related Content

PDF
How do you like knockout?
PDF
どうなる?Visual Studioの クライアントサイド web開発の今後
PPTX
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
PDF
無償版Visual StudioでいろいろWeb開発
PPTX
Windows ストアアプリを HTMLで作成する
PDF
WordPress開発の最新事情
PDF
フロントエンド初学者がSPAに手を出してみた
PDF
軽量フレームワークNancy
How do you like knockout?
どうなる?Visual Studioの クライアントサイド web開発の今後
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
無償版Visual StudioでいろいろWeb開発
Windows ストアアプリを HTMLで作成する
WordPress開発の最新事情
フロントエンド初学者がSPAに手を出してみた
軽量フレームワークNancy

What's hot (20)

PDF
WordCamp Tokyo 2018 by ocws
PPTX
オレたちとVisual Studioとの関係を話そう
PDF
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
PPTX
[社内勉強会]SPAのすすめ
PDF
軽量ASP.NETフレームワークNancy
PDF
Web制作者が知っておきたいアクセシビリティ最新動向
PDF
Spa のための web サーバ構築ノウハウ
PDF
Media Assembly Kit
PDF
使ってみよう、WebMatrix3
PDF
three.jsによる一歩進めたグラフィカルな表現
PDF
AngularJSで業務システムUI部品化
PPTX
20121215
PPTX
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
PDF
WP-APIを使ってみよう&No PHPテーマという考え方
PDF
なぜ、サイボウズでアクセシビリティなのか?
PDF
今後のWeb開発の未来を考えてangularJSにしました
PDF
最近のASP.NET事情2013Winter
PDF
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
PPTX
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
PDF
WordPressをこれから始める人のためのテーマ講座
WordCamp Tokyo 2018 by ocws
オレたちとVisual Studioとの関係を話そう
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
[社内勉強会]SPAのすすめ
軽量ASP.NETフレームワークNancy
Web制作者が知っておきたいアクセシビリティ最新動向
Spa のための web サーバ構築ノウハウ
Media Assembly Kit
使ってみよう、WebMatrix3
three.jsによる一歩進めたグラフィカルな表現
AngularJSで業務システムUI部品化
20121215
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
WP-APIを使ってみよう&No PHPテーマという考え方
なぜ、サイボウズでアクセシビリティなのか?
今後のWeb開発の未来を考えてangularJSにしました
最近のASP.NET事情2013Winter
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
WordPressをこれから始める人のためのテーマ講座
Ad

Viewers also liked (18)

PDF
エンジニア勉強会20140424
PDF
2011年マイクロソフト テクノロジー振り返り~開発編~
PDF
20141129-dotNet2015
PDF
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
PDF
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
PDF
第5回業開中心会議
PDF
マイクロソフトWeb開発の今と今後
PPTX
ASP.NETの今とこれから
PDF
Web開発の最新トレンド ~1から知るASP.NET~
PPTX
第5回 業開中心会議 チャレンジングな業務アプリ開発者を目指そう
PDF
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
PDF
OWIN って何?
PDF
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
PPTX
今から始める、Windows 10&新.NETへの移行戦略
PPTX
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
PDF
業務アプリケーション開発を支える.NET技術 #ngtnet
PDF
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
PPTX
はじめてのASP.NET MVC5
エンジニア勉強会20140424
2011年マイクロソフト テクノロジー振り返り~開発編~
20141129-dotNet2015
アプリ開発も出来るイマドキのWeb技術入門(エンジニア適職フェアWeb技術入門セミナー)
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
第5回業開中心会議
マイクロソフトWeb開発の今と今後
ASP.NETの今とこれから
Web開発の最新トレンド ~1から知るASP.NET~
第5回 業開中心会議 チャレンジングな業務アプリ開発者を目指そう
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
OWIN って何?
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
今から始める、Windows 10&新.NETへの移行戦略
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
業務アプリケーション開発を支える.NET技術 #ngtnet
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
はじめてのASP.NET MVC5
Ad

Similar to ASP.NET "NOW" and "NEXT" (20)

PPTX
20140322
PDF
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
PPTX
Visual Studio 2017 事はじめ
PDF
Silverlight+COMにチャレンジ
PPTX
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
PPTX
Lightning componentとlightning design system
PDF
A 1-2 One ASP.NET - ASP.NET Web Stack
PDF
【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント
PDF
Spring.project
PDF
Mvc conf session_1_osada
PDF
オープニング
PPTX
ASP.NET MVC プログラミング入門の入門
PDF
知って得する (かもしれない)、Internet Explorer での Canvas と SVG の描画
PDF
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
PPTX
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
PDF
WebAPIのこれまでとこれから
PDF
SpringBoot開発の基本
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
PDF
【BS2】.NET 6 最新アップデート
PPTX
Hands on PhotoBlog App with WordPress REST API and App Inventor
20140322
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
Visual Studio 2017 事はじめ
Silverlight+COMにチャレンジ
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
Lightning componentとlightning design system
A 1-2 One ASP.NET - ASP.NET Web Stack
【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント
Spring.project
Mvc conf session_1_osada
オープニング
ASP.NET MVC プログラミング入門の入門
知って得する (かもしれない)、Internet Explorer での Canvas と SVG の描画
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
WebAPIのこれまでとこれから
SpringBoot開発の基本
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
【BS2】.NET 6 最新アップデート
Hands on PhotoBlog App with WordPress REST API and App Inventor

More from Narami Kiyokura (9)

PDF
Visual Studioで始めるTypeScript開発入門
PDF
最近、リアルタイムWebが面白い
PDF
脱・Excelホーガンシのために、その1
PDF
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
PDF
よろしい、ならばMicro-ORMだ
PDF
WebMatrixで遊ぶ-ゆるふわGitHubページ
PDF
TypeScript超入門
PPTX
NuGetの社内利用のススメ
PDF
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
Visual Studioで始めるTypeScript開発入門
最近、リアルタイムWebが面白い
脱・Excelホーガンシのために、その1
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
よろしい、ならばMicro-ORMだ
WebMatrixで遊ぶ-ゆるふわGitHubページ
TypeScript超入門
NuGetの社内利用のススメ
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介

ASP.NET "NOW" and "NEXT"