asp.net mvc for webforms · pdf fileasp.net mvc for webforms developers •independent...

28
Philip Japikse (@skimedic) [email protected] www.skimedic.com/blog Microsoft MVP, ASPInsider, MCSD, MCDBA, CSM, CSP ASP.NET MVC FOR WEBFORMS DEVELOPERS

Upload: hathu

Post on 14-Mar-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Philip Japikse (@skimedic)

[email protected]

www.skimedic.com/blog

Microsoft MVP, ASPInsider, MCSD, MCDBA, CSM, CSP

ASP.NET MVC FOR WEBFORMS DEVELOPERS

•Independent Consultant

•Web, Client, Database, Training

•Microsoft MVP, ASPInsider, MCSD, MCDBA, CSM, CSP

•Founder, Agile Conferences, Inc.

•President, Cincinnati .NET User’s Group

•Co-host, Hallway Conversations

•www.hallwayconversations.com

Phil.About()

3/17/2015 2

Controller

View Model

ActionResult

Request

•Full Control over HTML and

URLS

•Multiple HTML Forms

•Separation of Concerns

•Extensible

•Testable

•Convention over Configuration

•Dependency Injection Support

WHY ASP.NET MVC?

3/17/2015 3

•Pages/CodeBehind

•Postbacks/Viewstate

•Page/Event Lifecycle

•“Classic” server controls

WHAT’S NOT IN MVC

3/17/2015 4

•IIS

•WebFormsViewEngine

•Master pages

•HTTPHeaders and

HTTPModules

•Tracing, Debugging, Health

Monitoring

•State Management

•Caching

•Session State

•Cookies

•Request Storage

•Site Maps

•Personalization and Localization

WHAT’S STILL THERE?

3/17/2015 5

•Set to Specific Page

•Leave it blank

•Use IIS Express

•More inline with IIS

•Change Default Browser

RUNNING IN VISUAL STUDIO

3/17/2015 6

•Controllers

•<name>Controller

•Views

•Named for Action

•Placed in /Views/<ControllerName>

•Layouts

•Start with “_”

•Project Structure

CONVENTION OVER CONFIGURATION

3/17/2015 7

Config.xml

• Added to Web Forms in

ASP.NET 4

• Directs Incoming URLS to

correct Controller/Actions

• Creates Outgoing URLS

• SEO Optimized

ROUTING

3/17/2015 8

•The data of the application

•Supports

•Data Annotations

•Additional Metadata

MODELS

3/17/2015 9

•Façade for individual models

•Transport mechanism for

models

VIEW MODEL

3/17/2015 10

•Process Incoming requests

•Perform changes to the model

•Select views to render to the

user

CONTROLLERS

3/17/2015 11

•Methods of a controller

•Each Exposed by unique URLS

•Return an ActionResult

•View, Redirect, Json, etc.

ACTIONS

3/17/2015 12

•Authorization

•Action

•Result

•Exception

ACTION FILTERS

3/17/2015 13

•Invoked from a View

•Similar to Partial Views

•Encapsulates controller logic

CHILD ACTIONS

3/17/2015 14

•Reconstitutes form values into

target object

•Runs validations

MODEL BINDING

3/17/2015 15

•Server side with Data

Annotations

•Can create custom annotations

•Client side with JQuery Validate

•Must enable in web config

•Enabled by default in MVC5

•Must enable on page

•Enabled by default in MVC5

VALIDATION

3/17/2015 16

•Strongly Typed

•Accepts Interactions from User

•Returns results of interactions

back to user

VIEWS

3/17/2015 17

•Similar to Master Pages

•@RenderBody()

•Renders view

•Supports Sections

VIEW LAYOUTS

3/17/2015 18

•Strongly typed

•Building blocks for complex

views

•Increase code re-use

•DRY

PARTIAL VIEWS

3/17/2015 19

•ViewData

•ViewBag

•New in MVC3

•TempData

PASSING DATA TO THE VIEW

3/17/2015 20

•AJAX:

•One line of code

•Beware IE caching

•Json

•Return JsonResult

•Must Explicitly Allow Get

AJAX AND JSON

3/17/2015 21

•Helpers

•Extensions to Html

•Templates

•DisplayForModel ||

EditorForModel

•DisplayFor || EditorFor

HTML HELPERS AND TEMPLATES

3/17/2015 22

•Cross Site Request Forgery

•Controller

•ValidateAntiForgeryToken

•View

•@Html.AntiForgeryToken

•OverPosting

•Controller

•Bind

•Include (whitelist)

•Exclude (blacklist)

SECURITY

3/17/2015 23

•Greatly reduces typing

•Mixes HTML and Code cleanly

•Increases readability

•Compiled at runtime

•WebForms and Razor both

enabled by default

RAZOR VIEW ENGINE

3/17/2015 24

•Functional Segments of application

•Enhance Separation of Controls

•Fully supported by routing system

•Add namespace to routing

AREAS

3/17/2015 26

ASP.NET MVC

Questions?

[email protected]

www.skimedic.com/blog

www.twitter.com/skimedic

www.hallwayconversations.com

www.about.me/skimedic

Contact Me