philly.NET Hands-On MVC Razor, HTML5, CSS3

advertisement
philly.NET Hands-On
MVC Razor, HTML5, CSS3
Rob Keiser, Bill Wolff
Hands-on Labs
Web
Development
Series
March 13
 Razor, HTML5, CSS3, MVC Controllers
April 10
 jQuery, plug-ins
May 8?
 Templating, jsRender, Knockout
June 12
 Page fragments, User controls, Scaffolding
July 10
 REST (consuming data), webAPI (providing data)
August 14
 Single Page Applications
September 11
 SignalR
 Model
 Contains the data to display
 Represent as classes
 Connect to database as needed
MVC
 View
 Display logic to render content
 Render only, no data storage or logic
 Controller
 Associated with URL structure
 Logic determines which view to display using a model
 Application
 Properties
 References
 Project Folders
MVC Project






App_Data
Content
Controllers
Models
Scripts
Views
 Configuration
 Global.asax
 Packages.config
 Web.config
 Shared Layouts
 Stores pages across all
 _layout.cshtml is like a master page
 _ViewStart.cshtml code added to each page
 HTML Helpers
Razor
 Render links and other tricky markup
 Pass information from master to content
 @ViewBag
 Content Placeholder
 @RenderBody()
 Partial Pages
 @RenderPage(“somepage.cshtml”)
 Syntax
Razor






Code blocks enclosed in @{ … }
Inline expressions start with @
End statements with semi-colon;
Declare variables with var or type
Enclose strings in quotes
C# is case sensitive
 Views
 One folder per controller, multiple views
 Typically cshtml files
 Home folder stores home (Index.cshtml) and about pages
 100+ specifications in W3C provides device independence
 IE9+, Chrome 6+, Firefox 3.6+, Safari 5+, most mobile devices
 Simplified declaration
 <!DOCTYPE html>
 Less need for plug-ins
HTML5




<canvas> for 2d drawing and inline SVG for vector graphics
<audio> and <source> audio playback
<video> and <source> media playback
Drag and drop support
 HTML5 applications






Local data storage without cookies, file access, SQL
Cache provides offline browsing, faster load times
XHTMLHttpRequest2
Javascript workers run in background
Server-side events
Geolocation can determine latitude and longitude
 Semantic layout
 <header> <footer> <hgroup> <nav> <progress>
 <section> <article> <aside> <summary> <details> <figure>
<figcaption> <time> <command> <dialog>
 Forms
HTML5
 <input> color, date, datetime, datetime-local, email, month,
number, range, search, tel, time, url, week
 <datalist> for <input> values with autocomplete
 <keygen> for authentication and certificates
 <output> for calculations
 <form> and <input> autocomplete
 <input> autofocus, formaction, list, min, max, multiple, pattern,
placeholder, required, step
 Selectors are most important to learn
 Many new styles are not supported yet
 animation with @keyframes
CSS3
 border-radius
 box-shadow
 Overflow
 Rotation
 Opacity
 Bookmark
 Hyphens
 Grid
 Target
 Columns
CSS3
 voice
 Text-shadow
 Transform
 Perspective
 Transition
 nav
Download