jean-claude trachsel senior consultant trivadis ag

Post on 06-Apr-2015

112 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ASP.NET MVC V2

Jean-Claude TrachselSenior ConsultantTrivadis AG

Trivadis AGFacts & Figures

13 Locationen mit über 540 AngestelltenBaden, Basel, Bern, Brugg, Lausanne, Zürich Düsseldorf, Frankfurt, Freiburg, Hamburg, München, Stuttgart Wien

Finanziell unabhängig und nachhaltig profitabelKennzahlen im 2008

Konsolidierter Konzernumsatz von CHF 108 Millionen650 aktive Kunden in mehr als 1‘600 ProjektenMehr als 150 Service Level AgreementsÜber 5'000 Kursteilnehmer pro Jahr Forschungsbudget von CHF 6.0 Millionen

Agenda

ASP.NET MVC Basics

Features Version 2.0

Praxiserfahrungen

Summary & Ressourcen

ASP.NET MVC BasicsThema1/4

Was Ist MVC?

Acronym für Model ● View ●

Controller

Ein Design Pattern

Mechanismus um Verantwortlichkeiten

zu trennen

Schritt 1Der eingegangene Request wird von der Routing Engine

an denController geleitet

Request

Controller

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Schritt 2Der Controller verarbeitet den Request und erstellt ein

Model

ControllerModel

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Schritt 3Das Model wird an die View übergeben

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Schritt 4Die View wandelt das Model in das Output Format

(HTML) um

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Schritt 5Der Response wird gerendert

Response

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Positionierung ASP.NET MVCAlternativen

ASP.NET Web FormsASP.NET MVC

ASP.NET Framework

.NET Framework

Warum ASP.NET MVC? Key Features

Paradigma WechselWeb Entwicklung in ReinkulturStatuslos!

Optimiert für TDD und Unit TestsIntegriert moderne Entwicklungsansätze

Aspect Oriented Programming (AOP)Dependency Injection (DI)Inversion of Control (IoC)

Warum ASP.NET MVC?Separation of Concerns

Komplexität ist sauber aufgeteilt

Ideal für grosse u/o komplexe

Applikationen

Ideal für grosse Teams

Ideal für die Zusammenarbeit mit

Designern

Warum ASP.NET MVC?Flexibel und erweiterbar

MVC Komponenten sind ersetzbarInterface basierte ArchitekturWenig “sealed” Klassen/Methoden

BeispieleVS Templates, T4 Template EngineDefaultControllerFactoryDefaultModelBinder

Projekt erstellen

Visual Studio Template

demo

Controller KlasseAblaufsteuerung

Visual Studio Tools und TemplatesStruktur- und NamenskonventionController Basis Klasse

View MethodeUpdateModel Methode

Methoden RückgabewertActionResult

Controller KlasseFilter aka Aspekte

HandleErrorAuthorizeOutputCacheValidateAntiForgeryToken

Cross-site request forgery (CSRF) attacks

Basisklasse für eigene Filter

Controller erstellen

ProductController und Filter

demo

View KlasseVisualisierung

Visual Studio Tools und TemplatesReines HTML

Plus <%=...%> Code Tag

HtmlHelper KlasseHtml.TextBox(), usw.

User Controls (.ascx)

Model & Views erstellen

Index (Liste), Details, Edit

demo

ASP.NET MVC 2.0Features

Thema 2/4

ASP.NET MVC 2.0 Features Releases ASP.NET MVC

2.0 RC, VS 2008

2.0 Beta 2, VS 2010

Offizieller Release 2.0 mit VS 2010

April 2010

ASP.NET MVC 2.0 Features Übersicht Features

Areas

Validation

Typed UI Helper

UI Helper Templates

Areas SupportEnterprise ready

Strukturierung

der Solution

Single Project Areas

Multi Project Areas

Areas SupportSingle Project Areas

Folder StrukturRoutes Klasse

Erbt von AreaRegistrationDefiniert die Route

Global.asaxRegistrieren der Areas Routen

Daten ValidierungDataAnnotation

Validierung mit DataAnnotationAttribute eingeführt mit .NET 3.5 SP 1Analog zu ASP.NET Dynamic Data

Serverseitige Prüfung durch die ModelBinder KlasseClientseitige Prüfung durch diejQuery Validation Library

Validierung

DataAnnotation Attributes

demo

Typisierte UI HelpersHtmlHelper Extensions

ASP.NET MVC 1.0

ASP.NET MVC 2.0

<%=Html.EditorFor(p => p.ProductID)%>

<%=Html.TextBox("ProductID“,Model.ProductID)%><%=Html.RadioButton(„Avail“,Model.Available)%>

Typisierte UI HelpersEigenschaften und Vorteile

Intellisense

Compile-Time Support

Datentypbasiertes Rendering

Unterstützen Standard- und komplexe

Datentypen

UI Helper TemplatesDatentyp Vorlagen

Erweiterung der typisierten UI HelpersDefinition des Rendering mit UserControls

Für Standard- und komplexe Datentypen

Angewendet durchNamenskonventionUI Helper ParameterViewModel Attribut UIHint

UI Helpers & Templates

DateTime Template

demo

Weitere FeaturesBinding Binary, HttpPost, etc.

Binding Unterstützung für Base64 codierte Strings

Timestamp

Aus [AcceptVerbs(HttpVerbs.Post)] wird [HttpPost]Und vieles mehr

Weitere FeaturesWas kommt noch

Typisierte Link Helpers

Asynchrone Controller Methoden

Weitere Verbesserungen

ASP.NET MVC PraxisThema 3/4

ASP.NET MVC In Der PraxisParadigmawechsel

Der Um- oder Einsteig ist…schwieriger für

WinForms EntwicklerWebForms Entwickler

einfacher für„Nicht MS“ Entwickler

ASP.NET MVC In Der PraxisProduktivität –

Keine Wiederverwendbarkeit fürBestehende Konzepte und Framework

FunktionalitätsverlustFehlende GUI Libraries

Wenig Kenntnisse der client-orientierten Entwicklung

AJAX, JavaScript, jQuery & Co.

ASP.NET MVC In Der PraxisProduktivität +

Klare StrukturEinfachere Einarbeitung neuer MAEinfachere Wartung und Weiterentwicklung

Mehr Unit TestsHöhere Qualität

Bessere Wiederverwendbarkeit durch bessere Kapselung der Funktionen

ASP.NET MVC In Der PraxisHindernisse und Chancen

Kleine Community„Pfannenfertige“ Lösungen gibt‘s noch nicht

Hohes RisikoErfahrungen fehlen noch

Potential wird nicht erkannt/genutztTDD, Unit TestsKlare StrukturierungVolle Kontrolle

ASP.NET MVC In Der PraxisGUI Libraries

AJAX und jQueryjQuery GridjQuery Validation Library

CooliteBasiert auf ExtJS

SyncfusionTelerik

GUI Library

Telerik Grid

demo

Summary & Ressourcen

Thema 4/4

SummaryASP.NET MVC Framework

Integriert moderne

Entwicklungsaspekte

Einfach und gut zu testen

Komplexität auf Model ● View ●

Controller verteilt

Offen, flexibel und erweiterbar

SummaryASP.NET MVC Einsatz

Abhängig von den AnforderungenTDD, Unit Test MVCRIA, RAD WebForms

Abhängig von den UmständenEntwickler Know-How/MotivationProjekt- und TeamgrösseAnwendungslebensdauer

Weitere InformationenMVC rocks

Webseitenhttp://www.asp.net/mvchttp://www.codeplex.com/aspnet

Blogshttp://www.haacked.com/http://weblogs.asp.net/scottguhttp://www.hanselman.com/

Have fun!

Q & A

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related