asp.net extensions

26
ASP.NET Extensions Jakob Tikjøb Andersen [email protected] +45 25 277 105

Upload: alijah

Post on 20-Mar-2016

39 views

Category:

Documents


0 download

DESCRIPTION

ASP.NET Extensions. Jakob Tikjøb Andersen [email protected] +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

Page 1: ASP.NET Extensions

ASP.NET ExtensionsJakob Tikjøb Andersen

[email protected]+45 25 277 105

Page 2: ASP.NET Extensions

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

Page 3: ASP.NET Extensions

HVEM ER I?

Page 4: ASP.NET Extensions

AGENDA

• ASP.NET MVC• ASP.NET Dynamic Data

Stil hellere end gerne spørgsmål undervejs!

Page 5: ASP.NET Extensions

ASP.NET MVC

Model

View Controller

Page 6: ASP.NET Extensions

MODEL

• Indeholder vores forretningslogik– Facade/Service/Manager klasser

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

Model

View Controller

Page 7: ASP.NET Extensions

VIEW

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

• Afspejler data fra modellenModel

View Controller

Page 8: ASP.NET Extensions

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.

Page 9: ASP.NET Extensions

VIEW

• Eksempel på view

Page 10: ASP.NET Extensions

VIEW

• Udover ViewPage– ViewUserControl– ViewMasterPage

Page 11: ASP.NET Extensions

CONTROLLER

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

– Fodrer view med data fra modelModel

View Controller

Page 12: ASP.NET Extensions

CONTROLLERActionsAction Filters

ViewResult

RedirectToRouteResult

Page 13: ASP.NET Extensions

CONTROLLER

ActionResult

ViewResult

RedirectResult

JavascriptResult .....

Controller

IController

IActionFilter

IDisposable

Page 14: ASP.NET Extensions

BASECONTROLLER

• WebFormViewFactory– Bestemmer hvordan views renderes

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

Page 15: ASP.NET Extensions

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

Page 16: ASP.NET Extensions

WEBFORMS VS MVC

Page 17: ASP.NET Extensions

WEBFORMS

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

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

Page 18: ASP.NET Extensions

MVC

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

Page 19: ASP.NET Extensions

DEMOASP.NET MVC – ”Hello world!”

Page 20: ASP.NET Extensions

HVORFOR MVC?

Page 21: ASP.NET Extensions

TESTABILITY - WEBFORMS

Model

Page Controller

Testes igennem UI

Kan unit testes

Page 22: ASP.NET Extensions

TESTABILITY - MVC

Model

View Controller

Kan unit testes

Testes igennem UI

Page 23: ASP.NET Extensions

DEMOMVC Testability

Page 24: ASP.NET Extensions

TESTING MVC

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

constructor– MVC bruger som standard default contructor

Page 25: ASP.NET Extensions

MVC EXTENSION POINTS

• ControllerFactories• Helpers• Data Binders• ViewFactories

Page 26: ASP.NET Extensions

ASP.NET DYNAMIC DATA