35
Silverlight 4 frameworks, patterns Mike Taulty Microsoft Ltd @mtaulty [email protected] http://mtaulty.com

Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

  • Upload
    ukdpe

  • View
    2.851

  • Download
    0

Embed Size (px)

DESCRIPTION

Session slides from MIX10 Silverlight 4 workshop.

Citation preview

Page 1: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

Silverlight 4 frameworks, patterns

Mike Taulty

Microsoft Ltd

@mtaulty

[email protected]

http://mtaulty.com

Page 2: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 3: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 4: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 5: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 6: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

enough hot air, do a demo

ASP.NET Services from Silverlight

Page 7: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 8: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 9: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 10: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

WCF Data Services ( “Astoria” )

implementation of odata for the client and the server

metadata

http://server/customers(‘alfki’)/Orders?$top=20

Atom

Page 11: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

enough hot air, do a demo

WCF Data Services from Silverlight

Page 12: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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 )

Page 13: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 14: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 15: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 16: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

enough hot air, do a demo

WCF RIA Services

Page 17: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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 )

Page 18: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 19: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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()]

Page 20: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 21: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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}

Page 22: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

enough hot air, do a demo

Navigation Framework in Silverlight 4

Page 23: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 24: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 25: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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”

Page 26: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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 )

Page 27: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

where are we?

ASP.NET Client Application Services

WCF Data Services

WCF RIA Services

navigation

search

extensible applications with MEF

Page 28: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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 )

Page 29: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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

Page 30: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

one application of MEF

MyApp.xap

initial, small download

Extras.xap

Page 31: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

enough hot air, do a demo

the Managed Extensibility Framework

Page 32: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

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 )

Page 33: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

resources

www.silverlight.tv www.silverlight.net

Page 34: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

feedback

eval forms on seat

fill them in

• ideally, after we’ve finished

tweet @mtaulty, @john_papa

Page 35: Mike Taulty MIX10 Silverlight 4 Patterns Frameworks

© 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.