Hands on - DotNetHub
Download
Report
Transcript Hands on - DotNetHub
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
2
AGENDA
Presentation
What is MVC?
MVC on the web today
ASP.NET MVC
Timeline
What web forms does well
Where web forms doesn’t fit
ASP.NET MVC believes
Should you fear ASP.NET MVC?
Comparison with ASP.NET web forms
The MVC pattern
Model
View
Controller
What’s new in ASP.NET MVC 3
Demos
Q & A
ASP.NET MVC – Hands on
3
PRESENTATION
ASP.NET MVC – Hands on
4
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
5
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
6
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
Don’t repeat yourself, keep it simple (DRY/KISS principles)
ASP.NET MVC – Hands on
7
TIMELINE
• ScottGu sketched
out the core of
ASP.NET MVC
(~100 lines of
code)
February 2007
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
December 2007
April 2009
ASP.NET MVC – Hands on
March 2010
• ASP.NET MVC 2.0
• Shipped with
Visual Studio 2010
• ASP.NET MVC 3.0
• Shipped with
Visual Studio 2010
January 2011
8
COMPARISON WITH
ASP.NET WEB FORMS
ASP.NET MVC – Hands on
9
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
It’s 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
It’s 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 application’s
data domain
View
components that display the
application’s 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 application’s 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
Application’s 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
WHAT’S NEW IN
ASP.NET MVC 3
ASP.NET MVC – Hands on
19
WHAT’S 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