jean-claude trachsel senior consultant trivadis ag

46
ASP.NET MVC V2 Jean-Claude Trachsel Senior Consultant Trivadis AG

Upload: valentin-leiderman

Post on 06-Apr-2015

112 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC V2

Jean-Claude TrachselSenior ConsultantTrivadis AG

Page 2: Jean-Claude Trachsel Senior Consultant Trivadis 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

Page 3: Jean-Claude Trachsel Senior Consultant Trivadis AG

Agenda

ASP.NET MVC Basics

Features Version 2.0

Praxiserfahrungen

Summary & Ressourcen

Page 4: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC BasicsThema1/4

Page 5: Jean-Claude Trachsel Senior Consultant Trivadis AG

Was Ist MVC?

Acronym für Model ● View ●

Controller

Ein Design Pattern

Mechanismus um Verantwortlichkeiten

zu trennen

Page 6: Jean-Claude Trachsel Senior Consultant Trivadis AG

Schritt 1Der eingegangene Request wird von der Routing Engine

an denController geleitet

Request

Controller

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Page 7: Jean-Claude Trachsel Senior Consultant Trivadis AG

Schritt 2Der Controller verarbeitet den Request und erstellt ein

Model

ControllerModel

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Page 8: Jean-Claude Trachsel Senior Consultant Trivadis AG

Schritt 3Das Model wird an die View übergeben

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Page 9: Jean-Claude Trachsel Senior Consultant Trivadis AG

Schritt 4Die View wandelt das Model in das Output Format

(HTML) um

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Page 10: Jean-Claude Trachsel Senior Consultant Trivadis AG

Schritt 5Der Response wird gerendert

Response

Controller

View

Umsetzung mit ASP.NET MVCZusammenspiel M ● V ● C

Page 11: Jean-Claude Trachsel Senior Consultant Trivadis AG

Positionierung ASP.NET MVCAlternativen

ASP.NET Web FormsASP.NET MVC

ASP.NET Framework

.NET Framework

Page 12: Jean-Claude Trachsel Senior Consultant Trivadis AG

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)

Page 13: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 14: Jean-Claude Trachsel Senior Consultant Trivadis AG

Warum ASP.NET MVC?Flexibel und erweiterbar

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

BeispieleVS Templates, T4 Template EngineDefaultControllerFactoryDefaultModelBinder

Page 15: Jean-Claude Trachsel Senior Consultant Trivadis AG

Projekt erstellen

Visual Studio Template

demo

Page 16: Jean-Claude Trachsel Senior Consultant Trivadis AG

Controller KlasseAblaufsteuerung

Visual Studio Tools und TemplatesStruktur- und NamenskonventionController Basis Klasse

View MethodeUpdateModel Methode

Methoden RückgabewertActionResult

Page 17: Jean-Claude Trachsel Senior Consultant Trivadis AG

Controller KlasseFilter aka Aspekte

HandleErrorAuthorizeOutputCacheValidateAntiForgeryToken

Cross-site request forgery (CSRF) attacks

Basisklasse für eigene Filter

Page 18: Jean-Claude Trachsel Senior Consultant Trivadis AG

Controller erstellen

ProductController und Filter

demo

Page 19: Jean-Claude Trachsel Senior Consultant Trivadis AG

View KlasseVisualisierung

Visual Studio Tools und TemplatesReines HTML

Plus <%=...%> Code Tag

HtmlHelper KlasseHtml.TextBox(), usw.

User Controls (.ascx)

Page 20: Jean-Claude Trachsel Senior Consultant Trivadis AG

Model & Views erstellen

Index (Liste), Details, Edit

demo

Page 21: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC 2.0Features

Thema 2/4

Page 22: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 23: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC 2.0 Features Übersicht Features

Areas

Validation

Typed UI Helper

UI Helper Templates

Page 24: Jean-Claude Trachsel Senior Consultant Trivadis AG

Areas SupportEnterprise ready

Strukturierung

der Solution

Single Project Areas

Multi Project Areas

Page 25: Jean-Claude Trachsel Senior Consultant Trivadis AG

Areas SupportSingle Project Areas

Folder StrukturRoutes Klasse

Erbt von AreaRegistrationDefiniert die Route

Global.asaxRegistrieren der Areas Routen

Page 26: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 27: Jean-Claude Trachsel Senior Consultant Trivadis AG

Validierung

DataAnnotation Attributes

demo

Page 28: Jean-Claude Trachsel Senior Consultant Trivadis AG

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)%>

Page 29: Jean-Claude Trachsel Senior Consultant Trivadis AG

Typisierte UI HelpersEigenschaften und Vorteile

Intellisense

Compile-Time Support

Datentypbasiertes Rendering

Unterstützen Standard- und komplexe

Datentypen

Page 30: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 31: Jean-Claude Trachsel Senior Consultant Trivadis AG

UI Helpers & Templates

DateTime Template

demo

Page 32: Jean-Claude Trachsel Senior Consultant Trivadis AG

Weitere FeaturesBinding Binary, HttpPost, etc.

Binding Unterstützung für Base64 codierte Strings

Timestamp

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

Page 33: Jean-Claude Trachsel Senior Consultant Trivadis AG

Weitere FeaturesWas kommt noch

Typisierte Link Helpers

Asynchrone Controller Methoden

Weitere Verbesserungen

Page 34: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC PraxisThema 3/4

Page 35: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC In Der PraxisParadigmawechsel

Der Um- oder Einsteig ist…schwieriger für

WinForms EntwicklerWebForms Entwickler

einfacher für„Nicht MS“ Entwickler

Page 36: Jean-Claude Trachsel Senior Consultant Trivadis AG

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.

Page 37: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 38: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 39: Jean-Claude Trachsel Senior Consultant Trivadis AG

ASP.NET MVC In Der PraxisGUI Libraries

AJAX und jQueryjQuery GridjQuery Validation Library

CooliteBasiert auf ExtJS

SyncfusionTelerik

Page 40: Jean-Claude Trachsel Senior Consultant Trivadis AG

GUI Library

Telerik Grid

demo

Page 41: Jean-Claude Trachsel Senior Consultant Trivadis AG

Summary & Ressourcen

Thema 4/4

Page 42: Jean-Claude Trachsel Senior Consultant Trivadis AG

SummaryASP.NET MVC Framework

Integriert moderne

Entwicklungsaspekte

Einfach und gut zu testen

Komplexität auf Model ● View ●

Controller verteilt

Offen, flexibel und erweiterbar

Page 43: Jean-Claude Trachsel Senior Consultant Trivadis AG

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

Page 44: Jean-Claude Trachsel Senior Consultant Trivadis AG

Weitere InformationenMVC rocks

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

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

Page 45: Jean-Claude Trachsel Senior Consultant Trivadis AG

Have fun!

Q & A

Page 46: Jean-Claude Trachsel Senior Consultant Trivadis AG

© 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.