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

Jean-Claude Trachsel Senior Consultant Trivadis AG.

Apr 06, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.