mike taulty mix10 silverlight 4 patterns frameworks
DESCRIPTION
Session slides from MIX10 Silverlight 4 workshop.TRANSCRIPT
Silverlight 4 frameworks, patterns
Mike Taulty
Microsoft Ltd
@mtaulty
http://mtaulty.com
capabilities
graphics
media
layout
styling
binding
resources animation
controls
network
local machine
browser need to know some or all of this depending on what you’re building
beyond capabilities
rich
internet
application
frameworks patterns
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
*lots of other Silverlight frameworks, libraries, patterns out there – sorry if I missed your favorite
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
ASP.NET Client App Services
• ASP.NET services available to Silverlight clients
ASP.NET
membership
roles
profiles
no specific client libraries here, just add a reference and make the call
enough hot air, do a demo
ASP.NET Services from Silverlight
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
RESTful services (in general)
Resources
Res 1
Res 2
Res 3
Res 4
HTTP Request
URL
VERB
Payload
HTTP Response Status
GET
POST
PUT
DELETE XML JSON
Payload
XML JSON
odata
• Open Data Protocol ( odata ) – www.odata.org
– published under the Open Specification Promise
• Extends the AtomPub standard to add – an addressing scheme
– a mechanism for schema
– alternate representation – JSON
– handling for concurrent updates
– handling for batched requests
WCF Data Services ( “Astoria” )
implementation of odata for the client and the server
metadata
http://server/customers(‘alfki’)/Orders?$top=20
Atom
enough hot air, do a demo
WCF Data Services from Silverlight
WCF Data Services
To learn about OData go to Pablo/Mike’s talks
oData – There’s a Feed for That
oData – How to Create a Feed for That
Tuesday 11.30am
Lagoon L
Tuesday 3pm
Breakers H
( check 2 B sure )
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
WCF RIA Services
DomainService Stateless CRUD + App Logic
class PlateViewDomainService IQueryable<Restaurant> GetRestaurants() IQueryable<Restaurant> SearchRestaurant(string) void AddRestaurant(Restaurant) Validation and authorization rules,
Application workflows, …
Data Model class Restaurant
DomainContext Stateful view + Bindable Data
class PlateViewDomainService EntityList<Restaurant> Books { get } EntityQuery<Restaurant> GetRestaurantQuery() EntityQuery<Restaurant> SearchRestaurantQuery(string)
class Restaurant Data members + Validation
Data Model + Metadata +
Shared Code
Rich Internet Application
DB
Services
Data Access
Layer
App
Logic
Presentation
Logic Network
Domain
Context
Data
Service
Under the covers infrastructure
Note: Slide stolen from Brad Abrams
WCF RIA Services
• WCF RIA Services (fka .NET RIA Services) You’re building an application – You’re responsible for both server and client deep in
business logic and semantics
• WCF Data Services (fka “Astoria”) You’re exposing/acquiring data – You control one side or the other, not both
– CRUD among arbitrary producers / consumers logic and semantics are invisible
NB: Slide stolen from Brad Abrams
enough hot air, do a demo
WCF RIA Services
WCF RIA Services
To learn about WCF RIA Services go to Nikhil Kothari’s talk
Developing with WCF RIA Services
Quickly & Effectively
Tuesday 1:30pm
Lagoon H
( check 2 B sure )
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
navigation
• Frame displays a Page
<UserControl> <Frame Source=“authors.xaml”/>
authors.xaml
Page
books.xaml
Page
• navigation between pages
– call Frame.Navigate() or set the Source property
– or use a HyperlinkButton ( NavigateUri/TargetName )
• navigation history
– call Frame.[Can]Go[Back()/Forward()]
navigation
• navigation can integrate with the browser – enables hyperlinking into Silverlight content
– requires a browser!
– requires a hidden iframe on the hosting page
– for top level Frames not nested frames
<UserControl> <Frame Source=“authors.xaml”/>
authors.xaml
Page
books.xaml
Page
• Frame displays a Page
navigation
navigate: http://booksite/default.aspx#/authors/steinbeck navigate: /authors/steinbeck
Frame
UriMapper ContentLoader
Asynchronously turns the URI into a Page or UserControl
Uri MappedUri
/authors/{author} /views/authors.xaml?surname={author}
/{pageName} /views/{pagename.xaml}
enough hot air, do a demo
Navigation Framework in Silverlight 4
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
search
• search engines visiting a page with Silverlight – read robots.txt and sitemap
– read/index the page title
– read/index the <meta name=“description”/>
– read/index the surrounding HTML ( if any )
– will not read XAP or dynamic Silverlight content
• approach – alternate content in the <object/> tag
– for both search engines & down-level clients
enough hot air, do a demo
offering alternate content to search
note – I stole this demo, it comes from the WCF RIA Services Code Gallery and is called “Silverlight Store”
WCF RIA Services
To learn more about SEO go to Brad Abrams’ talk
Search Engine Optimization for MS
Silverlight
Wednesday 12.00
Lagoon B
( check 2 B sure )
where are we?
ASP.NET Client Application Services
WCF Data Services
WCF RIA Services
navigation
search
extensible applications with MEF
extensible applications with MEF
• the Managed Extensibility Framework
– “an extensible framework for composing applications from a set of loosely-coupled parts discovered and evolving at run-time“ (mike)
• versions
– .NET Framework shipping with Silverlight 4
– .NET Framework 4 shipping with VS 2010
– Silverlight 3 & .NET Framework V3.5 Sp1 ( from source on CodePlex )
essential MEF
Compose
• MEF discovers exports via catalogs
– several “in box” catalogs plus many extensibility points
– supports available exports changing at runtime
• and/or can be handed component instances
one application of MEF
MyApp.xap
initial, small download
Extras.xap
enough hot air, do a demo
the Managed Extensibility Framework
MEF
To really learn about MEF go along to Glenn Block’s talk
Silverlight Optimization &
Extensibility with MEF
Tuesday, 3.35pm
Lagoon B
( check 2 B sure )
feedback
eval forms on seat
fill them in
• ideally, after we’ve finished
tweet @mtaulty, @john_papa
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.