Silverlight 4 frameworks, patterns

wispxylopolistInternet and Web Development

Aug 7, 2012 (5 years and 1 month ago)

350 views

Silverlight 4

frameworks, patterns


Mike Taulty

Microsoft Ltd

@
mtaulty

mtaulty@microsoft.com

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

o
Data



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
>
Get
Restaurant
s
()

IQueryable
<
Restaurant
>
Search
Restaurant
(string)

void
Add
Restaurant
(
Restaurant
)

Validation and authorization rules,


Application workflows, …


Data Model


class Restaurant

DomainContext

Stateful

view +
Bindable

Data

class
PlateViewDomainService

EntityList
<
Restaurant
> Books { get }

EntityQuery
<
Restaurant
>
Get
Restaurant
Query
()

EntityQuery
<
Restaurant
>
Search
Restaurant
Query
(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
M
anaged
E
xtensibility
F
ramework


“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 )

resources

www.silverlight.tv

www.silverlight.net

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
dat
e 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 accu
rac
y 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.