Jean-Claude Trachsel Senior Consultant Trivadis AG
13 Locationen mit über 540 Angestellten Baden, Basel, Bern, Brugg, Lausanne, Zürich Düsseldorf, Frankfurt, Freiburg, Hamburg, München, Stuttgart Wien Finanziell unabhängig und nachhaltig profitabel Kennzahlen im 2008 Konsolidierter Konzernumsatz von CHF 108 Millionen 650 aktive Kunden in mehr als 1600 Projekten Mehr als 150 Service Level Agreements Über 5'000 Kursteilnehmer pro Jahr Forschungsbudget von CHF 6.0 Millionen
ASP.NET MVC Basics Features Version 2.0 Praxiserfahrungen Summary & Ressourcen
Thema1/4
Acronym für Model View Controller Ein Design Pattern Mechanismus um Verantwortlichkeiten zu trennen
Schritt 1 Der eingegangene Request wird von der Routing Engine an den Controller geleitet Request Controller
Schritt 2 Der Controller verarbeitet den Request und erstellt ein Model Controller Model
Schritt 3 Das Model wird an die View übergeben Controller View
Schritt 4 Die View wandelt das Model in das Output Format (HTML) um Controller View
Schritt 5 Der Response wird gerendert Response Controller View
ASP.NET Web Forms ASP.NET MVC ASP.NET Framework.NET Framework
Paradigma Wechsel Web Entwicklung in Reinkultur Statuslos! Optimiert für TDD und Unit Tests Integriert moderne Entwicklungsansätze Aspect Oriented Programming (AOP) Dependency Injection (DI) Inversion of Control (IoC)
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
MVC Komponenten sind ersetzbar Interface basierte Architektur Wenig sealed Klassen/Methoden Beispiele VS Templates, T4 Template Engine DefaultControllerFactory DefaultModelBinder
Visual Studio Template
Visual Studio Tools und Templates Struktur- und Namenskonvention Controller Basis Klasse View Methode UpdateModel Methode Methoden Rückgabewert ActionResult
HandleError Authorize OutputCache ValidateAntiForgeryToken Cross-site request forgery (CSRF) attacks Basisklasse für eigene Filter
ProductController und Filter
Visual Studio Tools und Templates Reines HTML Plus Code Tag HtmlHelper Klasse Html.TextBox(), usw. User Controls (.ascx)
Index (Liste), Details, Edit
Thema 2/4
2.0 RC, VS Beta 2, VS 2010 Offizieller Release 2.0 mit VS 2010 April 2010
Areas Validation Typed UI Helper UI Helper Templates
Strukturierung der Solution Single Project Areas Multi Project Areas
Folder Struktur Routes Klasse Erbt von AreaRegistration Definiert die Route Global.asax Registrieren der Areas Routen
Validierung mit DataAnnotation Attribute eingeführt mit.NET 3.5 SP 1 Analog zu ASP.NET Dynamic Data Serverseitige Prüfung durch die ModelBinder Klasse Clientseitige Prüfung durch die jQuery Validation Library
DataAnnotation Attributes
ASP.NET MVC 1.0 ASP.NET MVC 2.0 p.ProductID)%>
Intellisense Compile-Time Support Datentypbasiertes Rendering Unterstützen Standard- und komplexe Datentypen
Erweiterung der typisierten UI Helpers Definition des Rendering mit UserControls Für Standard- und komplexe Datentypen Angewendet durch Namenskonvention UI Helper Parameter ViewModel Attribut UIHint
DateTime Template
Binding Unterstützung für Base64 codierte Strings Timestamp Aus [AcceptVerbs(HttpVerbs.Post)] wird [HttpPost] Und vieles mehr
Typisierte Link Helpers Asynchrone Controller Methoden Weitere Verbesserungen
Thema 3/4
Der Um- oder Einsteig ist… schwieriger für WinForms Entwickler WebForms Entwickler einfacher für Nicht MS Entwickler
Keine Wiederverwendbarkeit für Bestehende Konzepte und Framework Funktionalitätsverlust Fehlende GUI Libraries Wenig Kenntnisse der client-orientierten Entwicklung AJAX, JavaScript, jQuery & Co.
Klare Struktur Einfachere Einarbeitung neuer MA Einfachere Wartung und Weiterentwicklung Mehr Unit Tests Höhere Qualität Bessere Wiederverwendbarkeit durch bessere Kapselung der Funktionen
Kleine Community Pfannenfertige Lösungen gibts noch nicht Hohes Risiko Erfahrungen fehlen noch Potential wird nicht erkannt/genutzt TDD, Unit Tests Klare Strukturierung Volle Kontrolle
AJAX und jQuery jQuery Grid jQuery Validation Library Coolite Basiert auf ExtJS Syncfusion Telerik
Telerik Grid
Thema 4/4
Integriert moderne Entwicklungsaspekte Einfach und gut zu testen Komplexität auf Model View Controller verteilt Offen, flexibel und erweiterbar
Abhängig von den Anforderungen TDD, Unit Test MVC RIA, RAD WebForms Abhängig von den Umständen Entwickler Know-How/Motivation Projekt- und Teamgrösse Anwendungslebensdauer
Webseiten Blogs
© 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.