最近のasp.net事情2013winter

69
― ASP.NET総選挙 ― 最近のASP.NET事情 2013 Winter きよくら ならみ 合同勉強会 in 大都会岡山 -2013 Winter 2013.12.14

Upload: narami-kiyokura

Post on 18-Dec-2014

14.582 views

Category:

Technology


2 download

DESCRIPTION

2013/12/14 (土) に行われた『合同勉強会 in 大都会岡山 -2013 Winter-』の同名のセッションの資料。 2013年冬時点での、ASP.NET全体の概要やOne ASP.NETというキーワードを紹介。

TRANSCRIPT

Page 1: 最近のASP.NET事情2013Winter

― ASP.NET総選挙 ―

最近のASP.NET事情2013 Winter

きよくら ならみ

合同勉強会 in 大都会岡山 -2013 Winter

2013.12.14

Page 2: 最近のASP.NET事情2013Winter

自己紹介

• きよくら ならみ

– @kiyokura / id:kiyokura

• 岡山生まれ岡山育ちのプログラマー

–現在は県内の某製造業で社内SE

• NET系の開発やWebアプリ開発

– Microsoft MVP for ASP.NET/IIS

Page 3: 最近のASP.NET事情2013Winter

OITEC

• Okayama IT Engineers Community

• 主にマイクロソフトの製品やテクノロジをターゲットにした勉強会などを行っています

• http://oitec.vbstation.net

Page 4: 最近のASP.NET事情2013Winter

オープンラボ岡山

• 岡山周辺の技術者のためのIT技術勉強会プラットフォーム

• http://www.olojp.net/

• 単発で勉強会とかやりたいときに、名前だけ使ってくれてもOKです!

Page 5: 最近のASP.NET事情2013Winter

私の近況報告

Page 6: 最近のASP.NET事情2013Winter

Question.

Page 7: 最近のASP.NET事情2013Winter

ASP.NETを使ったことがありますか?

Page 8: 最近のASP.NET事情2013Winter

Question.

Page 9: 最近のASP.NET事情2013Winter

ASP.NETとは何でしょうか

Page 10: 最近のASP.NET事情2013Winter

"ASP.NET is a free web framework

for buildingweb sites, apps and services

with HTML, CSS and JavaScript."

http://www.asp.net/

Page 11: 最近のASP.NET事情2013Winter

.NET Frameworkを基盤とした

Web アプリケーション フレームワーク

Page 12: 最近のASP.NET事情2013Winter

One more question.

Page 13: 最近のASP.NET事情2013Winter

ASP.NETのWebアプリケーションフレームワーク

としての技術的な特徴はどいうものか

Page 14: 最近のASP.NET事情2013Winter

一言ではなかなか言えません

Page 15: 最近のASP.NET事情2013Winter

イベントドリブンコンポーネント型開発コードビハインド

フロントコントローラーフロントページ

MVCCoC

RESTful APIリアルタイムWeb

クライアントサイドJavaScript MVC

Page 16: 最近のASP.NET事情2013Winter

!?

Page 17: 最近のASP.NET事情2013Winter

2013年末時点でASP.NETはこれだけ?ある

• ASP.NET Web Forms

• ASP.NET MVC

• ASP.NET Web Pages

• ASP.NET Web API

• ASP.NET SignalR

• ASP.NET SPA

Page 18: 最近のASP.NET事情2013Winter

キーワード『One ASP.NET』

Page 19: 最近のASP.NET事情2013Winter

アジェンダ

• ASP.NETの特徴あるフレームワークたち

• One ASP.NET

• 最近のASP.NETのエトセトラ

• vNext?

Page 20: 最近のASP.NET事情2013Winter

ASP.NETの特徴あるフレームワークたち

~ASP.NET 総選挙~

Page 21: 最近のASP.NET事情2013Winter

ASP.NET Web Forms

Page 22: 最近のASP.NET事情2013Winter

ASP.NET Web Forms

• ASP.NET登場時からある一番の古株

– 2002年に登場

–現在の最新バージョンは「Web Forms 4.5」

• 当初は「ASP.NET=コレ」

–そもそもWeb Formsという名前は後述の「ASP.NET MVC」が出てきてから区別のために呼ばれ始めた

Page 23: 最近のASP.NET事情2013Winter

ASP.NET Web Forms

Page 24: 最近のASP.NET事情2013Winter

ASP.NET Web Forms

• Webアプリ”らしくない”開発

– IDEによる"ポトペタ開発"

–コントロールのドラッグ&ドロップ

– JavaScriptを1行も書くことなくAjaxを実現

• Web特有の事情を抽象化

– ViewStateとPostback

Page 25: 最近のASP.NET事情2013Winter

デモ

Page 26: 最近のASP.NET事情2013Winter

ASP.NET MVC

Page 27: 最近のASP.NET事情2013Winter

ASP.NET MVC

• その名の通り「MVC アーキテクチャ」

– 2009年にリリース

–当初はアドオンとして登場

–現在の最新版は「MVC 5」

Page 28: 最近のASP.NET事情2013Winter

ASP.NET MVC

Controller

View Model

Page 29: 最近のASP.NET事情2013Winter

ASP.NET MVC

• フレームワークとしての機能– スキャフォールディング– 設定より規約– 割とRuby on Railsにインスパイアという噂

• Viewはエンジンを選択可能– Razor / ASPX の他、オープンソース等々

• Hamlも使える

• モデルについては自由– 基本的に「これを使え」というは縛り無し

• 状況に合わせてテクノロジやアーキテクチャを選択すればよい、というスタンス

Page 30: 最近のASP.NET事情2013Winter

デモ

Page 31: 最近のASP.NET事情2013Winter

ASP.NET Web Pages

Page 32: 最近のASP.NET事情2013Winter

ASP.NET Web Pages

• ASP.NET中で最もシンプル

– 2011年に最初のバージョンが登場

Page 33: 最近のASP.NET事情2013Winter

ASP.NET Web Pages

• HTMLにコードを埋め込む方式– Classic ASPやPHP、JSPに近い

• Razor構文– @を使って、HTML中にコードを埋め込む

–コードには、C#とVB.NETが利用可能• C#とVB.NETの機能はフルに利用可能

• 事前のコンパイルが可能–サーバ上で直接編集も可能

Page 34: 最近のASP.NET事情2013Winter

ASP.NET Web Pages

Page 35: 最近のASP.NET事情2013Winter

デモ

Page 36: 最近のASP.NET事情2013Winter

ASP.NET Web API

Page 37: 最近のASP.NET事情2013Winter

ASP.NET Web API

• HTTPサービスを構築するためのもの

– 2012年8月リリース

Page 38: 最近のASP.NET事情2013Winter

ASP.NET Web API

• RESTful

– REST

• Representational State Transfer

– HTTPの動詞とAPIのメソッドを対応させる

• POST / GET / PUT / DELETE

• 汎用的な出力形式

– JOSN

– xml

Page 39: 最近のASP.NET事情2013Winter

デモ

Page 40: 最近のASP.NET事情2013Winter

ASP.NET SignalR

Page 41: 最近のASP.NET事情2013Winter

ASP.NET SignalR

• リアルタイムWeb通信を実現

– 2013年2月に1.0リリース

Page 42: 最近のASP.NET事情2013Winter

ASP.NET SignalR

• リアルタイムWeb

– Webによる双方向通信

– WebSocket対応

• 状況に合わせてフォールバック

–自動的に最善の手段を採用

• WebSocket

• Server Sent Events

• Forever Frame

• Ajax long polling

Page 43: 最近のASP.NET事情2013Winter

ASP.NET SignalR

• クライアント側にもライブラリを提供

– JavaScript

– .NET

– iOS

– Android

Page 44: 最近のASP.NET事情2013Winter

デモ

Page 45: 最近のASP.NET事情2013Winter

ASP.NET SPA

Page 46: 最近のASP.NET事情2013Winter

ASP.NET SPA

• Single Page Application

– 2012年に登場

• VS2012 Update2より

• 単一ページ構成のAjaxアプリケーション

– JavaScriptのクライアントサイドライブラリを利用

Page 47: 最近のASP.NET事情2013Winter

ASP.NET SPA

クライアントサイド

HTMLページ

サーバ サイド

Webサービス(Web API 等)

ページ返却(MVC or 静的ページ等)

HTMLを一枚返す

JavaScript(クライアントサイド

MVCフレームワーク)

• ビジネスロジック• 画面遷移

データ

Page 48: 最近のASP.NET事情2013Winter

ASP.NET SPA

• 多様なJavaScriptフレームワークに対応– Knockout.js

– Backbone.js

– AngularJS

– DurandalJS

– EmberJS

• 各種テンプレートをダウンロード可能– http://www.asp.net/single-page-

application/overview/templates

Page 49: 最近のASP.NET事情2013Winter

デモ

Page 50: 最近のASP.NET事情2013Winter

ここまでのまとめ

Page 51: 最近のASP.NET事情2013Winter

ASP.NETは一つじゃない

• 現在、6つのフレームワークがある

• それぞれ全く異なった特徴を持つ

• 用途・スキル・要件に合わせて柔軟に採用可能

Page 52: 最近のASP.NET事情2013Winter

One ASP.NET

Page 53: 最近のASP.NET事情2013Winter

One ASP.NETビジョン

• "様々"なASP.NETのフレームワークを

• 柔軟に組み合わせて利用する構想

– pluggable(プラガブル)に

Page 54: 最近のASP.NET事情2013Winter

One ASP.NET

ASP.NET

Web

Forms

Web

PagesMVC

Web

APISignalR

Single Page Apps

Sites Services

Page 55: 最近のASP.NET事情2013Winter

Visual Studio 2013

Page 56: 最近のASP.NET事情2013Winter

キーポイント

• NuGet

– NuGetによってライブラリをプラガブルに

–各フレームワークを構成するライブラリをNuGetで柔軟かつ整合性のとれた管理を実現

Page 57: 最近のASP.NET事情2013Winter

より柔軟に

ASP.NET

Web

Forms

Web

PagesMVC

Web

APISignalR

Single Page Apps

Sites Services

YOU! YOU!

Page 58: 最近のASP.NET事情2013Winter

最近のASP.NETのエトセトラ

Page 59: 最近のASP.NET事情2013Winter

オープンソース・プロダクトの採用

• 社外のオープンソースのプロダクトを積極的に採用

–プロジェクトテンプレートとして組み込み

• jQueryやModernizr

Page 60: 最近のASP.NET事情2013Winter

プロダクトを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 等々

Page 61: 最近のASP.NET事情2013Winter

vNext

Page 62: 最近のASP.NET事情2013Winter

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

–正式リリースは年明け?

Page 63: 最近のASP.NET事情2013Winter

OWIN

• Open Web Interface for .NET

– http://owin.org/

Page 64: 最近のASP.NET事情2013Winter

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.

Page 65: 最近のASP.NET事情2013Winter

Katana Project

• OWINのリファレンス実装

– https://katanaproject.codeplex.com

Page 66: 最近のASP.NET事情2013Winter

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

Page 67: 最近のASP.NET事情2013Winter

まとめ

Page 68: 最近のASP.NET事情2013Winter

まとめ

• One ASP.NET

–多様なフレームワークをプラガブルに

• よりオープンに

– OSSの採用およびOSSとして実装

• OWIN

–より軽量でシンプルに

Page 69: 最近のASP.NET事情2013Winter

ご清聴ありがとうございました