最近のasp.net事情2013winter
DESCRIPTION
2013/12/14 (土) に行われた『合同勉強会 in 大都会岡山 -2013 Winter-』の同名のセッションの資料。 2013年冬時点での、ASP.NET全体の概要やOne ASP.NETというキーワードを紹介。TRANSCRIPT
― ASP.NET総選挙 ―
最近のASP.NET事情2013 Winter
きよくら ならみ
合同勉強会 in 大都会岡山 -2013 Winter
2013.12.14
自己紹介
• きよくら ならみ
– @kiyokura / id:kiyokura
• 岡山生まれ岡山育ちのプログラマー
–現在は県内の某製造業で社内SE
• NET系の開発やWebアプリ開発
– Microsoft MVP for ASP.NET/IIS
OITEC
• Okayama IT Engineers Community
• 主にマイクロソフトの製品やテクノロジをターゲットにした勉強会などを行っています
• http://oitec.vbstation.net
オープンラボ岡山
• 岡山周辺の技術者のためのIT技術勉強会プラットフォーム
• http://www.olojp.net/
• 単発で勉強会とかやりたいときに、名前だけ使ってくれてもOKです!
私の近況報告
Question.
ASP.NETを使ったことがありますか?
Question.
ASP.NETとは何でしょうか
"ASP.NET is a free web framework
for buildingweb sites, apps and services
with HTML, CSS and JavaScript."
http://www.asp.net/
.NET Frameworkを基盤とした
Web アプリケーション フレームワーク
One more question.
ASP.NETのWebアプリケーションフレームワーク
としての技術的な特徴はどいうものか
一言ではなかなか言えません
イベントドリブンコンポーネント型開発コードビハインド
フロントコントローラーフロントページ
MVCCoC
RESTful APIリアルタイムWeb
クライアントサイドJavaScript MVC
!?
2013年末時点でASP.NETはこれだけ?ある
• ASP.NET Web Forms
• ASP.NET MVC
• ASP.NET Web Pages
• ASP.NET Web API
• ASP.NET SignalR
• ASP.NET SPA
キーワード『One ASP.NET』
アジェンダ
• ASP.NETの特徴あるフレームワークたち
• One ASP.NET
• 最近のASP.NETのエトセトラ
• vNext?
ASP.NETの特徴あるフレームワークたち
~ASP.NET 総選挙~
ASP.NET Web Forms
ASP.NET Web Forms
• ASP.NET登場時からある一番の古株
– 2002年に登場
–現在の最新バージョンは「Web Forms 4.5」
• 当初は「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
ASP.NET MVC
• その名の通り「MVC アーキテクチャ」
– 2009年にリリース
–当初はアドオンとして登場
–現在の最新版は「MVC 5」
ASP.NET MVC
Controller
View Model
ASP.NET MVC
• フレームワークとしての機能– スキャフォールディング– 設定より規約– 割とRuby on Railsにインスパイアという噂
• Viewはエンジンを選択可能– Razor / ASPX の他、オープンソース等々
• Hamlも使える
• モデルについては自由– 基本的に「これを使え」というは縛り無し
• 状況に合わせてテクノロジやアーキテクチャを選択すればよい、というスタンス
デモ
ASP.NET Web Pages
ASP.NET Web Pages
• ASP.NET中で最もシンプル
– 2011年に最初のバージョンが登場
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
ASP.NET Web API
• HTTPサービスを構築するためのもの
– 2012年8月リリース
ASP.NET Web API
• RESTful
– REST
• Representational State Transfer
– HTTPの動詞とAPIのメソッドを対応させる
• POST / GET / PUT / DELETE
• 汎用的な出力形式
– JOSN
– xml
デモ
ASP.NET SignalR
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
デモ
ASP.NET SPA
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は一つじゃない
• 現在、6つのフレームワークがある
• それぞれ全く異なった特徴を持つ
• 用途・スキル・要件に合わせて柔軟に採用可能
One ASP.NET
One ASP.NETビジョン
• "様々"なASP.NETのフレームワークを
• 柔軟に組み合わせて利用する構想
– pluggable(プラガブル)に
One ASP.NET
ASP.NET
Web
Forms
Web
PagesMVC
Web
APISignalR
Single Page Apps
Sites Services
Visual Studio 2013
キーポイント
• NuGet
– NuGetによってライブラリをプラガブルに
–各フレームワークを構成するライブラリをNuGetで柔軟かつ整合性のとれた管理を実現
より柔軟に
ASP.NET
Web
Forms
Web
PagesMVC
Web
APISignalR
Single Page Apps
Sites Services
YOU! YOU!
最近のASP.NETのエトセトラ
オープンソース・プロダクトの採用
• 社外のオープンソースのプロダクトを積極的に採用
–プロジェクトテンプレートとして組み込み
• jQueryやModernizr
プロダクトをOSSに
• Microsoft自身のプロダクトをOSSに• 特にASP.NETは顕著
– MVC / Web Pages / Web API• https://aspnetwebstack.codeplex.com• Apache License 2.0
– SignalR• http://signalr.net/• https://github.com/SignalR/SignalR• Apache License 2.0
– SPA• 構成要素がOSS
– MVC / Web API– Knockout / AngularJS / backbone 等々
vNext
MVC 5.1, Web API 2.1, Web Page 3.1
• 2013年12月14現在
– RC版がリリースされている
• http://blogs.msdn.com/b/webdev/archive/2013/12/09/asp-net-and-web-tools-2013-2-preview-for-visual-studio-2013.aspx
–正式リリースは年明け?
OWIN
• OWIN defines a standard interface between .NET web servers and web applications. The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and, by being an open standard, stimulate the open source ecosystem of .NET web development tools.
Katana Project
• OWINのリファレンス実装
– https://katanaproject.codeplex.com
Helios
• IIS上でOWINを動かすライブラリ
– https://www.nuget.org/packages/Microsoft.Owin.Host.IIS/
–参考
• Checking out the Helios IIS Owin Web Server Host
• http://weblog.west-wind.com/posts/2013/Nov/23/Checking-out-the-Helios-IIS-Owin-Web-Server-Host
まとめ
まとめ
• One ASP.NET
–多様なフレームワークをプラガブルに
• よりオープンに
– OSSの採用およびOSSとして実装
• OWIN
–より軽量でシンプルに
ご清聴ありがとうございました