SlideShare a Scribd company logo
1 of 80
Nick Kramer
Jamie Cool
                        .NET Framework Team
.NET Framework Team
                        Microsoft Corporation
Microsoft Corporation
                        nkramer@microsoft.com
jamiec@microsoft.com
Tons of stuff – 2+ talks worth!

                                  Part 2
Part 1
                                   HTTP Networking + XML
 Silverlight + .NET Overview
                                   Web Services
 Getting Started
                                   LINQ
 Working with UI
                                   HTML Integration
 Building custom controls
                                   Rounding it out
Web deployment
 Need a ubiquitous platform
 Need a secure sandboxed environment

Rich UI experiences beyond server generated HTML
 Need a highly capable UI model

Signifigant client-side application logic
 Need a highly productive development environment
Highly productive development Framework
 Multi-language support, like C# & VB
 Contains the latest innovation from Microsoft (ex. LINQ)
 AJAX integration

Great tools with Visual Studio & Expression
Cross-platform & cross-browser plugin
 Works with Safari, Firefox and IE on MAC & Windows
 Fast, easy install process
Browser Host      .NET for Silverlight
                                                         WPF
                             Data                                               Networking
 MS AJAX
                                                  Extensible Controls         REST
                        LINQ    XLINQ
                                                                                       POX
  Library
                                                                               RSS
                                                         BCL
                             DLR                                                      JSON
   DOM
                                                 Generics Collections         SOAP
                        Ruby    Python
Integration
                                                                                                 Legend
                                                 CLR Execution Engine
Application                                                                                      V1.1
 Services
                                                                                                 Legend
                                                        XAML
                                                                                                 V1.0
   Deploy
                Presentation




                                                            Inputs
                                    UI Core                                         DRM
                                                     Keyboard Mouse Ink
Friction-Free                                                                      Media
                    Core




                                          Text
                                Vector
   Installer                                               Media                   Controls
                               Animation Images
   Auto-                                                                        Layout Editing
                                                       VC1 WMA          MP3
  Updater
.NET for Silverlight is a factored subset of full .NET
  Desktop ~50 MB (Windows only)
  Silverlight + .NET Alpha ~ 4 MB (cross platform)
  Additional pieces of .NET available in a pay-for-play model
Same core development Framework
  The shared apis & technologies are the same
  The tools are the same
Highly compatible
  Minimal changes needed to move from Silverlight to Desktop
  However, not binary compatible by default
All apps run in the sandbox
 Conceptually similar to the HTML DOM sandbox
Apps run just like HTML pages – just click a URL
 No elevation prompts.
 No way to get out of the sandbox
Includes some additional functionality:
 Safe isolated storage
 Client based file upload controls
 Cross domain support in-work
Install the following:
 Silverlight V1.1 Alpha
 Visual Studio “Orcas” Beta 1
 Silverlight Tools Alpha for Visual Studio quot;Orcasquot; Beta 1
 Expression Blend 2 May Preview
 ASP.NET Futures
Everything you need is at www.silverlight.net
 Links to downloads & docs
 VS object browser a great way to view APIs
A .NET silverlight app includes at least:
  A root html file - Default.htm
  Script load files - CreateSilverlight.js & Silverlight.js
  A root xaml & assembly - YourApp.xaml & YourApp.dll
A .NET Silverlight app is also likely to include:
  Other application libraries (your's, Microsoft's or 3rd parties)
  Application resources (ex. xaml) – optionally embedded in assembly
Packaging
  Loose file support in Alpha 1
  Zip package support planned
XAML = eXtensible Application Markup Language
Flexible XML document schema
 Examples: WPF, Silverlight, Workflow Foundation
More compact than code
Enables rich tooling support
 While still preserving good readability and hand-coding within
 text editors
<Canvas
     xmlns=quot;http://schemas.microsoft.com/client/2007quot;
>
   <TextBlock FontSize=quot;32quot; Text=quot;Hello worldquot; />
</Canvas>




                                      Hello world
<TextBlock FontSize=quot;32quot; Text=quot;Hello worldquot; />



                   =
      TextBlock t = new TextBlock();
      t.FontSize = 32;
      t.Text = quot;Hello worldquot;;
Is a Drawing Surface
Children have relative positions:
   <Canvas Width=quot;250quot; Height=quot;200quot;>

     <Rectangle Canvas.Top=quot;25quot; Canvas.Left=quot;25quot;
                Width=quot;200quot; Height=quot;150quot; Fill=quot;Yellowquot; />

   </Canvas>


        The Canvas
       The Rectangle
Position relative to first Canvas parent:
<Canvas Background=quot;Light Grayquot;>
  <Canvas Canvas.Top=quot;25quot; Canvas.Left=quot;25quot;
          Width=quot;150quot; Height=quot;100quot;
          Background=quot;Redquot;>

      <Ellipse Canvas.Top=quot;25quot;
               Canvas.Left=quot;25quot;
               Width=quot;150quot;
               Height=quot;75quot;
               Fill=“Whitequot; />
  </Canvas>
</Canvas>
<Canvas>
            <Rectangle/>
          </Canvas>



                =
Canvas canvas = new Canvas();
Rectangle rectangle = new Rectangle();
canvas.Children.Add(rectangle);
<Canvas>
  <Rectangle Canvas.Top=quot;25quot;/>
</Canvas>

Top property only make sense inside a Canvas
When we add new layouts, do we add new properties to
Rectangle?

Solution: attached properties!
<Rectangle Canvas.Top=quot;25quot; Canvas.Left=quot;25quot;/>



                =
Rectangle rectangle = new Rectangle();
rectangle.SetValue(Canvas.TopProperty, 25);
rectangle.SetValue(Canvas.LeftProperty, 25);
All elements support them
Transform Types
 <RotateTransform />
 <ScaleTransform />
 <SkewTransform />
 <TranslateTransform />
   Moves
 <MatrixTransform />
   Scale, Skew and Translate Combined
<TextBlock Text=quot;Hello Worldquot;>
  <TextBlock.RenderTransform>
    <RotateTransform Angle=quot;45quot; />
  </TextBlock.RenderTransform>
</TextBlock>
Property values can be complex objects
Use “property elements” to represent them in XML
 <SomeClass.SomeProperty>
<TextBlock>
  <TextBlock.RenderTransform>
    <RotateTransform Angle=quot;45quot; />
  </TextBlock.RenderTransform>
</TextBlock>


             =
TextBlock block = new TextBlock;
RotateTransform transform = new RotateTransform();
Transform.Angle = 45;
block.RenderTransform = transform;
MouseMove             KeyUp
MouseEnter            KeyDown
MouseLeave            GotFocus
MouseLeftButtonDown   LostFocus
MouseLeftButtonUp     Loaded
<Canvas xmlns=quot;…quot; xmlns:x=quot;…quot;
        MouseEnter=quot;OnMouseEnterquot;>
</Canvas>




            =
Canvas canvas = new Canvas();
canvas.MouseEnter += OnMouseEnter;

// or more explicitly:
canvas.MouseEnter += new MouseEventHandler(OnMouseEnter);
<Canvas xmlns=quot;…quot; xmlns:x=quot;…quot;
        Height=quot;100quot; Width=quot;100quot; Background=quot;Redquot;
        x:Name=“canvas”
   />
</Canvas>




Private Sub something _
       (ByVal o As Object, ByVal e As MouseEventArgs) _
       Handles canvas.MouseEnter
   rectangle.Fill = New SolidColorBrush(Colors.Green)
End Sub
<Canvas xmlns=quot;…quot; xmlns:x=quot;…quot;
        Height=quot;100quot; Width=quot;100quot; Background=quot;Redquot;
        MouseEnter=quot;OnMouseEnterquot;
   />
</Canvas>




void OnMouseEnter(object sender, MouseEventArgs e)   {
            …
}
Name your xaml element so you can use it in code
                <Rectangle x:Name=“rect”/>




void OnMouseEnter(object sender, MouseEventArgs e)   {
    rect.Height = 75;
}
Custom Element = custom class
 (Markup = object model)
Use XML namespaces
 <prefix:CustomClass/>
XML namespace declaration tells where to find class
  xmlns:prefix=
             quot;clr-namespace:SomeNamespace;
             assembly=SomeAssembly.dllquot;
Derive from Control
 Eg, public class MyControl : Control
Define the look of the control in xaml
Call InitializeFromXaml(xaml)
Remember the return value
Have a public parameterless constructor
 Eg, public MyControl()
Create public properties
Create public events
In terms of graphics/UI/XAML:

v1.1 =
    v1.0
    + managed code (CLR)
    + XAML extensibility
    + Control class (user control)
    + sample controls
1.1 alpha   1.1 thinking   WPF
Button           Sample      Yes            Yes
TextBox (edit)   No          Yes            Yes
Scrollbar        Sample      Yes            Yes
Slider           Sample      Yes            Yes
ListBox          Sample      Yes            Yes
CheckBox         No          Yes            Yes
RadioButton      No          Yes            Yes
ComboBox         No          Yes            Yes
1.1 alpha   1.1 thinking   WPF
TreeView      No          No             Yes
                                         3rd party
Accordion     No          No
                                         3rd party
DataGrid      No          No
UserControl   Yes         Yes            Yes
1.1 alpha   1.1 thinking   WPF
Canvas         Yes         Yes            Yes
Grid (table)   No          Yes            Yes
StackPanel     No          Yes            Yes
Viewbox        No          Yes            Yes
1.1 alpha   1.1 thinking   WPF
Mouse events   Partial     Yes            Yes
Keyboard       Partial     Yes            Yes
events
<.Resources>   Partial     Yes            Yes
Data binding   No          Yes            Yes
styling        No          Yes            Yes
1.1 alpha   1.1 thinking   WPF
3D            No          No             Yes
Hardware      No          No             Yes
acceleration
Out of browser No         No             Yes
Off-line       No         No             Yes
Cross-platform Yes        Yes            No
HTTP Networking + XML
Web Services
LINQ
HTML Integration
Rounding it out
Resources
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(quot;http://localhost/playerdata.xmlquot;);
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 & read it’s value
  xr.ReadToFollowing(quot;Playerquot;);
  string playerNodeText = xr.Value;
  string playerNameAttribute = xr.GetAttribute(quot;Namequot;);
VS based Proxy Generator enables strongly typed access
  ASP.NET JSON services supported in the Alpha
  WCF & SOAP support coming
The Web Service to Call
  [WebMethod]
  public List<Player> GetPlayerList() {   ... }

Call the Web Service from the client
  baseballService = new BaseballData();
  playerList = baseballService.GetPlayerList().ToList();
Sync & Async web services supported in the Alpha
  General purpose RAD async support coming
Start the async web service call
  baseballService.BeginGetPlayerList(
       new AsyncCallback(OnPlayerDataLoaded), null);

Handle the web service completion event
  private void OnPlayerDataLoaded(IAsyncResult iar)
  {
       playerList = baseballService.EndGetPlayerList(iar).ToList();
  }
Works with any Web server
 Only requirement is to serve Silverlight files to the browser
 Ex. xaml, assemblies, resources
ASP.NET is a great platform for Silverlight applications
 Use ASP.NET & WCF services from Silverlight
 Integrate Media into an ASPX page
 Integrate Silverlight content into an ASPX page
 Leverage ASP.NET AJAX Extensions and ASP.NET Futures
 (May 2007)
 Other integration points under way…
LINQ = Language INtegrated Query
  Allows query expressions to benefit from compile-time
  syntax checkking, static typing & Intellisense
  Works on any IEnumerable<T> based info source


Return all players with 20+ home runs, sorted
 var filteredPlayers = from p in players
                       where p.HomeRuns > 20
                       orderby p.HomeRuns descending
                       select p;
Supports querying on in memory datasources
Other LINQ technologies forthcoming:
 XLINQ = LINQ for XML
  Query, parse, create XML
 DLINQ = LINQ for relational data
  Query, edit, create relational data
HTML access availble in new namespace
 using System.Windows.Browser;

Static HtmlPage class provides entry point
 HtmlPage.Navigate(quot;http://www.microsoft.comquot;);
 String server = HtmlPage.DocumentUri.Host;

Hookup events, call methods, or access properties
 HtmlElement myButton = HtmlPage.Document.GetElementByID(quot;myButtonIDquot;);
 myButton.AttachEvent(quot;onclickquot;, 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(quot;BaseballDataquot;, this);


Access the managed object from script:
 var control = document.getElementById(quot;Xaml1quot;);
 control.Content.BaseballData.Search(input.value);
Other interesting HTML integration scenarios:
 Persisent links
 Fwd/Back Integration


Notes:
 Simple type marshalling only in the Alpha
 Complex type support on the way
Enables debugging of Silverlight code on the MAC
Requires a proxy client installed on the MAC
Proxy & setup instructions can be found at:
 C:Program FilesMicrosoft Visual Studio
 9.0SilverlightMacIntel
 Proxy must be running prior to browser activation
Dynamic Languages
  Javascript, Python, Ruby

Application Services
  Isolated Storage
  Safe File Open

ASP.NET Integration

Find out more about these technologies in upcoming sessions…
Talk                                                 Time
                                                     Tues – 11:45
Just Glue It! Dynamic Languages in Silverlight

                                                     Tues – 11:45
Developing ASP.NET AJAX Controls with Silverlight

Deep Dive on Silverlight Media Integration           Tues - 2:15

                                                     Wens – 9:45
Extending the Browser Programming Model with
Silverlight
                                                     Wens – 11:30
Building Rich, Interactive E-commerce Applications
Using ASP.NET and Silverlight
Give us feedback
 Features you like?
 Features you don’t?
 What do you want to build?
 What existing code & skills will you leverage?
Font, size, and color for text have been formatted for you
in the Slide Master
Use the color palette shown below
See next slide for additional guidelines
     Sample Fill        Sample Fill         Sample Fill


     Sample Fill        Sample Fill         Sample Fill
Name
Title
Group
Name
Title
Group
Name
Title
Group
© 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.
Backup
Silverlight
Factored CLR Execution engine                            .NET Framework
  Full type system (generics,                      WPF         HTML Bridge
  collections, etc..)                             App Model & Services
                                                   Framework Libraries
Factored Framework libraries                                                     DLR
                                                     XML           NET         (Ruby, Pyt
                                                                                 hon)
  Leightweight subset of .NET for                                 LINQ
                                                     BCL
                                       V1.1
  web applications                                         Execution Engine

Extensible Platform
                                              Presentation and Media Runtime
                                        V1
  Updater denables a model for agile                       Controls
  evolutoin of the platform                        Inputs (Key, Mouse, Ink)        Browser
  Sandboxed assemblies can be                                                      Hosting
                                                  Media (VC1, WMA, MP3)
  deployed with the application                UI Core (Text, Vector, Animation)

                                              Friction-free Installer & Updater

More Related Content

What's hot

Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008Edoardo Schepis
 
Lightning Talk Wakame on 9 April 2009
Lightning Talk Wakame on 9 April 2009Lightning Talk Wakame on 9 April 2009
Lightning Talk Wakame on 9 April 2009axsh co., LTD.
 
NYC Amazon Web Services Meetup: How Glue uses AWS
NYC Amazon Web Services Meetup: How Glue uses AWSNYC Amazon Web Services Meetup: How Glue uses AWS
NYC Amazon Web Services Meetup: How Glue uses AWSAlex Iskold
 
Unlocking Agility with the AWS Serverless Application Model (SAM)
Unlocking Agility with the AWS Serverless Application Model (SAM)Unlocking Agility with the AWS Serverless Application Model (SAM)
Unlocking Agility with the AWS Serverless Application Model (SAM)Amazon Web Services
 
Alfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Software
 
Html5 form attributes
Html5 form attributesHtml5 form attributes
Html5 form attributesOPENLANE
 
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologies
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologiesDomino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologies
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologiesAndrew Luder
 
jmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstartjmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services JumpstartBill Buchan
 
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...Harish Ganesan
 
CloudFest Denver Windows Azure Design Patterns
CloudFest Denver Windows Azure Design PatternsCloudFest Denver Windows Azure Design Patterns
CloudFest Denver Windows Azure Design PatternsDavid Pallmann
 

What's hot (13)

Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
 
Lightning Talk Wakame on 9 April 2009
Lightning Talk Wakame on 9 April 2009Lightning Talk Wakame on 9 April 2009
Lightning Talk Wakame on 9 April 2009
 
NYC Amazon Web Services Meetup: How Glue uses AWS
NYC Amazon Web Services Meetup: How Glue uses AWSNYC Amazon Web Services Meetup: How Glue uses AWS
NYC Amazon Web Services Meetup: How Glue uses AWS
 
Unlocking Agility with the AWS Serverless Application Model (SAM)
Unlocking Agility with the AWS Serverless Application Model (SAM)Unlocking Agility with the AWS Serverless Application Model (SAM)
Unlocking Agility with the AWS Serverless Application Model (SAM)
 
Alfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and Beyond
 
Html5 form attributes
Html5 form attributesHtml5 form attributes
Html5 form attributes
 
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologies
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologiesDomino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologies
Domino/Notes 9.0 upgrade to take advantage of NFL, WFL and CORS technologies
 
jmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstartjmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstart
 
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...
Cloud Developer Conference May 2011 SiliconIndia : Design for Failure - High ...
 
CloudFest Denver Windows Azure Design Patterns
CloudFest Denver Windows Azure Design PatternsCloudFest Denver Windows Azure Design Patterns
CloudFest Denver Windows Azure Design Patterns
 
Break out of The Box - Part 2
Break out of The Box - Part 2Break out of The Box - Part 2
Break out of The Box - Part 2
 
AD102 - Break out of the Box
AD102 - Break out of the BoxAD102 - Break out of the Box
AD102 - Break out of the Box
 
AWS Case Study
AWS Case StudyAWS Case Study
AWS Case Study
 

Viewers also liked

Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...goodfriday
 
Escaping Flatland in Application Design: Rich User Experiences
Escaping Flatland in Application Design: Rich User ExperiencesEscaping Flatland in Application Design: Rich User Experiences
Escaping Flatland in Application Design: Rich User Experiencesgoodfriday
 
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2goodfriday
 
Protecting Online Identities
Protecting Online IdentitiesProtecting Online Identities
Protecting Online Identitiesgoodfriday
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Servicesgoodfriday
 
3rd Sunday of Easter :: op-stjoseph.org
3rd Sunday of Easter :: op-stjoseph.org3rd Sunday of Easter :: op-stjoseph.org
3rd Sunday of Easter :: op-stjoseph.orggoodfriday
 
Building Microsoft Silverlight Controls
Building Microsoft Silverlight ControlsBuilding Microsoft Silverlight Controls
Building Microsoft Silverlight Controlsgoodfriday
 
Partying with PHP on Microsoft Internet Information Services 7
Partying with PHP on Microsoft Internet Information Services 7Partying with PHP on Microsoft Internet Information Services 7
Partying with PHP on Microsoft Internet Information Services 7goodfriday
 

Viewers also liked (8)

Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
Building AOL's High Performance, Enterprise Wide Mail Application With Silver...
 
Escaping Flatland in Application Design: Rich User Experiences
Escaping Flatland in Application Design: Rich User ExperiencesEscaping Flatland in Application Design: Rich User Experiences
Escaping Flatland in Application Design: Rich User Experiences
 
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
Building Rich Internet Applications Using Microsoft Silverlight 2, Part 2
 
Protecting Online Identities
Protecting Online IdentitiesProtecting Online Identities
Protecting Online Identities
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Services
 
3rd Sunday of Easter :: op-stjoseph.org
3rd Sunday of Easter :: op-stjoseph.org3rd Sunday of Easter :: op-stjoseph.org
3rd Sunday of Easter :: op-stjoseph.org
 
Building Microsoft Silverlight Controls
Building Microsoft Silverlight ControlsBuilding Microsoft Silverlight Controls
Building Microsoft Silverlight Controls
 
Partying with PHP on Microsoft Internet Information Services 7
Partying with PHP on Microsoft Internet Information Services 7Partying with PHP on Microsoft Internet Information Services 7
Partying with PHP on Microsoft Internet Information Services 7
 

Similar to Building Silverlight Applications Using .NET (Part 2 of 2)

Get To Know Silverlight
Get To Know SilverlightGet To Know Silverlight
Get To Know SilverlightMarco Silva
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItVenketash (Pat) Ramadass
 
Silverlight abhinav - slideshare
Silverlight   abhinav - slideshareSilverlight   abhinav - slideshare
Silverlight abhinav - slideshareabhinav4133
 
Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2David Chou
 
WDN08 Silverlight
WDN08 SilverlightWDN08 Silverlight
WDN08 Silverlightwsmith67
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA PlexCM First Group
 
Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with SilverlightJosh Holmes
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Riaravinxg
 
Silverlight 2 For Developers
Silverlight 2 For DevelopersSilverlight 2 For Developers
Silverlight 2 For DevelopersMithun T. Dhar
 
An Introduction to Sencha Touch
An Introduction to Sencha TouchAn Introduction to Sencha Touch
An Introduction to Sencha TouchJames Pearce
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008rothacr
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?ukdpe
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35Subodh Pushpak
 
WAD - WaveMaker tutorial
WAD - WaveMaker tutorial WAD - WaveMaker tutorial
WAD - WaveMaker tutorial marina2207
 
WaveMaker tutorial with Flash
WaveMaker tutorial with FlashWaveMaker tutorial with Flash
WaveMaker tutorial with Flashmarina2207
 

Similar to Building Silverlight Applications Using .NET (Part 2 of 2) (20)

Get To Know Silverlight
Get To Know SilverlightGet To Know Silverlight
Get To Know Silverlight
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use It
 
Silverlight abhinav - slideshare
Silverlight   abhinav - slideshareSilverlight   abhinav - slideshare
Silverlight abhinav - slideshare
 
Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2
 
WDN08 Silverlight
WDN08 SilverlightWDN08 Silverlight
WDN08 Silverlight
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA Plex
 
Architecting RIAs with Silverlight
Architecting RIAs with SilverlightArchitecting RIAs with Silverlight
Architecting RIAs with Silverlight
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Ria
 
Flex RIA
Flex RIAFlex RIA
Flex RIA
 
Silverlight 2 For Developers
Silverlight 2 For DevelopersSilverlight 2 For Developers
Silverlight 2 For Developers
 
An Introduction to Sencha Touch
An Introduction to Sencha TouchAn Introduction to Sencha Touch
An Introduction to Sencha Touch
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008
 
Atlas Php
Atlas PhpAtlas Php
Atlas Php
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35
 
WAD - WaveMaker tutorial
WAD - WaveMaker tutorial WAD - WaveMaker tutorial
WAD - WaveMaker tutorial
 
WaveMaker tutorial with Flash
WaveMaker tutorial with FlashWaveMaker tutorial with Flash
WaveMaker tutorial with Flash
 
Caerusone
CaerusoneCaerusone
Caerusone
 
WaveMaker Presentation
WaveMaker PresentationWaveMaker Presentation
WaveMaker Presentation
 

More from goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 eastergoodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009goodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swimgoodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Currentgoodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newslettergoodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendargoodfriday
 

More from goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 

Recently uploaded

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 

Building Silverlight Applications Using .NET (Part 2 of 2)

  • 1.
  • 2. Nick Kramer Jamie Cool .NET Framework Team .NET Framework Team Microsoft Corporation Microsoft Corporation nkramer@microsoft.com jamiec@microsoft.com
  • 3. Tons of stuff – 2+ talks worth! Part 2 Part 1 HTTP Networking + XML Silverlight + .NET Overview Web Services Getting Started LINQ Working with UI HTML Integration Building custom controls Rounding it out
  • 4. Web deployment Need a ubiquitous platform Need a secure sandboxed environment Rich UI experiences beyond server generated HTML Need a highly capable UI model Signifigant client-side application logic Need a highly productive development environment
  • 5. Highly productive development Framework Multi-language support, like C# & VB Contains the latest innovation from Microsoft (ex. LINQ) AJAX integration Great tools with Visual Studio & Expression Cross-platform & cross-browser plugin Works with Safari, Firefox and IE on MAC & Windows Fast, easy install process
  • 6. Browser Host .NET for Silverlight WPF Data Networking MS AJAX Extensible Controls REST LINQ XLINQ POX Library RSS BCL DLR JSON DOM Generics Collections SOAP Ruby Python Integration Legend CLR Execution Engine Application V1.1 Services Legend XAML V1.0 Deploy Presentation Inputs UI Core DRM Keyboard Mouse Ink Friction-Free Media Core Text Vector Installer Media Controls Animation Images Auto- Layout Editing VC1 WMA MP3 Updater
  • 7. .NET for Silverlight is a factored subset of full .NET Desktop ~50 MB (Windows only) Silverlight + .NET Alpha ~ 4 MB (cross platform) Additional pieces of .NET available in a pay-for-play model Same core development Framework The shared apis & technologies are the same The tools are the same Highly compatible Minimal changes needed to move from Silverlight to Desktop However, not binary compatible by default
  • 8. All apps run in the sandbox Conceptually similar to the HTML DOM sandbox Apps run just like HTML pages – just click a URL No elevation prompts. No way to get out of the sandbox Includes some additional functionality: Safe isolated storage Client based file upload controls Cross domain support in-work
  • 9.
  • 10. Install the following: Silverlight V1.1 Alpha Visual Studio “Orcas” Beta 1 Silverlight Tools Alpha for Visual Studio quot;Orcasquot; Beta 1 Expression Blend 2 May Preview ASP.NET Futures Everything you need is at www.silverlight.net Links to downloads & docs VS object browser a great way to view APIs
  • 11. A .NET silverlight app includes at least: A root html file - Default.htm Script load files - CreateSilverlight.js & Silverlight.js A root xaml & assembly - YourApp.xaml & YourApp.dll A .NET Silverlight app is also likely to include: Other application libraries (your's, Microsoft's or 3rd parties) Application resources (ex. xaml) – optionally embedded in assembly Packaging Loose file support in Alpha 1 Zip package support planned
  • 12.
  • 13.
  • 14. XAML = eXtensible Application Markup Language Flexible XML document schema Examples: WPF, Silverlight, Workflow Foundation More compact than code Enables rich tooling support While still preserving good readability and hand-coding within text editors
  • 15. <Canvas xmlns=quot;http://schemas.microsoft.com/client/2007quot; > <TextBlock FontSize=quot;32quot; Text=quot;Hello worldquot; /> </Canvas> Hello world
  • 16. <TextBlock FontSize=quot;32quot; Text=quot;Hello worldquot; /> = TextBlock t = new TextBlock(); t.FontSize = 32; t.Text = quot;Hello worldquot;;
  • 17. Is a Drawing Surface Children have relative positions: <Canvas Width=quot;250quot; Height=quot;200quot;> <Rectangle Canvas.Top=quot;25quot; Canvas.Left=quot;25quot; Width=quot;200quot; Height=quot;150quot; Fill=quot;Yellowquot; /> </Canvas> The Canvas The Rectangle
  • 18. Position relative to first Canvas parent: <Canvas Background=quot;Light Grayquot;> <Canvas Canvas.Top=quot;25quot; Canvas.Left=quot;25quot; Width=quot;150quot; Height=quot;100quot; Background=quot;Redquot;> <Ellipse Canvas.Top=quot;25quot; Canvas.Left=quot;25quot; Width=quot;150quot; Height=quot;75quot; Fill=“Whitequot; /> </Canvas> </Canvas>
  • 19. <Canvas> <Rectangle/> </Canvas> = Canvas canvas = new Canvas(); Rectangle rectangle = new Rectangle(); canvas.Children.Add(rectangle);
  • 20. <Canvas> <Rectangle Canvas.Top=quot;25quot;/> </Canvas> Top property only make sense inside a Canvas When we add new layouts, do we add new properties to Rectangle? Solution: attached properties!
  • 21. <Rectangle Canvas.Top=quot;25quot; Canvas.Left=quot;25quot;/> = Rectangle rectangle = new Rectangle(); rectangle.SetValue(Canvas.TopProperty, 25); rectangle.SetValue(Canvas.LeftProperty, 25);
  • 22.
  • 23. All elements support them Transform Types <RotateTransform /> <ScaleTransform /> <SkewTransform /> <TranslateTransform /> Moves <MatrixTransform /> Scale, Skew and Translate Combined
  • 24. <TextBlock Text=quot;Hello Worldquot;> <TextBlock.RenderTransform> <RotateTransform Angle=quot;45quot; /> </TextBlock.RenderTransform> </TextBlock>
  • 25. Property values can be complex objects Use “property elements” to represent them in XML <SomeClass.SomeProperty>
  • 26. <TextBlock> <TextBlock.RenderTransform> <RotateTransform Angle=quot;45quot; /> </TextBlock.RenderTransform> </TextBlock> = TextBlock block = new TextBlock; RotateTransform transform = new RotateTransform(); Transform.Angle = 45; block.RenderTransform = transform;
  • 27.
  • 28. MouseMove KeyUp MouseEnter KeyDown MouseLeave GotFocus MouseLeftButtonDown LostFocus MouseLeftButtonUp Loaded
  • 29. <Canvas xmlns=quot;…quot; xmlns:x=quot;…quot; MouseEnter=quot;OnMouseEnterquot;> </Canvas> = Canvas canvas = new Canvas(); canvas.MouseEnter += OnMouseEnter; // or more explicitly: canvas.MouseEnter += new MouseEventHandler(OnMouseEnter);
  • 30. <Canvas xmlns=quot;…quot; xmlns:x=quot;…quot; Height=quot;100quot; Width=quot;100quot; Background=quot;Redquot; x:Name=“canvas” /> </Canvas> Private Sub something _ (ByVal o As Object, ByVal e As MouseEventArgs) _ Handles canvas.MouseEnter rectangle.Fill = New SolidColorBrush(Colors.Green) End Sub
  • 31. <Canvas xmlns=quot;…quot; xmlns:x=quot;…quot; Height=quot;100quot; Width=quot;100quot; Background=quot;Redquot; MouseEnter=quot;OnMouseEnterquot; /> </Canvas> void OnMouseEnter(object sender, MouseEventArgs e) { … }
  • 32. Name your xaml element so you can use it in code <Rectangle x:Name=“rect”/> void OnMouseEnter(object sender, MouseEventArgs e) { rect.Height = 75; }
  • 33. Custom Element = custom class (Markup = object model) Use XML namespaces <prefix:CustomClass/> XML namespace declaration tells where to find class xmlns:prefix= quot;clr-namespace:SomeNamespace; assembly=SomeAssembly.dllquot;
  • 34.
  • 35. Derive from Control Eg, public class MyControl : Control Define the look of the control in xaml Call InitializeFromXaml(xaml) Remember the return value
  • 36. Have a public parameterless constructor Eg, public MyControl() Create public properties Create public events
  • 37.
  • 38. In terms of graphics/UI/XAML: v1.1 = v1.0 + managed code (CLR) + XAML extensibility + Control class (user control) + sample controls
  • 39. 1.1 alpha 1.1 thinking WPF Button Sample Yes Yes TextBox (edit) No Yes Yes Scrollbar Sample Yes Yes Slider Sample Yes Yes ListBox Sample Yes Yes CheckBox No Yes Yes RadioButton No Yes Yes ComboBox No Yes Yes
  • 40. 1.1 alpha 1.1 thinking WPF TreeView No No Yes 3rd party Accordion No No 3rd party DataGrid No No UserControl Yes Yes Yes
  • 41. 1.1 alpha 1.1 thinking WPF Canvas Yes Yes Yes Grid (table) No Yes Yes StackPanel No Yes Yes Viewbox No Yes Yes
  • 42. 1.1 alpha 1.1 thinking WPF Mouse events Partial Yes Yes Keyboard Partial Yes Yes events <.Resources> Partial Yes Yes Data binding No Yes Yes styling No Yes Yes
  • 43. 1.1 alpha 1.1 thinking WPF 3D No No Yes Hardware No No Yes acceleration Out of browser No No Yes Off-line No No Yes Cross-platform Yes Yes No
  • 44.
  • 45. HTTP Networking + XML Web Services LINQ HTML Integration Rounding it out Resources
  • 46.
  • 47. 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(quot;http://localhost/playerdata.xmlquot;); BrowserHttpWebRequest request = new BrowserHttpWebRequest(dataLocation); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Process the response StreamReader responseReader = new StreamReader(response.GetResponseStream()); string RawResponse = responseReader.ReadToEnd();
  • 48. 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 & read it’s value xr.ReadToFollowing(quot;Playerquot;); string playerNodeText = xr.Value; string playerNameAttribute = xr.GetAttribute(quot;Namequot;);
  • 49.
  • 50.
  • 51. VS based Proxy Generator enables strongly typed access ASP.NET JSON services supported in the Alpha WCF & SOAP support coming The Web Service to Call [WebMethod] public List<Player> GetPlayerList() { ... } Call the Web Service from the client baseballService = new BaseballData(); playerList = baseballService.GetPlayerList().ToList();
  • 52. Sync & Async web services supported in the Alpha General purpose RAD async support coming Start the async web service call baseballService.BeginGetPlayerList( new AsyncCallback(OnPlayerDataLoaded), null); Handle the web service completion event private void OnPlayerDataLoaded(IAsyncResult iar) { playerList = baseballService.EndGetPlayerList(iar).ToList(); }
  • 53.
  • 54. Works with any Web server Only requirement is to serve Silverlight files to the browser Ex. xaml, assemblies, resources ASP.NET is a great platform for Silverlight applications Use ASP.NET & WCF services from Silverlight Integrate Media into an ASPX page Integrate Silverlight content into an ASPX page Leverage ASP.NET AJAX Extensions and ASP.NET Futures (May 2007) Other integration points under way…
  • 55.
  • 56. LINQ = Language INtegrated Query Allows query expressions to benefit from compile-time syntax checkking, static typing & Intellisense Works on any IEnumerable<T> based info source Return all players with 20+ home runs, sorted var filteredPlayers = from p in players where p.HomeRuns > 20 orderby p.HomeRuns descending select p;
  • 57. Supports querying on in memory datasources Other LINQ technologies forthcoming: XLINQ = LINQ for XML Query, parse, create XML DLINQ = LINQ for relational data Query, edit, create relational data
  • 58.
  • 59.
  • 60. HTML access availble in new namespace using System.Windows.Browser; Static HtmlPage class provides entry point HtmlPage.Navigate(quot;http://www.microsoft.comquot;); String server = HtmlPage.DocumentUri.Host; Hookup events, call methods, or access properties HtmlElement myButton = HtmlPage.Document.GetElementByID(quot;myButtonIDquot;); myButton.AttachEvent(quot;onclickquot;, new EventHandler(this.myButtonClicked)); private void myButtonClicked(object sender, EventArgs e) { ... }
  • 61. Mark a property, method or event as Scriptable: [Scriptable] public void Search(string Name) { … } Register a scriptable object: WebApplication.Current.RegisterScriptableObject(quot;BaseballDataquot;, this); Access the managed object from script: var control = document.getElementById(quot;Xaml1quot;); control.Content.BaseballData.Search(input.value);
  • 62. Other interesting HTML integration scenarios: Persisent links Fwd/Back Integration Notes: Simple type marshalling only in the Alpha Complex type support on the way
  • 63.
  • 64.
  • 65. Enables debugging of Silverlight code on the MAC Requires a proxy client installed on the MAC Proxy & setup instructions can be found at: C:Program FilesMicrosoft Visual Studio 9.0SilverlightMacIntel Proxy must be running prior to browser activation
  • 66.
  • 67. Dynamic Languages Javascript, Python, Ruby Application Services Isolated Storage Safe File Open ASP.NET Integration Find out more about these technologies in upcoming sessions…
  • 68. Talk Time Tues – 11:45 Just Glue It! Dynamic Languages in Silverlight Tues – 11:45 Developing ASP.NET AJAX Controls with Silverlight Deep Dive on Silverlight Media Integration Tues - 2:15 Wens – 9:45 Extending the Browser Programming Model with Silverlight Wens – 11:30 Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlight
  • 69. Give us feedback Features you like? Features you don’t? What do you want to build? What existing code & skills will you leverage?
  • 70.
  • 71. Font, size, and color for text have been formatted for you in the Slide Master Use the color palette shown below See next slide for additional guidelines Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill
  • 73.
  • 76.
  • 77.
  • 78. © 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.
  • 80. Silverlight Factored CLR Execution engine .NET Framework Full type system (generics, WPF HTML Bridge collections, etc..) App Model & Services Framework Libraries Factored Framework libraries DLR XML NET (Ruby, Pyt hon) Leightweight subset of .NET for LINQ BCL V1.1 web applications Execution Engine Extensible Platform Presentation and Media Runtime V1 Updater denables a model for agile Controls evolutoin of the platform Inputs (Key, Mouse, Ink) Browser Sandboxed assemblies can be Hosting Media (VC1, WMA, MP3) deployed with the application UI Core (Text, Vector, Animation) Friction-free Installer & Updater