asp.net extensions

Post on 20-Mar-2016

39 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

ASP.NET Extensions. Jakob Tikjøb Andersen jta@miracleas.dk +45 25 277 105. HVEM ER JEG?. Technical Teamlead Opgaver Offentlig indkøbsportal og eFakturerings projekt Performanceoptimering og arkitektur Generelt konsulentarbejde/brandslukning Teknologi Primært Microsoft teknologi - PowerPoint PPT Presentation

TRANSCRIPT

ASP.NET ExtensionsJakob Tikjøb Andersen

jta@miracleas.dk+45 25 277 105

HVEM ER JEG?• Technical Teamlead• Opgaver

– Offentlig indkøbsportal og eFakturerings projekt– Performanceoptimering og arkitektur– Generelt konsulentarbejde/brandslukning

• Teknologi• Primært Microsoft teknologi• Krydret med OSS som nHibernate, Castle, Watin, iBatis, nUnit m.fl.

– Interresante steder på nettet• http://www.intellect.dk/ (Blog)• http://www.miracleas.dk/ (Arbejde)• http://www.cnug.dk/ (Copenhagen .NET User Group)

2

HVEM ER I?

AGENDA

• ASP.NET MVC• ASP.NET Dynamic Data

Stil hellere end gerne spørgsmål undervejs!

ASP.NET MVC

Model

View Controller

MODEL

• Indeholder vores forretningslogik– Facade/Service/Manager klasser

• Typisk– Adgang til database– Adgang til webservices– Beregningslogik o.lign.

Model

View Controller

VIEW

• Brugergrænsefladen– HTML, Javascript, CSS osv.

• Afspejler data fra modellenModel

View Controller

VIEW

System.Web.Page

System.Web.Mvc.ViewPage

Frontpage

• Forskellige ViewEngines– Standard C#/VB.NET

• ViewPage tilføjer– Helpers

• AjaxHelper• HtmlHelper• TempData• ViewData• M.fl.

• Ofte egen specialisering– Egne helpers– Filtre etc.

VIEW

• Eksempel på view

VIEW

• Udover ViewPage– ViewUserControl– ViewMasterPage

CONTROLLER

• Håndterer– Brugerinteraktion• Opdaterer data baseret på brugerens valg• Skifter view baseret på brugerens valg

– Fodrer view med data fra modelModel

View Controller

CONTROLLERActionsAction Filters

ViewResult

RedirectToRouteResult

CONTROLLER

ActionResult

ViewResult

RedirectResult

JavascriptResult .....

Controller

IController

IActionFilter

IDisposable

BASECONTROLLER

• WebFormViewFactory– Bestemmer hvordan views renderes

• Kan udskiftes– Skriv din egen ViewEngine – Der findes alternativer• Nhaml, Brail m.fl.• http://codeplex.com/mvccontrib

MVC FLOW

1. MvcHttpHandler– Routing til korrekt

controller

2. Controller– Find action– Bind Request data til

parametre– Behandl evt. Filtre på

action– Eksekver action

MvcHttpHandler Routing table

Controller ViewEngine

Initialisering

Indkommende request

Udgående responseRedirect

WEBFORMS VS MVC

WEBFORMS

• Eventbaseret• Statefull over HTTP• Tæt integreret– Basisfunktionalitet (Control -> Page)– Kontrolstruktur

• Serverside ”UI” 3. partskomponenter• Svært at parralellisere udvikling

MVC

• Seperation of concern• Fuld kontrol• Routing• Let at teste• Let at bruge clientside 3. partskomponenter• Oplagt at parralellisere udvikling

DEMOASP.NET MVC – ”Hello world!”

HVORFOR MVC?

TESTABILITY - WEBFORMS

Model

Page Controller

Testes igennem UI

Kan unit testes

TESTABILITY - MVC

Model

View Controller

Kan unit testes

Testes igennem UI

DEMOMVC Testability

TESTING MVC

• Rig mulighed for Mocking– Alle centrale funktionaliteter er Interfaces– Mockede dependencies som parameter til

constructor– MVC bruger som standard default contructor

MVC EXTENSION POINTS

• ControllerFactories• Helpers• Data Binders• ViewFactories

ASP.NET DYNAMIC DATA

top related