43
Volodymyr Voytyshyn 08/27/2011 ASP.NET MVC as the next step in web development

SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Embed Size (px)

DESCRIPTION

Володимир Войтишин (м. Рівне)

Citation preview

Page 1: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Volodymyr Voytyshyn08/27/2011

ASP.NET MVCas the next stepin web development

Page 2: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Goal

What is ASP.NET MVC?

Page 3: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Contents

About MVC Pattern

ASP.NET Platform

Sample Application

ASP.NET MVC Project Concepts

ASP.NET MVC Key Features

MVC vs WebForms

Conclusion

Page 4: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ABOUT MVC PATTERN

Page 5: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

History of MVC Pattern

Concept of MVC is described in 1979 by Trygve Reenskaug (Norway)

One of the first version of MVC is implemented in Smalltallk-80 class library

Page 6: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Main Idea of MVC

Separate view and data source

View

Model Controller

Page 7: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Classic MVC (Active Model)

Model

ViewHandle view events

Update data

Data Source

Controller

Get

dat

a

Noti

fy fo

r Ch

ange

s

Mediator

Page 8: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Classic MVC (Passive Model)

Model

ViewHandle view events

Update data

Data Source

ControllerGet

dat

a Notify for Changes

Mediator

Page 9: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVP

ViewHandle view events

Update data

Model

PresenterPut data

MediatorGet data

Page 10: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVP: Key Differences with Classic MVC Presenter knows all about View

Presenter communicates with data source directly

Events in Model and View removed

Presenter implements main presentation logic

Presenter is mediator between Model and View

Page 11: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ASP.NET PLATFORM

Page 12: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ASP.NET Web Forms Key Versions

ASP.NET 1.02002

ASP.NET 2.02005

ASP.NET 3.52007

ASP.NET 4.02010

ASP1998

Page 13: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ASP.NET MVC Key Versions

ASP.NET MVC 12009

ASP.NET MVC 22010

ASP.NET MVC 32011

ASP.NET

Page 14: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ASP.NET Components

ASP.NET Web Forms

ASP.NET MVC

Web Forms View Engine Razor View Engine

ASP.NET CoreCaching

Modules

Pages

Controls

GlobalizationMaster Pages

Handlers

Profile

Membership

Roles

Etc.

Security

Page 15: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

SAMPLE APPLICATION

Page 16: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Concept

Project name: “Easy Reporting”

Idea: time tracking system for developers

Page 17: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Key Use Cases

uc Use Case

Dev eloper Manager

Report working time Confirm dev eloper's working time

Manage tasksManage projects

Page 18: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Components cmp Component

Data Access Layer

Presentation Layer

Data Layer

«Web Application»WebUI

«Class Library»DAL

«Class Library»Entities

«database»ER

ASP.NET MVC 3

Repository Pattern

Entity Framework 4

MS SQL Server 2008

ASP.NET Membership

«Class Library»Castle Windsor

Linq to Entities

«use»

«use»

«use»

«use»«use»

Page 19: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

BASIC CONCEPTS OF MVC PROJECT

Page 20: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Typical MVC Project Structure

Page 21: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Simple Controller and Action

Controller

Action

ProjectController.cs

Page 22: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Simple ViewIndex.cshtml

Page 23: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Simple Client Page

Page 24: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Mediator

MVC Implementation

Controller

ActionView

Model

Client

Page 25: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

ASP.NET MVC KEY FEATURES

Page 26: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Action Results

ActionResult – base class of result of an action

View Redirect JavaScript Json

File HTTP Content Empty

Page 27: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Action Filters

Filter types:– Authorization– Action– Result– Exception

Standard filters:– Authorize– HttpGet– HttpPost– OutputCache– HandleError

Filter scope:– Action– Controller– Application

Action

Action Filter

Action Filter

Page 28: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Action Filters: Example

ProjectController.cs

Page 29: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

View Engines Concept

Razor

*.aspx / *.ascx / *.master

Etc.

ASP.NET MVC

Page 30: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Passing data into View

Action View

Model

ViewData

ViewBag

TempData

Page 31: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

HTML Helpers

HTML Helper – “server control” in ASP.NET MVC

Classic HTML Helpers Declarative HTML Helpers

Page 32: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Partial Views

Partial view – “user control” in ASP.NET MVC

_Layout.cshtml

Footer.cshtml

Header.cshtml

Page 33: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Layout pages and sections

Layout page – “master page” in ASP.NET MVC

Section – “ContentPlaceHolder” in ASP.NET MVC

Page 34: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Routing

Controller

ActionClient

Params

Routing Engine

URL

Default route - /controller/action/id

Page 35: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Dependency Injection

IServiceLocator MvcServiceLocator

Controller Factory

Controller

View

Action FilterInstantiate

Service Locator Implementation

Setup

Implement

Page 36: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Unit Testing

Can be tested:– Controllers– Routes– Html helpers– UI Models– View logic– Etc.

UsingInversion of Control

principle

TestableApplication

Page 37: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVC Control Libraries

Client Side Controls

JQuery IU

DOJO

Etc.

Server Side Controls

Telerik

DevExpress

Etc.

Page 38: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVC VS WEBFORMS

Page 39: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

When we do not need MVC?

I need MVC, because

… it is better than Web Forms

… it implements MVC architecture

… I want to escape from view state

… I do not want automatically generated id in HTML

… I want to get full control over HTML

… I want more friendly URLs

Page 40: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVC Benefits

Automated testing

Powerful AJAX client side

Flexibility, extensibility, clarity

Easy of learning and easy of using

Clearly separated client side and server side

Page 41: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

MVC Disadvantages

Speed of development (particularly in early stages)

… but you can win when you make changes in finished product

Page 42: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Conclusion

Convenient

Easier

Clearer

Faster

ASP.NET MVC

Page 43: SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web-програм"

Thank You!

Copyright © 2011 SoftServe, Inc.

Contacts

Volodymyr Voytyshyn5 Knyahyni Olhy Str., Rivne 33000, Ukraine

Tel: +38(066) 41 83 509

E-mail: [email protected]@gmail.com

Skype: voytyshin