You are on page 1of 24

www.dev-one.

com

ASP.NET MVC
Fabian Vilers
Twitter: @fvilers

Hands on

ABOUT DEV ONE


Dev One is your dedicated par tner providing high quality exper ts on archite cture , development, and testing roles on IT projects using Microsof t .NET technologie s . Visit us on: http://www.dev -one.com
We will help your enterprise to build a state of the ar t solution using the latest available technologies so you can rapidly deploy your applications and ser vices. Our proven experience, and a deep understanding of your business, will help us to you reduce your IT development costs and let your employees concentrate on your core business. We are aimed at providing consultancy exper ts on architecture, development, and testing roles, especially using the .NET technologies and the Microsof t ecosystem. With more than 10 years of multiple IT development experiences, we have forged a set of skills through various project & missions in several activity sectors that enables us to deliver you high quality ser vices.

ASP.NET MVC Hands on

AGENDA
Presentation

Comparison with ASP.NET web forms


What web forms does well Where web forms doesnt fit ASP.NET MVC believes Should you fear ASP.NET MVC?

What is MVC? MVC on the web today ASP.NET MVC Timeline

The MVC pattern


Model View Controller

Whats new in ASP.NET MVC 3 Demos Q & A

ASP.NET MVC Hands on

PRESENTATION

ASP.NET MVC Hands on

WHAT IS MVC?
The MVC pattern is 30+ years old! It is a powerful and elegant means of separating concerns It makes it easier to test application It promotes parallel development thanks to the loose coupling between the three main components

ASP.NET MVC Hands on

MVC ON THE WEB TODAY


Ruby on Rails Django and Python Spring, Struts and Java Zend Framework and PHP MonoRail

ASP.NET MVC Hands on

ASP.NET MVC
Separation of application tasks (input logic, business logic, and UI logic), testability, and test -driven development (TDD) by default An extensible and pluggable framework A powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs Convention over configuration Dont repeat yourself, keep it simple (DRY/KISS principles)

ASP.NET MVC Hands on

TIMELINE

ScottGu sketched out the core of ASP.NET MVC (~100 lines of code)

September 2007
Presenstation of Scalene at the Austin ALT.NET conference

First Community Technology Preview

March 2009
ASP.NET MVC 1.0

ASP.NET MVC source code was released under the MS-PL

March 2010
ASP.NET MVC 2.0 Shipped with Visual Studio 2010

ASP.NET MVC 3.0 Shipped with Visual Studio 2010

February 2007

December 2007

April 2009

January 2011

ASP.NET MVC Hands on

COMPARISON WITH ASP.NET WEB FORMS

ASP.NET MVC Hands on

WHAT WEB FORMS DOES WELL


Represent a Page as control tree Give these ser ver-side controls events like their desktop counterparts Hide as much HTTP and HTML as is reasonable Make state management as transparent as possible

ASP.NET MVC Hands on

10

WHERE WEB FORMS DOESN T FIT


ViewState is powerful, but it has its drawbacks (weight,) Page life cycle can be a nightmare Limited control over HTML Client IDs and the c t l 0 0 $ C o n t e n t P l a c e H o l d e r 1 $ U s e r C o n t r o l 1 $ T e x t B o x 1 syndrome Its nearly impossible to run a Web Form through its life cycle outside IIS

ASP.NET MVC Hands on

11

ASP.NET MVC BELIEVES


Guiding tenets:
Be extensible, maintainable, and flexible Be testable Get out of the user s way when necessary

Ser ving methods, not files Separation of concerns ScottHa said: ASP.NET MVC is Web Forms unplugged

ASP.NET MVC Hands on

12

SHOULD YOU FEAR ASP.NET MVC?


ASP.NET MVC is built on top of ASP.NET ASP.NET MVC is not a replacement for anything It is just an alternative Its a totally different approach

ASP.NET MVC Hands on

13

THE MVC PATTERN

ASP.NET MVC Hands on

14

THE MVC PATTERN

Model
objects are the parts of the application that implement the logic for the applications data domain

View
components that display the applications user interface

Controller
components that handle user interaction, work with the model, and ultimately select a view to render
ASP.NET MVC Hands on

15

MODEL
Business logic and validation of the applications data domain Totally independant from the views or the controllers Model state can be stored in memor y, database, XML files,

ASP.NET MVC Hands on

16

VIEW
Applications user interface using data from the model No interaction with the models or the controllers Views can be strongly typed Almost no code

ASP.NET MVC Hands on

17

CONTROLLER
Handle user interaction Quer y the model Select the right view to render

ASP.NET MVC Hands on

18

WHATS NEW IN ASP.NET MVC 3

ASP.NET MVC Hands on

19

WHATS NEW IN ASP.NET MVC 3


Razor View Engine Suppor t for multiple view engine Global action filters ViewBag proper ty New ActionResult types JavaScript and A JAX improvements Client-side validation enabled by default Remote validator JSON binding suppor t Data annotations metadata attributes Validation interfaces Dependency injection improvements Par tial-Page Output Caching Granular Control over Request Validation
ASP.NET MVC Hands on

20

DEMOS

ASP.NET MVC Hands on

21

BOOK STORE
Using the ASP.NET MVC 3 template and playing around with Razor First data access and display a list of authors Manage authors Display a list of books Create and edit a book using the ViewModel pattern

Source code available on: http://vil.rs/qK3rMG

ASP.NET MVC Hands on

22

Q&A

ASP.NET MVC Hands on

23

ASP.NET MVC Hands on

24

You might also like