SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
.NET
User
Group
Bern
Kay Herzam
www.herzam.com/blog
kay@herzam.com
Twitter: kherzam
DNUG Bern Sponsoren
High quality technical screencasts created by
experts on the latest and most important
technologies. Buy access to a single series or
subscribe for as little as $19 a month.
tekpub.com
ASP
.NET MVC
Ayende Rahien
Rob Conery
jQuery
Dave Ward
Ruby on Rails
ASP
.NET Ajax
LINQ
nHibernate
Agenda
• Überblick über ASP.NET MVC 2
• Vorteile / Nachteile
• Demo Applikation
• Nützliche Links / Bücher
• Fragen und Diskussion
ASP.NET MVC?
ASP.NET Web Forms
ASP.NET MVC
ASP.NET Framework
.NET Framework
ASP.NET MVC – Was ist es nicht?
„There is no silver bullet“
No Silver Bullet — Essence and Accidents of Software Engineering
Fred Brooks, 1986
ASP.NET MVC – Das Pattern
View
Model
Controller
ASP.NET MVC – Das Pattern
Model
Business Logik
Validierung
View
Markup
(wenig) Präsentationslogik
Controller
Ablaufsteuerung
ASP.NET MVC – Request Ablauf
Request
Request
Controller
ASP.NET MVC – Request Ablauf
Controller
Model
ASP.NET MVC – Request Ablauf
Controller
View
ASP.NET MVC – Request Ablauf
Controller
View
ASP.NET MVC – Request Ablauf
Response
Response
Controller
View
ASP.NET MVC – Was ist anders?
• Klare Trennung der Verantwortlichkeiten
(Seperation of Concerns SoC)
– Gut geeignet für grosse und komplexe
Applikationen
• Besser geeignet für TDD
• Volle Kontrolle über den Output
ASP.NET MVC – Was ist anders?
• Sprechende URLs
/Kunde/42/Bestellung/37
/Produkte/Velos
• Konvention statt Konfiguration
Vorgegebene Projektstruktur und Namen
• Kein Viewstate, kein PostBack
ASP.NET MVC – Was ist anders?
• MVC Framework ist einfach erweiterbar
– Komponenten können ausgetauscht werden
– Echte MS Open Source!
• Viele Frameworks lassen sich einfach
integrieren
– Alternative View Engines
– Dependency Injection
– Validierungs Frameworks
– Test und Mock Frameworks
ASP.NET MVC - Vorteile
• Volle Kontrolle über Markup
• Kein ViewState – näher an der „Realität“
• Besser geeignet für TDD als WebForms
• Eingebauter „Code Generator“ (T4)
ASP.NET MVC - Nachteile
• Gute (X)HTML / CSS Kenntnisse notwendig
• WebForms besser für RAD geeignet
• Noch wenige 3rd Party controls
Effizienz im Vergleich mit
Webforms
Effizienz
Zeit
Demo (Applikation)
Model
• Reine POCOs
• Entity Framework
• Linq to SQL
• „Build your own“ ORM...s
Model
• Validierung
– DataAnnotations
– FluentValidation
– xVal
Controller
• Namenskonvention
– Controllers/XYController.cs
• Erbt von System.Web.Mvc.Controller
• Public Methoden entsprechen „Actions“
Controller
• Methoden geben System.Web.Mvc.ActionResult
zurück
– ActionResult
– ViewResult
– PartialViewResult
– JsonResult
– ContentResult
– JavaScriptResult
– FileResult
– RedirectResult
– EmptyResult
– ...
Controller
• Filter (Attribute) können auf Controller
oder Actions gesetzt werden
– HandleError
– Authorize
– HttpGet / HttpPost
– OutputCache
– ValidateAntiforgeryToken
• Aspektorientierte Programmierung
View
• Namenskonvention
– Views/ControllerName/ActionName.aspx
• Standard ViewEngine ist Webforms
– Alternative: Spark
View
• Ein View kann sich aus mehreren
PartialViews (=UserControls)
zusammensetzen
• HTML kann erzeugt werden durch
– Eigenes Markup
– HTML Helper
– Templated HTML Helpers
(Best) Practices
• Dependency Injection für Repositories
verwenden
• Repository Pattern
• Model -> ViewModel verwenden
• Entweder jQuery oder MS Ajax verwenden
• Resharper einsetzen 
Nützliche Frameworks und Tools
• MvcFutures -> aspnet.codeplex.com
• MvcContrib -> MvcContrib.codeplex.com
• MvcTurbine -> MvcTurbine.codeplex.com
• Validierung
– FluentValidation -> FluentValidation.codeplex.com
– xVal -> xVal.codeplex.com
• „Controls“
– Telerik MVC -> www.telerik.com / MVC
– Syncfusion -> www.syncfusion.com
Empfehlenswerte Bücher
Fragen und Diskussion

Weitere ähnliche Inhalte

Ähnlich wie ASP.NET MVC 2 - Eine Einführung

MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajaxMT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
Christian Baranowski
 

Ähnlich wie ASP.NET MVC 2 - Eine Einführung (20)

Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
JavaScript Architektur
JavaScript ArchitekturJavaScript Architektur
JavaScript Architektur
 
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajaxMT AG: Ajax Rezepte fuer web services mit jquery und ajax
MT AG: Ajax Rezepte fuer web services mit jquery und ajax
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
AngularJS
AngularJSAngularJS
AngularJS
 
Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.Echtzeitvisualisierung von Twitter und Co.
Echtzeitvisualisierung von Twitter und Co.
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & Co
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
On the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a ServiceOn the Portability of Applications in Platform as a Service
On the Portability of Applications in Platform as a Service
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
OSMC 2012 | Performance graphing mit inGraph by Eric Lippmann
OSMC 2012 | Performance graphing mit inGraph by Eric LippmannOSMC 2012 | Performance graphing mit inGraph by Eric Lippmann
OSMC 2012 | Performance graphing mit inGraph by Eric Lippmann
 
RVK 3.0 - Die Regensburger Verbundklassifikation als Normdatei für Bibliothek...
RVK 3.0 - Die Regensburger Verbundklassifikation als Normdatei für Bibliothek...RVK 3.0 - Die Regensburger Verbundklassifikation als Normdatei für Bibliothek...
RVK 3.0 - Die Regensburger Verbundklassifikation als Normdatei für Bibliothek...
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlinesDjango - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 

Mehr von NETUserGroupBern

Mehr von NETUserGroupBern (20)

Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...Large Language Models, Data & APIs - Integrating Generative AI Power into you...
Large Language Models, Data & APIs - Integrating Generative AI Power into you...
 
AAD und .NET
AAD und .NETAAD und .NET
AAD und .NET
 
SHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPSSHIFT LEFT WITH DEVSECOPS
SHIFT LEFT WITH DEVSECOPS
 
Securing .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsSecuring .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applications
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
Einführung in RavenDB
Einführung in RavenDBEinführung in RavenDB
Einführung in RavenDB
 
What Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous LearningWhat Doctors Can Teach Us on Continuous Learning
What Doctors Can Teach Us on Continuous Learning
 
Entity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
 
Weiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und MädelsWeiches Zeugs für harte Jungs und Mädels
Weiches Zeugs für harte Jungs und Mädels
 
Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014Änderungen im Cardinality Estimator SQL Server 2014
Änderungen im Cardinality Estimator SQL Server 2014
 
Rest Fundamentals
Rest FundamentalsRest Fundamentals
Rest Fundamentals
 
Refactoring: Mythen & Fakten
Refactoring: Mythen & FaktenRefactoring: Mythen & Fakten
Refactoring: Mythen & Fakten
 
AngularJs
AngularJsAngularJs
AngularJs
 
Pragmatische Anforderungen
Pragmatische AnforderungenPragmatische Anforderungen
Pragmatische Anforderungen
 
Einführung in MongoDB
Einführung in MongoDBEinführung in MongoDB
Einführung in MongoDB
 
What the hell is PowerShell?
What the hell is PowerShell?What the hell is PowerShell?
What the hell is PowerShell?
 
Know your warm up
Know your warm upKnow your warm up
Know your warm up
 
BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)BDD mit Machine.Specifications (MSpec)
BDD mit Machine.Specifications (MSpec)
 
Versionskontrolle mit Git
Versionskontrolle mit GitVersionskontrolle mit Git
Versionskontrolle mit Git
 

ASP.NET MVC 2 - Eine Einführung

  • 3. High quality technical screencasts created by experts on the latest and most important technologies. Buy access to a single series or subscribe for as little as $19 a month. tekpub.com ASP .NET MVC Ayende Rahien Rob Conery jQuery Dave Ward Ruby on Rails ASP .NET Ajax LINQ nHibernate
  • 4. Agenda • Überblick über ASP.NET MVC 2 • Vorteile / Nachteile • Demo Applikation • Nützliche Links / Bücher • Fragen und Diskussion
  • 5. ASP.NET MVC? ASP.NET Web Forms ASP.NET MVC ASP.NET Framework .NET Framework
  • 6. ASP.NET MVC – Was ist es nicht? „There is no silver bullet“ No Silver Bullet — Essence and Accidents of Software Engineering Fred Brooks, 1986
  • 7. ASP.NET MVC – Das Pattern View Model Controller
  • 8. ASP.NET MVC – Das Pattern Model Business Logik Validierung View Markup (wenig) Präsentationslogik Controller Ablaufsteuerung
  • 9. ASP.NET MVC – Request Ablauf Request Request Controller
  • 10. ASP.NET MVC – Request Ablauf Controller Model
  • 11. ASP.NET MVC – Request Ablauf Controller View
  • 12. ASP.NET MVC – Request Ablauf Controller View
  • 13. ASP.NET MVC – Request Ablauf Response Response Controller View
  • 14. ASP.NET MVC – Was ist anders? • Klare Trennung der Verantwortlichkeiten (Seperation of Concerns SoC) – Gut geeignet für grosse und komplexe Applikationen • Besser geeignet für TDD • Volle Kontrolle über den Output
  • 15. ASP.NET MVC – Was ist anders? • Sprechende URLs /Kunde/42/Bestellung/37 /Produkte/Velos • Konvention statt Konfiguration Vorgegebene Projektstruktur und Namen • Kein Viewstate, kein PostBack
  • 16. ASP.NET MVC – Was ist anders? • MVC Framework ist einfach erweiterbar – Komponenten können ausgetauscht werden – Echte MS Open Source! • Viele Frameworks lassen sich einfach integrieren – Alternative View Engines – Dependency Injection – Validierungs Frameworks – Test und Mock Frameworks
  • 17. ASP.NET MVC - Vorteile • Volle Kontrolle über Markup • Kein ViewState – näher an der „Realität“ • Besser geeignet für TDD als WebForms • Eingebauter „Code Generator“ (T4)
  • 18. ASP.NET MVC - Nachteile • Gute (X)HTML / CSS Kenntnisse notwendig • WebForms besser für RAD geeignet • Noch wenige 3rd Party controls
  • 19. Effizienz im Vergleich mit Webforms Effizienz Zeit
  • 21. Model • Reine POCOs • Entity Framework • Linq to SQL • „Build your own“ ORM...s
  • 23. Controller • Namenskonvention – Controllers/XYController.cs • Erbt von System.Web.Mvc.Controller • Public Methoden entsprechen „Actions“
  • 24. Controller • Methoden geben System.Web.Mvc.ActionResult zurück – ActionResult – ViewResult – PartialViewResult – JsonResult – ContentResult – JavaScriptResult – FileResult – RedirectResult – EmptyResult – ...
  • 25. Controller • Filter (Attribute) können auf Controller oder Actions gesetzt werden – HandleError – Authorize – HttpGet / HttpPost – OutputCache – ValidateAntiforgeryToken • Aspektorientierte Programmierung
  • 26. View • Namenskonvention – Views/ControllerName/ActionName.aspx • Standard ViewEngine ist Webforms – Alternative: Spark
  • 27. View • Ein View kann sich aus mehreren PartialViews (=UserControls) zusammensetzen • HTML kann erzeugt werden durch – Eigenes Markup – HTML Helper – Templated HTML Helpers
  • 28. (Best) Practices • Dependency Injection für Repositories verwenden • Repository Pattern • Model -> ViewModel verwenden • Entweder jQuery oder MS Ajax verwenden • Resharper einsetzen 
  • 29. Nützliche Frameworks und Tools • MvcFutures -> aspnet.codeplex.com • MvcContrib -> MvcContrib.codeplex.com • MvcTurbine -> MvcTurbine.codeplex.com • Validierung – FluentValidation -> FluentValidation.codeplex.com – xVal -> xVal.codeplex.com • „Controls“ – Telerik MVC -> www.telerik.com / MVC – Syncfusion -> www.syncfusion.com