Name Shashank Upadhyay Title Microsoft Student Partner

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 42

Name Shashank Upadhyay

Title Microsoft Student Partner


Compelling Cross-Platform User Experiences
Immersive media experiences & RIA
Seamless, fast installation for end users
Consistent experiences on Mac / Windows

Flexible programming model with collaborative tools


Integration with Web technologies
Based on the .NET Framework
Role specific tools for designers / developers

Efficient, lower cost delivery, and more capable media


HD to Mobile w/ SMPTE VC-1
Broad media ecosystem
Tools for live and on-demand publishing
2D Graphics
Standard shapes, masking and clipping
Transformations: skew, rotate, scale, translate, matrix
Animation Basics
Animations change properties over time
Support linear, discrete and spline animation
Animatable property types:
Double, Color, Point
Animations and graphics are defined using XAML
Media Features
Video: WMV V7, V8, V9, VC-1
Audio: WMA V7, V8, V9 (standard), MP3
Multiple options for deploying media
HTTP progressive download
Integration with Windows Media Server
Extensive WMV ecosystem
Various Silverlight Sites
Glyphs
Fixed text
Full Unicode glyph rendering support
Does not support layout (word/line breaking)
TextBlock
Basic layout support
Left-aligned, English-based text wrapping
Support font encryption and compression
V1 supports 64K Unicode Basic Multi-lingual Plane
Post V1, increased language support
Silverlight XAML elements are scriptable via the browser script
engine (JavaScript)
Scriptable objects are obtained via findName
Scriptable objects (elements) can be controlled via
properties and methods
Models JavaScript and HTML DOM interaction
findName is equivalent to document.getElementById()
Supports tree walking via children collection
Position set using "Canvas.Top" and "Canvas.Left"
Size can be scaled or set via Height/Width
<Rectangle x:Name="rect" />

void OnMouseEnter(object sender, MouseEventArgs e) {


sender.findName("rect").Height = 75;
}
HTTP Downloader
V1.0 supports HTTP gets (async and sync)
Provides download progress
ZIP packaging
Similar to XMLHTTP
CreateFromXAML
Primary way in V1.0 to dynamically create content
Supports namescopes (for name collisions)
Silverlight Application
http://silverlight.net/showcase
Highly productive development framework
Multi-language support
Latest developer innovations (e.g. LINQ)
AJAX integration
Great tools
Visual Studio
Expression Studio
Cross-platform & cross-browser plugin
Works with Safari, Firefox and Internet Explorer
Mac OS X and Windows
Any web server
Fast, easy install process
Silverlight
Silverlight
Data WPF for Silverlight .NET for Silverlight Server 1.0
1.0
Silverlight
Silverlight
LINQ LINQ-to-XML Extensible Controls Web Services ASP.NET 1.1
1.1
AJAX Libs Legend
Dynamic Languages BCL REST
POX
POX
RSS <asp:xaml>
JSON
JSON
Ruby Python Generics Collections SOAP <asp:media>

Common
Common Language
Language Runtime
Runtime

XAML
XAML

UI Core Inputs Media Controls DRM


2D Vectors Images Keyboard WMV / VC1 Layout Media
Animation Transforms Mouse WMA Editing
Text Ink MP3

Presentation Core

Integrated
DOM JavaScript
Networking Installer
Integration Engine
Stack

Browser Host
A few more applications
Cross-fader
OLYMPICS-08
Creating a custom control
Derive from System.Windows.Controls.Control
Define the look of the control in XAML
Call InitializeFromXaml(xaml) to build the initial
content
Store the return value to manipulate children
Accessing a custom control from XAML
Namespace declaration locates the control
Use it like a regular control
xmlns:local="clr-namespace:SilverlightApp;assembly=ClientBin/AppBinary.dll

<local:myCustomControl PropertyX="10" FooEvent="OnFooEvent" />


Browser based headers/cookies passed with request
Restricted to same domain access in the Alpha
Cross-domain coming
Make the HTTP Request

Uri dataLocation = new Uri("http://localhost/trafficdata.xml");


BrowserHttpWebRequest request =
new BrowserHttpWebRequest(dataLocation);
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();

Process the response

StreamReader responseReader = new


StreamReader(response.GetResponseStream());
string RawResponse = responseReader.ReadToEnd();
Core XML reading & writing capabilities in the alpha
RAD XLINQ support coming

Initialize the reader


XmlReader xr = XmlReader.Create(new StringReader(RawResponse));

Find a node and read its value


xr.ReadToFollowing("Item");
string playerNodeText = xr.Value;
string playerNameAttribute = xr.GetAttribute("Name");
Visual Studio-based Proxy Generator enables strongly typed
access
ASP.NET JSON services supported in the Alpha
WCF and SOAP will be supported in future releases

Server-based web service


[WebMethod]
public List<Transaction> GetTransactionList() { ... }

Call the Web Service from the client


proxy = new BankProxy();
transactionList = proxy.GetTransactionList().ToList();
Both synchronous and asynchronous web services supported in
the Alpha
General purpose RAD asynchronous support coming

Start the async web service call


proxy.BeginGetTransactionList(
new AsyncCallback(OnTransactionDataLoaded), null);

Handle the web service completion event


private void OnTransactionDataLoaded(IAsyncResult iar){
transactionList = proxy.EndGetTransactionList(iar).ToList();
}
LINQ = Language INtegrated Query
Allows query expressions to benefit from compile-time
syntax checking, static typing & Intellisense
Works on any IEnumerable<T>-based source
Supports querying of in-memory data sources
Other LINQ technologies forthcoming:
XLINQ = LINQ for XML
DLINQ = LINQ for relational data

Return all players with more than twenty home runs, sorted
var filteredPlayers = from p in players
where p.HomeRuns > 20
orderby p.HomeRuns descending
select p;
HTML access available in new namespace
using System.Windows.Browser;

Static HtmlPage class provides entry point


HtmlPage.Navigate("http://www.microsoft.com");
String server = HtmlPage.DocumentUri.Host;

Hookup events, call methods, or access properties


HtmlElement myButton =
HtmlPage.Document.GetElementByID("myButtonID");
myButton.AttachEvent("onclick", new
EventHandler(this.myButtonClicked));

private void myButtonClicked(object sender, EventArgs e)


{ ... }
Mark a property, method or event as [Scriptable]

[Scriptable]
public void Search(string Name) { ... }

Register a scriptable object


WebApplication.Current.RegisterScriptableObject
("EntryPoint", this);

Access the managed object from script


var control = document.getElementById("SilverlightControl");
control.Content.EntryPoint.Search(input.value);
Community Site: http://silverlight.net
Main Product Site: http://www.microsoft.com/silverlight
MSDN Center: http://msdn.microsoft.com/silverlight
Online Forums: http://silverlight.net/forums
Online SDK: http://msdn2.microsoft.com/bb188266.aspx

Silverlight Blogs
Tim Sneath: http://blogs.msdn.com/tims
Laurence Moroney: http://blogs.msdn.com/webnext
Adam Kinney: http://adamkinney.com
Jesse Liberty: http://silverlight.net/blogs/jesseliberty/
Tim Heuer: http://timheuer.com
Dave Campbell: http://www.wynapse.com/
Please Do not forget to fill the
Feedback forms
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.

You might also like