SlideShare une entreprise Scribd logo
1  sur  143
Silverlight Intermediate(Developing RIA Apps with Silverlight) Aniruddha Chakrabarti .NET and Integration CoE
Intro … Get to know each other – All What you want to know – All Course Objective and Summary – Aniruddha Logistics Schedule Take Away
Agenda ,[object Object]
Silverlight – History, Overview and Architecture
Controls, Panel, Layout, Transform, Brush …
Resource, Style, Control Template, Data Template
Data Binding, Data Annotation, Isolated Storage
Full Screen and Out of Browser Support
HTML Bridge: Interaction between managed code & JavaScript
Silverlight-enabled WCF Service
What’s new in Silverlight 4,[object Object]
“Rich Internet Applications (RIAs) are web applications that have many of the characteristics of desktop applications, typically delivered either by way of a site-specific browser, via a browser plug-in, or independently via sandboxes or virtual machines” – WikipediaThe term RIA introduced in white paper in Mar 2002 by Macromedia (now Adobe),though the concept had existed for many years earlier under names such as: Remote Scripting, by Microsoft, circa 1998  X Internet, by Forrester Research in October 2000  Rich (web) clients  Rich web application
RIA Characteristics ,[object Object]
Modular and loosely coupled web app architecture that supports flexibility and user-level customization
High-performing rich and interactive web-based apps.
Collaboration platform to share information among diverse and geographically separate groups.
Platform-independent technology that is supported on cross-platform (support for many OS), cross-browser and cross-device (available on computers, mobile devices).,[object Object]
RIA Landscape – Other tools in Market Flash Multimedia platform used to add animation, video, and interactivity to Web pages. Frequently used for advertisements and games. Manipulates vector and raster graphics to provide animation of text, drawings, and still images. Supports streaming of audio and video. Can capture user input via mouse, keyboard, microphone, camera.  Coded in an Object-oriented language called ActionScript. May be displayed on various computer systems and devices, using Adobe Flash Player, which is available free of charge for common Web browsers, some mobile phones and few devices. Flex SDK for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform.  Can be written using Adobe Flash Builder or by using the freely available Flex compiler from Adobe.
RIA Landscape – Other tools in Market AIR (Adobe Integrated Runtime) Cross-platform runtime environment developed by Adobe Systems for building rich Internet applications using Adobe Flash, Adobe Flex, HTML, or Ajax, that can be deployed as desktop applications. Development Environment HTML/Ajax, either via Adobe's own Dreamweaver CS4 (In addition to Dreamweaver CS3), another HTML editor or a normal text editor in conjunction with the AIR SDK Adobe Flash Builder (formerly Adobe Flex Builder)  Flash CS4
RIA Landscape – Other tools in Market Java Applet / JavaFX Java platform for creating and delivering RIAs that can run across wide variety of connected devices. Enables building apps for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned. Developers use a statically typed, declarative language called JavaFX Script; Java code can be integrated into JavaFX programs. JavaFX is compiled to Java bytecode, so JavaFX applications run on any desktop and browser that runs the Java Runtime Environment (JRE) and on top of mobile phones running Java ME. On desktop, the current release supports Windows XP, Vista and Mac OS X OS. JavaFX 1.2 would support Linux and OpenSolaris On mobile, JavaFX is capable of running on multiple mobile operating systems, including Symbian OS, Windows Mobile, and proprietary real-time operating systems.
What is Silverlight ,[object Object]
Supported by small download that installs in seconds
Subset of WPF and .NET Framework
Provides compelling graphics that users can manipulate directly in browser - drag, turn, zoom. Streams video, audio.
Reads data and updates the display without interrupting user by refreshing the whole page.
Supported on multiple platforms and browsers
Windows - Win 7, Vista, XP, Server 2008, Server 2003, 2000
Mac - OS 10.4.8+ (PowerPC)  & OS 10.4.8+ (Intel-based)
Linux - Supported on Linux by Mono project (Novel)
Browsers - IE 6/7/8, Firefox 1/2/3, Safari 2/3 (Chrome from S4),[object Object]
Was later renamed to Silverlight - Silverlight 1.0 was released in May 2007 at MIX 2007 by Scott G.
Less no of UI Controls, No support for .NET (functionality has to be coded in JavaScript), no XAP package
Silverlight 2.0 was released in October 2008
Silverlight 3.0 was released in late 2009.
Silverlight 4.0 was released on April 2010 (soon after .NET 4, Visual Studio 2010 release),[object Object]
Extensions to JavaScript-  Provides extensions to the universal browser scripting language that provide control over the browser UI, including ability to work with WPF elements.
Cross-browser, cross-platform support -  Runs the same on all popular browsers and on popular platforms.
Integration with existing applications - Integrates seamlessly with existing JavaScript and ASP.NET AJAX code to complement existing functionality.
Access to the .NET Framework programming model – could be created using dynamic languages such as IronPython as well as languages such as C# and VB.
Networking support - Includes support for HTTP over TCP. You can connect to WCF, SOAP, or ASP.NET AJAX services and receive XML, JSON, or RSS data.
LINQ – Includes LINQ – enables to program data access using intuitive native syntax and strongly typed objects in .NET Framework languages. ,[object Object]
Architecture
Silverlight Architecture ,[object Object]
Core presentation framework - Components and services oriented toward the UI and user interaction, including user input, lightweight UI controls for Web apps, media playback, data binding, vector graphics, text, animation, and images.  Also includes XAML for specifying layout.
.NET Framework for Silverlight - A subset of the .NET Framework that contains components and libraries, including data integration, extensible Windows controls, networking, base class libraries, garbage collection, and CLR.
Installer and updater - An installation and update control that simplifies the process of installing the application for first-time users, and subsequently provides low-impact, automatic updates. ,[object Object]
Core Presentation Framework ,[object Object],[object Object]
Silverlight Plug-in
Browser Add on
Silverlight Tools ,[object Object]
Silverlight developer runtime – Unlike Silverlight runtime (installed by end users), has error messages for debugging.
Silverlight SDK and Silverlight Tools
Expression Blend,[object Object]
Application and Programming Model
Application and Programming Model Provides two distinct models for app development: Managed API for Silverlight - uses code running on CLR for Silverlight. Could be used with compiled languages (VB, C#) or dynamic languages such (IronPython, IronRuby) JavaScript API for Silverlight - uses JavaScript code interpreted by the browser. Both can not be used at the same time within a single instance of the Silverlight plug-in.  However, you can implement a splash screen that uses the JavaScript API and then transitions to the managed API when your application has loaded.  Managed API provides significantly more functionality than JavaScript API. Managed API apps have access to lightweight version of .NET Framework.  JavaScript API, however, has access only to the Silverlight presentation core and the browser JavaScript engine.
Managed Programming & Application Model Managed API enables you to bundle managed assemblies and resource files into application package (.xap) files. Silverlight plug-in is responsible for loading an application package and extracting its contents.  Application package must contain an assembly with a class derived from Application. Application class encapsulates interaction between appand the Silverlight plug-in. Also provides application lifetime events & resource management.  Silverlight documentation uses “application model” to refer to application packaging and the common functionality encapsulated by the Application class.
Application Class ,[object Object]
Events
Startup, Exit, UnhandledException
Property
Current: Returns the current application object.
Host: Allows code to interact directly with the Silverlight plug-in that hosts it.
RootVisual: To display the application UI, RootVisual is set at Startup event handler (represents the entry point of application code in the Silverlight plug-in life cycle).,[object Object]
Application Structure Silverlight apps are deployed as .xap package (xaml app package) An application package is a zip file (compressed using the Deflate algorithm) that has a .xap file extension. For Silverlight-based apps using the managed API, build process generates an application package. While embedding Silverlight plug-in in web page, specify app package that the plug-in should download. Plug-in uses a manifest file in application package to identify the application class to instantiate. This class is known as the entry point of your application, and it must derive from the Application class.
Application Structure (Cont’d)
XAP Package A XAP App package contains the following -  One AppManifest.xaml file, which identifies the packaged assemblies and the application entry point.  One application assembly, which includes your application class. Zero or more library assemblies. Zero or more loose resource files, such as images or video files.
Application Manifest <Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  EntryPointAssembly="Silverlight3App" EntryPointType="Silverlight3App.App" RuntimeVersion="3.0.40818.0">   <Deployment.Parts>     <AssemblyPart x:Name="Silverlight3App" Source="Silverlight3App.dll" />   </Deployment.Parts> </Deployment> AppManifest.xaml file is typically generated by build process, and uses XAML markup to declare a Deployment object. EntryPointAssembly and EntryPointType attributes to identify the application entry point.  RuntimeVersion attribute to identify required version of Silverlight.
Build and Deploy
Silverlight Assemblies <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:input="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"  xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" 	x:Class="TestSilverlightApp.MainPage" 	Width="440" Height="480" FontSize="13.333" FontFamily="Arial">
.NET Framework Assemblies ,[object Object]
Silverlight SDK - C:rogram Filesicrosoft SDKsilverlight3.0ibrarieslient,[object Object]
Small BCL: Small part of Base Class Library customized for RIA,[object Object]
Silverlight Controls Hierarchy
Silverlight Controls ,[object Object]
ToggleButton
TextBox
PasswordBox
TextBlock
CheckBox
RadioButton
ListBox
ComboBox
Slider
ProgressBarSystem.Windows
Silverlight Controls (Image, Audio, Video) ,[object Object]
Image
MediaElementSystem.Windows
Silverlight Controls ,[object Object]
DatePicker
TabControl
TreeViewxmlns:controls="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls" <controls:Calendar />
Silverlight Controls ,[object Object],xmlns:data="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Data" <data:DataGrid Height="100" x:Name="dgAssemblies"/>
Silverlight Controls ,[object Object],xmlns:dataInput="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Data.Input" <dataInput:Label Content="This is a label"></dataInput:Label>
Unique Silverlight Controls ,[object Object]
Populate ItemsSource property for the values
ValidationSummary (similar to ASP.NET)xmlns:dataInput="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Data.Input" <input:AutoCompleteBox/>
Not Supported Controls ,[object Object]
ListView
Expander,[object Object]
Layout System Silverlight plug-in defines area that Silverlight-based appis displayed in – Embed plug-in in a host HTML page;  Either position plug-in somewhere inline in HTML page display or have plug-in take up entire HTML page. Two frames of reference when positioning Silverlight objects:  Within the plug-in: Position objects on the Silverlight surface within the plug-in’s bounding box. Most of the layout overviews describe this type of positioning. Within the HTML: The entire plug-in and all the objects positioned within it are subject to where you place the plug-in in HTML.
Layout related properties Margin (of type Thickness) Padding (of type Thickness) HorizontalAlignment Left, Right, Center (Default), Stretch VerticalAlignment Bottom, Top, Center (Degault), Stretch HorizontalContentAlignment Left, Right, Center (Default), Stretch VerticalContentAlignment Bottom, Top, Center (Degault), Stretch Zindix (for Canvas only) Margin Padding Margin Padding <Button Height="120" Width="180" Content="Hello"Margin="50" Padding="40" /> <Button Height="120" Width="180" Content="Hello"Margin="20,40,60,80" Padding="10,30,50,70" />
Alignment Example <StackPanel x:Name="LayoutRoot" Background="LightBlue" Height="100"> <Button Height="40" Width="90" Content="Hello"></Button> </StackPanel> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="100"> <Button Height="40" Width="90" Content="Hello"HorizontalAlignment="Right"VerticalAlignment="Bottom">      </Button> </Grid> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="130"> <Button Height="120" Width="180" 	Content="Hello"></Button> </Grid> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="130"> <Button Height="120" Width="180" Content="Hello"HorizontalContentAlignment="Right"VerticalContentAlignment="Bottom"></Button> </Grid>
Layout with Panels - Canvas ,[object Object]
Positions child elements based on absolute positions.
Uses Canvas.Left, .Top and .Zindex (determines the z-order of the element) attached property for positioning
z-order of an object determines whether the object is in front of or behind another overlapping object.
By default, the z-order of objects within a Panel is determined by the sequence in which they are declared.
This behavior can be changed by setting Canvas.ZIndex attached property on objects within the Panel.,[object Object]
Setting Orientation = Horizontalstacks elements horizontally. This is the default behavior.
Setting Orientation = Vertical stacks elements vertically.Orientation = Vertical Orientation = Horizontal
Layout with Panels - Grid ,[object Object]
Does not support WrapPanel (unlike WPF),[object Object]
Border
Popup,[object Object]
Transform ,[object Object]
RotateTransform
SkewTransform
TranslateTransform
MatrixTransform
GroupTransform,[object Object]
Transform Group Example <StackPanelVerticalAlignment="Top" Margin="10" x:Name="LayoutRoot"> <Button Margin="50">Group Transform <Button.RenderTransform> <TransformGroup> <ScaleTransformScaleX="1.5"ScaleY="1.5" /> <RotateTransform Angle="-5" /> </TransformGroup> </Button.RenderTransform> </Button> </StackPanel>
Brushes ,[object Object]
LinearGradientBrush and RadialGradientBrush
ImageBrush and VideoBrush
WebBrowserBrush (new in SL4),[object Object]
Image Brush Example         <TextBox Height="300" Width="400"FontSize="20" Foreground="White"> <TextBox.Background> <ImageBrushImageSource="Chikmagalur049.JPG"></ImageBrush> </TextBox.Background> </TextBox>  
Video Brush Example  <MediaElement x:Name="videoMediaElement" Source="Wildlife.wmv" Visibility="Collapsed" /> <TextBox Height="300" Width="400"FontSize="20" Foreground="LightYellow"  Text="This is using Video Brush"> <TextBox.Background> <VideoBrushSourceName="videoMediaElement" /> </TextBox.Background> </TextBox>  
Shapes Line Rectangle Eclipse Path
Shapes Example <Line Stroke="Red"StrokeThickness="2" X1="10" Y1="5" X2="270" Y2="5" /> <Polyline Points="100,10 10,10 10,50 100,50 250,30" Stroke="Black"StrokeThickness="5" /> <Rectangle Height="50" Margin="20" Fill="LightBlue" Stroke="Black"StrokeThickness="2"></Rectangle> <Ellipse Height="50" Fill="LightGreen" Stroke="Black"StrokeThickness="5" />   <Polygon Points="30,20 50,100 10,100 30,20" Stroke="Red" Fill="LightCyan"StrokeThickness="5" />
Pixel Shader Effect Blur Effect Drop Shadow Effect <Button Margin="20"FontSize="20">Drop Shadow Effect <Button.Effect> <DropShadowEffect Color="Blue"BlurRadius="10" /> </Button.Effect> </Button> <Button Margin="20"FontSize="20">Blur Effect <Button.Effect> <BlurEffect Radius="4" /> </Button.Effect> </Button>
Silverlight Toolkit ,[object Object]
Numeric UpDown
Rating Control
Expander
Time Picker
Time UpDown,[object Object]
Accordian
ViewBox,[object Object]
Wrap Panel
Dock Panel,[object Object]
Child Window
Resource ,[object Object]
Resources are stored in ResourceDictionary

Contenu connexe

Tendances

Silver Light
Silver LightSilver Light
Silver Lightgourav
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMohammad Elsheimy
 
Silverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSilverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSatyen Pandya
 
It's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLalIt's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLalRaj Lal
 
Silverlight Framework Architecture
Silverlight Framework ArchitectureSilverlight Framework Architecture
Silverlight Framework ArchitectureAshok
 
Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarAbram John Limpin
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria FrameworksRishi Singh
 
Android training in Tambaram
Android training in TambaramAndroid training in Tambaram
Android training in Tambaramkomalpreethi
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsRomin Irani
 
Cross-platform development frameworks
Cross-platform development frameworksCross-platform development frameworks
Cross-platform development frameworksCarlo Bernaschina
 
RICH INTERNET APPLICATIONS - RIA Tools
RICH INTERNET APPLICATIONS - RIA ToolsRICH INTERNET APPLICATIONS - RIA Tools
RICH INTERNET APPLICATIONS - RIA ToolsMeghana Chandrashekar
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its featuressonia merchant
 
Introduction to Adobe Flex
Introduction to Adobe FlexIntroduction to Adobe Flex
Introduction to Adobe FlexAngelin R
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 

Tendances (20)

Silver Light
Silver LightSilver Light
Silver Light
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An Introduction
 
Silverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSilverlight Framework Architecture By Satyen
Silverlight Framework Architecture By Satyen
 
It's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLalIt's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLal
 
Silverlight Framework Architecture
Silverlight Framework ArchitectureSilverlight Framework Architecture
Silverlight Framework Architecture
 
SilverLight Overview
SilverLight OverviewSilverLight Overview
SilverLight Overview
 
Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight Seminar
 
Evaluation Ria Frameworks
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria Frameworks
 
Flex3
Flex3Flex3
Flex3
 
George Jordanov CV
George Jordanov CVGeorge Jordanov CV
George Jordanov CV
 
Android training in Tambaram
Android training in TambaramAndroid training in Tambaram
Android training in Tambaram
 
Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElements
 
Cross-platform development frameworks
Cross-platform development frameworksCross-platform development frameworks
Cross-platform development frameworks
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
RICH INTERNET APPLICATIONS - RIA Tools
RICH INTERNET APPLICATIONS - RIA ToolsRICH INTERNET APPLICATIONS - RIA Tools
RICH INTERNET APPLICATIONS - RIA Tools
 
RIA - Rich Internet Applications
RIA - Rich Internet ApplicationsRIA - Rich Internet Applications
RIA - Rich Internet Applications
 
Hybridapp
HybridappHybridapp
Hybridapp
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
 
Introduction to Adobe Flex
Introduction to Adobe FlexIntroduction to Adobe Flex
Introduction to Adobe Flex
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 

En vedette (14)

Groovy Programming Language
Groovy Programming LanguageGroovy Programming Language
Groovy Programming Language
 
pebble - Building apps on pebble
pebble - Building apps on pebblepebble - Building apps on pebble
pebble - Building apps on pebble
 
WPF Deep Dive
WPF Deep DiveWPF Deep Dive
WPF Deep Dive
 
memcached Distributed Cache
memcached Distributed Cachememcached Distributed Cache
memcached Distributed Cache
 
Overview of CoffeeScript
Overview of CoffeeScriptOverview of CoffeeScript
Overview of CoffeeScript
 
Redis and it's data types
Redis and it's data typesRedis and it's data types
Redis and it's data types
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Wideband Delphi Estimation
Wideband Delphi EstimationWideband Delphi Estimation
Wideband Delphi Estimation
 
CoAP - Web Protocol for IoT
CoAP - Web Protocol for IoTCoAP - Web Protocol for IoT
CoAP - Web Protocol for IoT
 
Lisp
LispLisp
Lisp
 
Design Patterns (Examples in .NET)
Design Patterns (Examples in .NET)Design Patterns (Examples in .NET)
Design Patterns (Examples in .NET)
 
Amazon alexa - building custom skills
Amazon alexa - building custom skillsAmazon alexa - building custom skills
Amazon alexa - building custom skills
 

Similaire à Building RIA Apps with Silverlight

Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by SubodhSubodh Pushpak
 
Rich Internet Applications (RIA)
Rich Internet Applications (RIA)Rich Internet Applications (RIA)
Rich Internet Applications (RIA)guest3214e8
 
Silverlight
SilverlightSilverlight
Silverlightvishakpb
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its featuresDiya Singh
 
Advanced Web Technology Microsoft Silverlight
Advanced Web Technology   Microsoft SilverlightAdvanced Web Technology   Microsoft Silverlight
Advanced Web Technology Microsoft Silverlightanandk10
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlightmsarangam
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35Subodh Pushpak
 
Silverlight versions-features
Silverlight versions-featuresSilverlight versions-features
Silverlight versions-featuressonia merchant
 
History of-silverlight-versions-and-its-features-CRB-Tech
History of-silverlight-versions-and-its-features-CRB-TechHistory of-silverlight-versions-and-its-features-CRB-Tech
History of-silverlight-versions-and-its-features-CRB-TechPooja Gaikwad
 
Difference between ajax and silverlight
Difference between ajax and silverlightDifference between ajax and silverlight
Difference between ajax and silverlightUmar Ali
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: SilverlightRishu Mehra
 
JavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformJavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformPraveen Srivastava
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008rothacr
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupMurat Yener
 
An overview of moonlight applications test automation
An overview of moonlight applications test automationAn overview of moonlight applications test automation
An overview of moonlight applications test automationWipro
 

Similaire à Building RIA Apps with Silverlight (20)

Silverlight
SilverlightSilverlight
Silverlight
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
 
Rich Internet Applications (RIA)
Rich Internet Applications (RIA)Rich Internet Applications (RIA)
Rich Internet Applications (RIA)
 
Silverlight
SilverlightSilverlight
Silverlight
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
 
Advanced Web Technology Microsoft Silverlight
Advanced Web Technology   Microsoft SilverlightAdvanced Web Technology   Microsoft Silverlight
Advanced Web Technology Microsoft Silverlight
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlight
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35
 
Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
Silverlight versions-features
Silverlight versions-featuresSilverlight versions-features
Silverlight versions-features
 
History of-silverlight-versions-and-its-features-CRB-Tech
History of-silverlight-versions-and-its-features-CRB-TechHistory of-silverlight-versions-and-its-features-CRB-Tech
History of-silverlight-versions-and-its-features-CRB-Tech
 
Silverlight
SilverlightSilverlight
Silverlight
 
Difference between ajax and silverlight
Difference between ajax and silverlightDifference between ajax and silverlight
Difference between ajax and silverlight
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: Silverlight
 
JavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development PlatformJavaFX: A Rich Internet Application (RIA) Development Platform
JavaFX: A Rich Internet Application (RIA) Development Platform
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008
 
Silverlight 3.0
Silverlight 3.0Silverlight 3.0
Silverlight 3.0
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 
An overview of moonlight applications test automation
An overview of moonlight applications test automationAn overview of moonlight applications test automation
An overview of moonlight applications test automation
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
 

Plus de Aniruddha Chakrabarti

Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Aniruddha Chakrabarti
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryAniruddha Chakrabarti
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsAniruddha Chakrabarti
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Aniruddha Chakrabarti
 
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Aniruddha Chakrabarti
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsAniruddha Chakrabarti
 
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTAniruddha Chakrabarti
 

Plus de Aniruddha Chakrabarti (14)

Pinecone Vector Database.pdf
Pinecone Vector Database.pdfPinecone Vector Database.pdf
Pinecone Vector Database.pdf
 
Mphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdfMphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdf
 
Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Dart programming language
Dart programming languageDart programming language
Dart programming language
 
Third era of computing
Third era of computingThird era of computing
Third era of computing
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
 
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows Platforms
 
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
 
MS-Misys Opics Plus.PDF
MS-Misys Opics Plus.PDFMS-Misys Opics Plus.PDF
MS-Misys Opics Plus.PDF
 
Misys Opics Plus Solution Brief
Misys Opics Plus Solution BriefMisys Opics Plus Solution Brief
Misys Opics Plus Solution Brief
 

Dernier

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Building RIA Apps with Silverlight

  • 1. Silverlight Intermediate(Developing RIA Apps with Silverlight) Aniruddha Chakrabarti .NET and Integration CoE
  • 2. Intro … Get to know each other – All What you want to know – All Course Objective and Summary – Aniruddha Logistics Schedule Take Away
  • 3.
  • 4. Silverlight – History, Overview and Architecture
  • 5. Controls, Panel, Layout, Transform, Brush …
  • 6. Resource, Style, Control Template, Data Template
  • 7. Data Binding, Data Annotation, Isolated Storage
  • 8. Full Screen and Out of Browser Support
  • 9. HTML Bridge: Interaction between managed code & JavaScript
  • 11.
  • 12. “Rich Internet Applications (RIAs) are web applications that have many of the characteristics of desktop applications, typically delivered either by way of a site-specific browser, via a browser plug-in, or independently via sandboxes or virtual machines” – WikipediaThe term RIA introduced in white paper in Mar 2002 by Macromedia (now Adobe),though the concept had existed for many years earlier under names such as: Remote Scripting, by Microsoft, circa 1998 X Internet, by Forrester Research in October 2000 Rich (web) clients Rich web application
  • 13.
  • 14. Modular and loosely coupled web app architecture that supports flexibility and user-level customization
  • 15. High-performing rich and interactive web-based apps.
  • 16. Collaboration platform to share information among diverse and geographically separate groups.
  • 17.
  • 18. RIA Landscape – Other tools in Market Flash Multimedia platform used to add animation, video, and interactivity to Web pages. Frequently used for advertisements and games. Manipulates vector and raster graphics to provide animation of text, drawings, and still images. Supports streaming of audio and video. Can capture user input via mouse, keyboard, microphone, camera. Coded in an Object-oriented language called ActionScript. May be displayed on various computer systems and devices, using Adobe Flash Player, which is available free of charge for common Web browsers, some mobile phones and few devices. Flex SDK for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform. Can be written using Adobe Flash Builder or by using the freely available Flex compiler from Adobe.
  • 19. RIA Landscape – Other tools in Market AIR (Adobe Integrated Runtime) Cross-platform runtime environment developed by Adobe Systems for building rich Internet applications using Adobe Flash, Adobe Flex, HTML, or Ajax, that can be deployed as desktop applications. Development Environment HTML/Ajax, either via Adobe's own Dreamweaver CS4 (In addition to Dreamweaver CS3), another HTML editor or a normal text editor in conjunction with the AIR SDK Adobe Flash Builder (formerly Adobe Flex Builder) Flash CS4
  • 20. RIA Landscape – Other tools in Market Java Applet / JavaFX Java platform for creating and delivering RIAs that can run across wide variety of connected devices. Enables building apps for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned. Developers use a statically typed, declarative language called JavaFX Script; Java code can be integrated into JavaFX programs. JavaFX is compiled to Java bytecode, so JavaFX applications run on any desktop and browser that runs the Java Runtime Environment (JRE) and on top of mobile phones running Java ME. On desktop, the current release supports Windows XP, Vista and Mac OS X OS. JavaFX 1.2 would support Linux and OpenSolaris On mobile, JavaFX is capable of running on multiple mobile operating systems, including Symbian OS, Windows Mobile, and proprietary real-time operating systems.
  • 21.
  • 22. Supported by small download that installs in seconds
  • 23. Subset of WPF and .NET Framework
  • 24. Provides compelling graphics that users can manipulate directly in browser - drag, turn, zoom. Streams video, audio.
  • 25. Reads data and updates the display without interrupting user by refreshing the whole page.
  • 26. Supported on multiple platforms and browsers
  • 27. Windows - Win 7, Vista, XP, Server 2008, Server 2003, 2000
  • 28. Mac - OS 10.4.8+ (PowerPC) & OS 10.4.8+ (Intel-based)
  • 29. Linux - Supported on Linux by Mono project (Novel)
  • 30.
  • 31. Was later renamed to Silverlight - Silverlight 1.0 was released in May 2007 at MIX 2007 by Scott G.
  • 32. Less no of UI Controls, No support for .NET (functionality has to be coded in JavaScript), no XAP package
  • 33. Silverlight 2.0 was released in October 2008
  • 34. Silverlight 3.0 was released in late 2009.
  • 35.
  • 36. Extensions to JavaScript- Provides extensions to the universal browser scripting language that provide control over the browser UI, including ability to work with WPF elements.
  • 37. Cross-browser, cross-platform support - Runs the same on all popular browsers and on popular platforms.
  • 38. Integration with existing applications - Integrates seamlessly with existing JavaScript and ASP.NET AJAX code to complement existing functionality.
  • 39. Access to the .NET Framework programming model – could be created using dynamic languages such as IronPython as well as languages such as C# and VB.
  • 40. Networking support - Includes support for HTTP over TCP. You can connect to WCF, SOAP, or ASP.NET AJAX services and receive XML, JSON, or RSS data.
  • 41.
  • 43.
  • 44. Core presentation framework - Components and services oriented toward the UI and user interaction, including user input, lightweight UI controls for Web apps, media playback, data binding, vector graphics, text, animation, and images. Also includes XAML for specifying layout.
  • 45. .NET Framework for Silverlight - A subset of the .NET Framework that contains components and libraries, including data integration, extensible Windows controls, networking, base class libraries, garbage collection, and CLR.
  • 46.
  • 47.
  • 50.
  • 51. Silverlight developer runtime – Unlike Silverlight runtime (installed by end users), has error messages for debugging.
  • 52. Silverlight SDK and Silverlight Tools
  • 53.
  • 55. Application and Programming Model Provides two distinct models for app development: Managed API for Silverlight - uses code running on CLR for Silverlight. Could be used with compiled languages (VB, C#) or dynamic languages such (IronPython, IronRuby) JavaScript API for Silverlight - uses JavaScript code interpreted by the browser. Both can not be used at the same time within a single instance of the Silverlight plug-in. However, you can implement a splash screen that uses the JavaScript API and then transitions to the managed API when your application has loaded. Managed API provides significantly more functionality than JavaScript API. Managed API apps have access to lightweight version of .NET Framework. JavaScript API, however, has access only to the Silverlight presentation core and the browser JavaScript engine.
  • 56. Managed Programming & Application Model Managed API enables you to bundle managed assemblies and resource files into application package (.xap) files. Silverlight plug-in is responsible for loading an application package and extracting its contents. Application package must contain an assembly with a class derived from Application. Application class encapsulates interaction between appand the Silverlight plug-in. Also provides application lifetime events & resource management. Silverlight documentation uses “application model” to refer to application packaging and the common functionality encapsulated by the Application class.
  • 57.
  • 61. Current: Returns the current application object.
  • 62. Host: Allows code to interact directly with the Silverlight plug-in that hosts it.
  • 63.
  • 64. Application Structure Silverlight apps are deployed as .xap package (xaml app package) An application package is a zip file (compressed using the Deflate algorithm) that has a .xap file extension. For Silverlight-based apps using the managed API, build process generates an application package. While embedding Silverlight plug-in in web page, specify app package that the plug-in should download. Plug-in uses a manifest file in application package to identify the application class to instantiate. This class is known as the entry point of your application, and it must derive from the Application class.
  • 66. XAP Package A XAP App package contains the following - One AppManifest.xaml file, which identifies the packaged assemblies and the application entry point. One application assembly, which includes your application class. Zero or more library assemblies. Zero or more loose resource files, such as images or video files.
  • 67. Application Manifest <Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="Silverlight3App" EntryPointType="Silverlight3App.App" RuntimeVersion="3.0.40818.0"> <Deployment.Parts> <AssemblyPart x:Name="Silverlight3App" Source="Silverlight3App.dll" /> </Deployment.Parts> </Deployment> AppManifest.xaml file is typically generated by build process, and uses XAML markup to declare a Deployment object. EntryPointAssembly and EntryPointType attributes to identify the application entry point. RuntimeVersion attribute to identify required version of Silverlight.
  • 69. Silverlight Assemblies <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:input="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="TestSilverlightApp.MainPage" Width="440" Height="480" FontSize="13.333" FontFamily="Arial">
  • 70.
  • 71.
  • 72.
  • 74.
  • 85.
  • 86. Image
  • 88.
  • 92.
  • 93.
  • 94.
  • 96. ValidationSummary (similar to ASP.NET)xmlns:dataInput="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls.Data.Input" <input:AutoCompleteBox/>
  • 97.
  • 99.
  • 100. Layout System Silverlight plug-in defines area that Silverlight-based appis displayed in – Embed plug-in in a host HTML page; Either position plug-in somewhere inline in HTML page display or have plug-in take up entire HTML page. Two frames of reference when positioning Silverlight objects: Within the plug-in: Position objects on the Silverlight surface within the plug-in’s bounding box. Most of the layout overviews describe this type of positioning. Within the HTML: The entire plug-in and all the objects positioned within it are subject to where you place the plug-in in HTML.
  • 101. Layout related properties Margin (of type Thickness) Padding (of type Thickness) HorizontalAlignment Left, Right, Center (Default), Stretch VerticalAlignment Bottom, Top, Center (Degault), Stretch HorizontalContentAlignment Left, Right, Center (Default), Stretch VerticalContentAlignment Bottom, Top, Center (Degault), Stretch Zindix (for Canvas only) Margin Padding Margin Padding <Button Height="120" Width="180" Content="Hello"Margin="50" Padding="40" /> <Button Height="120" Width="180" Content="Hello"Margin="20,40,60,80" Padding="10,30,50,70" />
  • 102. Alignment Example <StackPanel x:Name="LayoutRoot" Background="LightBlue" Height="100"> <Button Height="40" Width="90" Content="Hello"></Button> </StackPanel> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="100"> <Button Height="40" Width="90" Content="Hello"HorizontalAlignment="Right"VerticalAlignment="Bottom"> </Button> </Grid> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="130"> <Button Height="120" Width="180" Content="Hello"></Button> </Grid> <Grid x:Name="LayoutRoot" Background="LightBlue" Height="130"> <Button Height="120" Width="180" Content="Hello"HorizontalContentAlignment="Right"VerticalContentAlignment="Bottom"></Button> </Grid>
  • 103.
  • 104. Positions child elements based on absolute positions.
  • 105. Uses Canvas.Left, .Top and .Zindex (determines the z-order of the element) attached property for positioning
  • 106. z-order of an object determines whether the object is in front of or behind another overlapping object.
  • 107. By default, the z-order of objects within a Panel is determined by the sequence in which they are declared.
  • 108.
  • 109. Setting Orientation = Horizontalstacks elements horizontally. This is the default behavior.
  • 110. Setting Orientation = Vertical stacks elements vertically.Orientation = Vertical Orientation = Horizontal
  • 111.
  • 112.
  • 113. Border
  • 114.
  • 115.
  • 120.
  • 121. Transform Group Example <StackPanelVerticalAlignment="Top" Margin="10" x:Name="LayoutRoot"> <Button Margin="50">Group Transform <Button.RenderTransform> <TransformGroup> <ScaleTransformScaleX="1.5"ScaleY="1.5" /> <RotateTransform Angle="-5" /> </TransformGroup> </Button.RenderTransform> </Button> </StackPanel>
  • 122.
  • 125.
  • 126. Image Brush Example <TextBox Height="300" Width="400"FontSize="20" Foreground="White"> <TextBox.Background> <ImageBrushImageSource="Chikmagalur049.JPG"></ImageBrush> </TextBox.Background> </TextBox>  
  • 127. Video Brush Example <MediaElement x:Name="videoMediaElement" Source="Wildlife.wmv" Visibility="Collapsed" /> <TextBox Height="300" Width="400"FontSize="20" Foreground="LightYellow" Text="This is using Video Brush"> <TextBox.Background> <VideoBrushSourceName="videoMediaElement" /> </TextBox.Background> </TextBox>  
  • 128. Shapes Line Rectangle Eclipse Path
  • 129. Shapes Example <Line Stroke="Red"StrokeThickness="2" X1="10" Y1="5" X2="270" Y2="5" /> <Polyline Points="100,10 10,10 10,50 100,50 250,30" Stroke="Black"StrokeThickness="5" /> <Rectangle Height="50" Margin="20" Fill="LightBlue" Stroke="Black"StrokeThickness="2"></Rectangle> <Ellipse Height="50" Fill="LightGreen" Stroke="Black"StrokeThickness="5" />   <Polygon Points="30,20 50,100 10,100 30,20" Stroke="Red" Fill="LightCyan"StrokeThickness="5" />
  • 130. Pixel Shader Effect Blur Effect Drop Shadow Effect <Button Margin="20"FontSize="20">Drop Shadow Effect <Button.Effect> <DropShadowEffect Color="Blue"BlurRadius="10" /> </Button.Effect> </Button> <Button Margin="20"FontSize="20">Blur Effect <Button.Effect> <BlurEffect Radius="4" /> </Button.Effect> </Button>
  • 131.
  • 136.
  • 138.
  • 140.
  • 142.
  • 143. Resources are stored in ResourceDictionary
  • 144. Resource property is defined in FrameworkElement, so each class deriving from it can store resources.
  • 145. Could be stored in Page or in App.xaml
  • 146.
  • 149. Creating a Resource in Blend Define the Resource Refer the Resource
  • 150.
  • 151. A Style is nothing but a collection of property setters for a control.
  • 152. Every property of a FrameworkElement (as long as it is a DependencyProperty) can be set through a Style.
  • 153. Supports BasedOn and TargetType similar to WPF.
  • 154. Referenced using StaticResource Markup Extension.
  • 155.
  • 156. Template Template allow separate appearance of control from it’s behavior and logic. Button: appearance is the raised area that you can press, and the behavior is the Click event that gets raised in response to a click. The source code for every control is completely separated from its default visual tree representations. Template allows to completely replace an element’s visual tree, while keeping all of its functionality intact. Default visuals for every Control in WPF are defined in templates (and customized for each Windows theme). There are three types of Templates ControlTemplate DataTemplate ItemsPanelTemplate
  • 161. Items Panel Template Overview
  • 162.
  • 163. System.ComponentModel.DataAnnotations namespace contains classes used as data attributes.
  • 164. By applying these attributes on data class or member, you centralize the data definition and do not have to re-apply the same rules in multiple places.
  • 165. Could be of three types
  • 166. Display Attribute – for UI purpose
  • 168.
  • 169. DataTypeAttribute - Specifies a particular type of data, such as e-mail address or phone number.
  • 170. DisplayAttribute - Specifies localizable strings for data types and members that are used in the user interface.
  • 171. DisplayColumnAttribute - Designates display and sorting properties when a table is used as a parent table in a foreign key relationship.
  • 172. DisplayFormatAttribute - Specifies how data fields are displayed and formatted.
  • 173. FilterUIHintAttribute - Designates the filtering behavior for a column.
  • 174. UIHintAttribute - Designates the control and values to use to display the associated entity member.
  • 175. Are automatically applied when used with DataGrid control.
  • 176.
  • 177. CustomValidationAttribute - Uses a custom method for validation.
  • 178. DataTypeAttribute - Specifies a particular type of data, such as e-mail address or phone number.
  • 179. EnumDataTypeAttribute - Ensures that the value exists in an enumeration.
  • 180. RangeAttribute - Designates minimum and maximum constraints.
  • 181. RegularExpressionAttribute - Uses a regular expression to determine valid values.
  • 182. RequiredAttribute - Specifies that a value must be provided.
  • 183. StringLengthAttribute - Designates max and min number of characters.
  • 184. ValidationAttribute - Serves as base class for validation attributes.
  • 185. All validation attributes derive from the ValidationAttribute class. The logic to determine if a value is valid is implemented in the overridden IsValid method.
  • 186.
  • 187. Data Annotation Example - ValidationAttribute
  • 188.
  • 189. Source object that contains the data that flows between the source and target. Source can be any CLR object.
  • 190. Target UI property that displays and possibly allows user changes to the data - can be any DependencyProperty of a FrameworkElement.
  • 191. Direction of the data flow. The direction is specified by setting the Mode property on the Binding object.
  • 192.
  • 193. Data Form <dataFormToolkit:DataForm x:Name="dfPerson" AutoEdit="False"AutoCommit="False" /> dfPerson.CurrentItem = new Person{FirstName="Aniruddha", LastName="Chakrabarti",Age=35};
  • 194.
  • 197.
  • 198. Web apps can save small amounts of persistent data for their purposes.
  • 199. Cannot be accessed by other apps/users.
  • 200. Automatically created for Silverlight apps as needed.
  • 201. Size - 1MB max for Silverlight app.
  • 202. Exposed via IsolatedStorageFileclass (inSystem.IO.IsolatedStoragens)
  • 203.
  • 204.
  • 205. Scope is determined by full path of app .xap file.
  • 206. You store application settings using isolated storage through IsolatedStorageSettings class (in System.IO.IsolatedStorage namespace)
  • 207. Exposes static property for Application & Site level settings.
  • 208.
  • 209.
  • 210. Using an ASP.NET Silverlight server control.
  • 211. Using the HTML object element.
  • 212. Using the Silverlight.js helper file.<form id="form1" runat="server" style="height:100%;"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <div style="height:100%;"> <asp:Silverlight ID="Silverlight1" runat="server" Source="~/ClientBin/Silverlight3App.xap" MinimumVersion="3.0.40307.0" Width="100%" Height="100%" /> </div> </form>
  • 213.
  • 214. Embedded Mode: plug-in displays within the Web browser
  • 215.
  • 216. If IsFullScreen property to true, the Silverlight plug-in displays in full-screen mode; otherwise, the plug-in displays in embedded mode.Registers Application Events Toggles Content.IsFullScreen Mode when mouse left button down event is fired.
  • 218.
  • 219. Silverlight-based apps can be configured, so that users can install them from their host Web pages and run them outside the browser.
  • 220. Configuration is a simple matter of providing additional information about an application. This information is supplied through the application manifest.
  • 221.
  • 222.
  • 223. Out of Browser settings <OutOfBrowserSettingsShortName="SL4App Application"EnableGPUAcceleration="False"ShowInstallMenuItem="True"> <OutOfBrowserSettings.Blurb>SL4App Application on your desktop; at home, at work or on the go.</OutOfBrowserSettings.Blurb> <OutOfBrowserSettings.WindowSettings> <WindowSettingsTitle="SL4App Application"Height="250"Width="350"Top="100"Left="75"WindowStartupLocation="Manual" /> </OutOfBrowserSettings.WindowSettings> <OutOfBrowserSettings.Icons /> </OutOfBrowserSettings>
  • 224. Install Silverlight Out of Browser App
  • 225. How to whether the app is running Out of Browser if (App.Current.IsRunningOutOfBrowser) { tbMode.Text = "Running Out of Browser"; } Else { tbMode.Text = "Running in Browser"; }
  • 226. How to check the Network status if (NetworkInterface.GetIsNetworkAvailable()) { tbNetwork.Text = "Connected to Network"; } Else { tbNetwork.Text = "Disconnected"; }
  • 227. Save As Dialog (new in SL3) <StackPanelVerticalAlignment="Top" Margin="10" x:Name="LayoutRoot"> <TextBlock>Enter text and Click on Save to save text to local file</TextBlock> <TextBox Height="100" x:Name="textbox" /> <Button Click="Button_Click">Save to local file</Button> </StackPanel> SaveFileDialog dialog = newSaveFileDialog() { Filter = "TextFile (*.txt)|*.txt|WordDoc (*.doc)|*.doc", DefaultExt = "*.txt", FilterIndex = 1 };   bool? result = dialog.ShowDialog(); if (result == true) { Streamstream = dialog.OpenFile(); using (StreamWriterfileWriter = newStreamWriter(stream)) { fileWriter.Write(textbox.Text); fileWriter.Close(); } }
  • 228. Save As Dialog (Cont’d)
  • 229.
  • 230. Attach JavaScript event handlers to Silverlight controls.
  • 231. Expose complete managed types to JavaScript for scripting.
  • 232. Expose individual methods of managed types to JavaScript for scripting.
  • 233. Use managed containers for DOM elements such as window, document, and standard HTML elements.
  • 234. Pass managed types as parameters to JavaScript functions and objects.
  • 235.
  • 236. To access HTML DOM from Silverlight, use following HTML Bridge classes from System.Windows.Browser
  • 237. HtmlPage - represents the Web page. HtmlPage is static and is the main entry point for all DOM access.
  • 238. Exposes properties like Document, Plugin, BrowserInformation and Window
  • 239. HtmlDocument – represents document object.
  • 240. Provides GetElementById, SetProperty, GetProperty, Submit methods and Body, QueryString properties
  • 241. HtmlElement - represents DOM elements.
  • 242.
  • 243. Updating DOM Elements - Example
  • 244.
  • 245. Navigate and NavigateToBookmark methods for page navigation.
  • 246.
  • 247. Currently Silverlight WCF Framework only supports basicHttpBinding, PollingDuplexHttpBinding and CustomBinding.
  • 248.
  • 249. Use clientaccesspolicy.xml file to allow cross-domain access Create a clientaccesspolicy.xml file that allows access to the service. The following configuration allows access from any other domain to all resources on the current domain.
  • 250.
  • 251. Feed - collection of application data that consists of some feed-level metadata (title, author, URL, and other metadata) and a series of feed items.
  • 252. Within the feed, feed items are ordered in reverse chronological order.
  • 254. Standard set of item-level metadata (title, URL, creation date, category etc)
  • 255. Arbitrary amount of application specific data.
  • 256.
  • 257. Syndication specific classes - allows to work with feed, feed items, and related metadata in format-independent way:
  • 258. SyndicationFeed - Represents a top-level feed object, <feed> in Atom 1.0 and <rss> in RSS 2.0.
  • 259. SyndicationItem - Represents a feed item, for example an RSS <item> or an Atom <entry>.
  • 261. Infrastructure classes - build on WCF web programming model to provide syndication support
  • 262. Atom10FeedFormatter & RSS20FeedFormatter - feed formatter classes support serializing object model to and from RSS 2.0 and Atom 1.0.RSS Atom
  • 265.
  • 266. Each operation exposed as syndication feed should return Rss20FeedFormatter object.
  • 267. Use WebHttpBinding instead of basic/wsHttpBinding.
  • 268.
  • 269. Each operation exposed as syndication feed should return Atom10FeedFormatter object (instead of Rss20FeedFormatter object).
  • 270. Use WebHttpBinding instead of basic/wsHttpBinding.
  • 271.
  • 278. Printing namespace - System.Windows.Printing classes – PrintDocument privatevoidbtnPrint_Click(object sender, RoutedEventArgs e) { PrintDocumentprintDoc = newPrintDocument(); printDoc.PrintPage += (s, args) => { args.PageVisual = LayoutRoot; };   printDoc.Print("SL4"); }
  • 281. Clipboard Access Silverlight 4 adds ability to programmatically access clipboard to format and modify data during copy, cut, and paste operations. Copy: Clipboard.SetText(rtb.Selection.Text); Paste: rtb.Selection.Text = Clipboard.GetText(); Cut: Clipboard.SetText(rtb.Selection.Text); rtb.Selection.Text = "";
  • 283. Verified / Unverified Application Security Warning for Unverified App Security Warning for Verified App
  • 284. Silverlight Performance Test on Multiple Platforms and Browsers Set EnableFrameRateCounter to true During Development Use Transparent Background for a Silverlight Plug-in Sparingly When Animating the Opacity or Transform of a UIElement, set its CacheMode Cache Visual Elements when Blending layers using Opacity and Rotating or Stretching Objects Avoid Using Windowless Mode Use Visibility Instead of Opacity Whenever Possible Silverlight Uses Multi-Core in Rendering and Media In Full-Screen Mode, Hide Unused Objects
  • 285. Silverlight Performance (Cont’d) Do Not Use Width and Height with MediaElement Objects Do Not Use Width and Height with Path Objects Break Up CPU-Intensive Work into Smaller Tasks Break Up Large Application Packages Use Double.ToString(CultureInfo.InvariantCulture) Rather Than Double.ToString() Use Stretch="Fill" When Rendering a Lot of Images Perform time-consuming operations on a background thread using BackgroundWorker class.
  • 287. Silverlight Security Model By default, Silverlight apps are hosted in browser and run in an environment that restricts access to user's computer . Operate within partial-trust security boundary - called a sandbox. Silverlight apps run in a different security context than the rest of the HTML page that hosts the Silverlight plug-in. Cannot access file system and other system resources in the same way as traditional .NET applications. These actions can still be performed, but they typically must be initiated by the user. Otherwise Silverlight throws SecurityException exception. Despite the restricted execution environment, there are some security considerations when you build Silverlight applications. Silverlight 4 and later applications can be configured to run in elevated trust, which also has security implications.
  • 288. Silverlight Security Apps operate within a partial-trust security boundary (sandbox). Cannot access the file system and other system resources in the same way as traditional .NET applications. This sandbox environment is enabled by a security model. In the context of security within the application, there are two code types in Silverlight: platform code and application code. Platform code is the API provided by the Silverlight runtime and SDK. Application code is the code that you write by using the platform code. Silverlight runtime can detect code type based on location of code assembly and by checking the public key of assembly. If an assembly is loaded from the Silverlight runtime or SDK installation directory, is signed with a public key from Microsoft, and meets some additional requirements, the assembly can contain platform code. This means that Silverlight application code is never considered to be platform code.
  • 289.
  • 290.