Top Banner
ASP.NET MVC と Entity Framework と とととととととととと ととととと (matarillo)
32

ASP.NET MVCとEntity Frameworkで作ってみた

Nov 12, 2014

Download

Documents

INOMATA Kentaro

Tech Ed 2010 Rejected LT
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ASP.NET MVCとEntity Frameworkで作ってみた

ASP.NET MVCとEntity Frameworkでサービスを作ってみた

猪股健太郎(matarillo)

Page 2: ASP.NET MVCとEntity Frameworkで作ってみた

アジェンダ•何を作ったか•分析•設計方針•実装•まとめ

Page 3: ASP.NET MVCとEntity Frameworkで作ってみた

短縮 URLサービスを作りました

Page 4: ASP.NET MVCとEntity Frameworkで作ってみた
Page 5: ASP.NET MVCとEntity Frameworkで作ってみた
Page 6: ASP.NET MVCとEntity Frameworkで作ってみた

分析

Page 7: ASP.NET MVCとEntity Frameworkで作ってみた

画面遷移

トップページ

情報ページ

目的のページ(システム外)

Page 8: ASP.NET MVCとEntity Frameworkで作ってみた

ロバストネス分析

トップページ

別名情報

登録

情報ページ

目的のページ(システム外)

ログ

情報

リダイレクト

Page 9: ASP.NET MVCとEntity Frameworkで作ってみた

CRUD表別名情報 ログ

登録 C情報 R Rリダイレクト R C

Page 10: ASP.NET MVCとEntity Frameworkで作ってみた

設計方針

Page 11: ASP.NET MVCとEntity Frameworkで作ってみた

Presentation

Business

Data Access

論理階層

Page 12: ASP.NET MVCとEntity Frameworkで作ってみた

ASP.NET MVC

Model

View

Controller

Entity Framework

Context

Entity

Page 13: ASP.NET MVCとEntity Frameworkで作ってみた

View Controller

Model

ASP.NET MVC

Entity Framework

Entity

Context

Page 14: ASP.NET MVCとEntity Frameworkで作ってみた

疑問Model Entity== ?

Page 15: ASP.NET MVCとEntity Frameworkで作ってみた

今回の方針Model Entity!=

Page 16: ASP.NET MVCとEntity Frameworkで作ってみた

今回の方針Model Entity

View Model

Data Entity

Page 17: ASP.NET MVCとEntity Frameworkで作ってみた

View Controller

Context

Façade

今回の方針

View Model

Data Entity

Page 18: ASP.NET MVCとEntity Frameworkで作ってみた

View Controller

Context

Façade

View Model

Data Entity

依存関係

Page 19: ASP.NET MVCとEntity Frameworkで作ってみた

実装

Page 20: ASP.NET MVCとEntity Frameworkで作ってみた

Entity FrameworkLog

PK Id

FK1 UrlAliasIdAccessTime

UrlAlias

PK Id

UrlI2 UrlHeadI1 Alias

データベースからモデルを生成

Page 21: ASP.NET MVCとEntity Frameworkで作ってみた

DataEntityUrlAlias

属性

+ Alias+ Id+ Url+ UrlHead操作

+ UpdateAlias()+ UpdateUrlHead()

AliasCreator

属性

操作

+ GetAlias(id : Integer) : String

ロジックを追加

Page 22: ASP.NET MVCとEntity Frameworkで作ってみた

ASP.NET MVCView Controller View

ModelHomeController

ServiceController

Index(Create)

Info(Details)

NotFound

Index [GET]

Index [POST]

Info(alias)

Redir(alias)

Title

Information

UserInput

HtmlUtil

Page 23: ASP.NET MVCとEntity Frameworkで作ってみた

ViewModelpublic class UserInput{ [DisplayName("別名を付ける URL")] [RegularExpression( "s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+", ErrorMessage="URLの形式が不正です。 ")] [Required(ErrorMessage="URLを入力してください。")] public string Url { get; set; }} 宣言型バリデーション

Page 24: ASP.NET MVCとEntity Frameworkで作ってみた

ViewModel

オブジェクトキャッシュ

Information

属性

操作

ObjectCache

属性

操作

Facade

属性

操作

UrlAlias

属性

操作1 1

《use》

《create》

《use》

Page 25: ASP.NET MVCとEntity Frameworkで作ってみた

ControllerHomeController

Index [POST] → RedirectToRoute

Redir(alias) → Redirect

Page 26: ASP.NET MVCとEntity Frameworkで作ってみた

ルーティングルーティング名 パス

“Root”“Info” {alias}-

“Redirect” {alias}“Default” {controller}/{action}/{id}

Page 27: ASP.NET MVCとEntity Frameworkで作ってみた

View

実は jQueryも使ってます

$.getJSON( url, null, function (title) { $('#pagetitle').text(title); });

Page 28: ASP.NET MVCとEntity Frameworkで作ってみた

まとめ

Page 29: ASP.NET MVCとEntity Frameworkで作ってみた

.NET Framework 4

.NET Framework 3.5 SP1

Page 30: ASP.NET MVCとEntity Frameworkで作ってみた
Page 31: ASP.NET MVCとEntity Frameworkで作ってみた

事前にしっかりチェック★

Page 32: ASP.NET MVCとEntity Frameworkで作ってみた

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