最近のasp.net事情2013winter

Post on 18-Dec-2014

14.582 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

• Open Web Interface for .NET

– http://owin.org/

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

–より軽量でシンプルに

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

top related