狠狠撸

狠狠撸Share a Scribd company logo
MVC4に見えた新しい曙光
new
Templates Web API Display Modes 非同期Task OAuth/OpenID
による認証技術
App_Startフォルダ追加
bootstrapテーマを使用
コントローラ?クラスが任意の
フォルダへ追加可能に(MVCと
WebAPIを分ける)
フ
ォ
ル
ダ
構
成
か
ら
見
え
た
M
V
C
4
の
新
機
能
MVC3のフォルダ構成
App_Sartフォルダ
いままで(~MVC3)
Global.asax ファイル内の
アプリケーション クラス(
System.Web.HttpApplication の派生クラス)
①ルーティングの設定
②グローバル フィルタの追加
などの static メソッド群
↓結果↓
Global.asax ファイルが肥大化
これから(MVC4 ~ )
RouteConfig.cs
BundleConfig.cs
WebApiConfig.cs
FilterConfig.cs
Startup.Auth.cs
App_Sart
App_Start/RouteConfig.cs
追加したい URL ルーティングの指定や、デ
フォルトのルーティングの変更
例えば、 http://localhost:53280/Abc/Def/12 というリクエスト
URLだった場合、AbcController クラスの Def() メソッドが呼
び出され、引数 id に 12 が渡される。
App_Start/WebApiConfig.cs
WebAPI用のルーティングの設定
例えば「api/values/1」という
URLでHTTPのGETメソッドを
呼び出した場合は、
ValuesControllerクラス
(=コントローラ)のGet(id)
メソッドが呼び出され、
引数として「1」が渡される。
App_Start/FilterConfig.cs
必要なグローバル フィルタの追加はこの
RegisterGlobalFilters メソッドに実装していくことになる。
App_Start/BundleConfig.cs
ネットリクエスト時のファイル読み込み時間を削減するために
バンドル&ミニフィケーションの仕組みを実現するためのファイル
バンドル:リクエスト時CSSやJavaScriptファイルが
ばらばらではなく、1つのファイルにまとめて
リクエストされる仕組み
ミニフィケーション:空白や不要な文字を削除して
ファイル?サイズを小さくする仕組み
App_Start/BundleConfig.cs
仮想パス
実際ファイルの場所
登録したバンドル?ファイルを参照するには、.cshtmlファイルなどのHTMLの
テンプレート?ファイルに読み込みコマンドを記述する。
ViewsShared_Layout.cshtml
CSSのバンドル
ファイル読込
jsのバンドル
ファイル読込
先の仮パス
こちらのconfigにあるメソッドは、Global.asax.csファイル
のApplication_Startメソッドにより実行される
MVC4に見えた新しい曙光(抜粋)
new
Templates Web API Display Modes 非同期Task OAuth/OpenID
による認証技術
新しい、美しいテンプレート
ディフォルトテンプレートへの強化
① new
Templates
ババアからお洒落マダムに変身
アダプティブ?
レンダリングによる
スマホFriendly
レスポンシブ?デザインと
アダプティブ?デザインの違いは?
http://www.web-integration.info/en/blog/responsive-vs-adaptive-design/
MVC4
新テンプレートの追加
① new
Templates
MVC3 Web アプリケーション
MVC4 Web アプリケーション
VS 2015 RC版の
テンプレート
SPA(Simple Page Application)
クライアント側構成
HTML5
CSS3
knockout.js
jQuery
そのほかJavaScriptライブラリ
サーバサイドの
RESTful API
(WebApi)
ASP.NET Single Page Application (SPA)と は、JavaScript と ASP.NET
Web API をベースとしたクライアント サイド インタラクション中心の
Web アプリケーションを構築するのに適したフレームワークとテンプレート
です。
Server-Side MVC とClient-Side MVC
WebAPI
SPA(Simple Page Application)
MVC4に見えた新しい曙光(抜粋)
new
Templates Display Modes 非同期Task OAuth/OpenID
による認証技術
Web API
ASP.NET Web APIとは
Web API
スマートデバイス向けの
ネイティブ?アプリ
シングル?ページ?アプリの
ようなWebアプリ
Web API
ブラウザや、デスクトップ?アプリケーションから、タブ
レットや携帯電話などのモバイル?デバイスまで、さまざ
まなクライアントにHTTPサービスを提供するためのフレ
ームワーク。
.NET Framework 4以上利用可能
Web API登場の背景
.NET Frameworkが登場してから現在に至るまで、ASP.NET Webサービスや
WCFサービスなど、さまざまなサービス?フレームワークが登場しているが
、多種なクライアントに対応するための機構は用意されていなかった。
往来のフレームワークとASP.NET Web APIの大きな違いは、ASP.NET Web
APIがHTTPに準ずるフレームワークであることだ。
HTTPに準ずると何が良いのか?
HTTPを活用することは、RESTfulなHTTPサービスを構築することにつながる。
REST (Representational State Transfer)
REST Web サービスの 4 つの基本的な設計原則
?明示的に HTTP メソッドを使う
?ステートレスにする
?ディレクトリー構造に似た URI を公開する
?XML、JSONのいずれか、またはその両方を転送する
?サーバー上にリソースを作成するためには POST を使います。
?リソースを取得するためには GET を使います。
?リソースの状態を変更、または更新するためには PUT を使います。
?リソースを除去、または削除するためには DELETE を使います。
MVC4
MVC4
二種類のコントローラあります
MVCのコントローラ
WebAPIのコントローラ
HomeController
AccountController
MVC4に見えた新しい曙光(抜粋)
new
Templates 非同期Task OAuth/OpenID
による認証技術
Web API Display Modes
ブラウザからやってくるリクエストを見て、
対応するテンプレート?ファイル
の切り替えが行われる
ディスプレイ?モード
とは
Display Modes
例:Browser Request → /Home
ViewsHomeIndex.cshtml ViewsHomeIndex.Mobile.cshtml
特定の端末だけは別扱いできる
例:iPhoneからのアクセスだけを別のテンプレートに切り
分けて処理をしたい場合
① iPhone用のテンプレートを用意
(例えば「ViewsHomeIndex.iPhone.cshtml」)
② Global.asaxファイルのApplication_Startメソッドに
以下のようなコードを追加
DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("iPhone")
{
ContextCondition = (context =>
context.GetOverriddenUserAgent().IndexOf
("iPhone",
StringComparison.OrdinalIgnoreCase) >= 0)
});
MVC4に見えた新しい曙光(抜粋)
new
Templates OAuth/OpenID
による認証技術
Web API Display Modes 非同期Task
同期処理とは?
非同期Task
コントローラ
集荷
宜しく
集荷
宜しく
手が離せな
い。どうしよ
う
非同期処理とは?
非同期Task
コントローラ
集荷
宜しく
集荷
宜しく
thread pool
と呼ばれる
お客さんが梱
包の際に、次
の仕事に行こ
う
非同期Action Method
戻り値がTask もしくはTask<ActionResult>
キーワードが二つ!
非同期メソッド
// 何か重たい処理
二つのキーワード 適用可能箇所
async修飾子 通常のメソッド、ラムダ式、匿名メソッド
await演算子 式が書ける場所ならどこでも
戻り値
戻り値にはvoid型/Task型/Task<T>型のいずれか
MVC4に見えた新しい曙光(抜粋)
new
Templates 非同期TaskWeb API Display Modes OAuth/OpenID
による認証技術
フ
ォ
ル
ダ
構
成
か
ら
見
え
た
M
V
C
4
の
新
機
能
ソーシャルログイン
機能を提供する。
ソーシャルログイン同梱
OAuth/
OpenID
による認証技術
appIdとappSecretさえあれば、コメントアウトしたコードを外す
だけで、ソーシャルログインの実装が可能になる。
Startup.Auth.csの抜粋
2011年1月13日 ASP.NET MVC 3.0
2012年8月15日 ASP.NET MVC 4.0
2013年10月17日 ASP.NET MVC 5.0
2014年1月17日 ASP.NET MVC 5.1
2015年2月9日 ASP.NET MVC 5.2
MVC5の最大の特徴はOneASP.NET
に対応している
そのほかは:
① MVC5のプロジェクトはBootstrapテンプレートで生成されます。
② 属性ルーティングのサポート
③ フィルタのオーバーライド
④ 認証フィルタ
⑤ ASP.NET Identityのサポート

More Related Content

Featured (20)

PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
?
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
?
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
?
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
SocialHRCamp
?
PDF
2024 State of Marketing Report – by Hubspot
Marius Sescu
?
PDF
Everything You Need To Know About ChatGPT
Expeed Software
?
PDF
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
?
PDF
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
?
PDF
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
?
PDF
Skeleton Culture Code
Skeleton Technologies
?
PDF
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
?
PDF
Content Methodology: A Best Practices Report (Webinar)
contently
?
PPTX
How to Prepare For a Successful Job Search for 2024
Albert Qian
?
PDF
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
?
PDF
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
?
PDF
5 Public speaking tips from TED - Visualized summary
SpeakerHub
?
PDF
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
?
PDF
Getting into the tech field. what next
Tessa Mero
?
PDF
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
?
PDF
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
?
2024 Trend Updates: What Really Works In SEO & Content Marketing
Search Engine Journal
?
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
?
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
?
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
SocialHRCamp
?
2024 State of Marketing Report – by Hubspot
Marius Sescu
?
Everything You Need To Know About ChatGPT
Expeed Software
?
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
?
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
?
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
?
Skeleton Culture Code
Skeleton Technologies
?
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
?
Content Methodology: A Best Practices Report (Webinar)
contently
?
How to Prepare For a Successful Job Search for 2024
Albert Qian
?
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
?
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
?
5 Public speaking tips from TED - Visualized summary
SpeakerHub
?
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
?
Getting into the tech field. what next
Tessa Mero
?
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
?
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
?

MVC4