mail ria & silverlight – defining new experience on the web our ria objectives - eric hoffman...
TRANSCRIPT
![Page 1: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/1.jpg)
Building AOL's High Performance Rich Internet Application in Silverlight 2.0AOL Mail
![Page 2: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/2.jpg)
Eric HoffmanDirector, AOL Mail RIA’s
Marc KatchayLead Engineer, AOL Mail RIA’s
Stefan GalArchitect, AOL Mail RIA
Seth HalvakszAOL Mail Product Mgmt
![Page 3: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/3.jpg)
Outline ...Mail RIA & Silverlight – Defining new experience on the Web
Our RIA objectives - Eric HoffmanA Silverlight development tale – Eric HoffmanA new verse in web User Interface – Marc KatchayThe underlying nuts and bolts – Stefan GalMonetization opportunities – Seth Halvaksz An Invitation
![Page 4: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/4.jpg)
Our RIA primitives
The next chapter for web applicationsRich and performantPersonalization taken to another level Write it once, run it everywhereBeyond the web cacheEnhanced engagementNew monetization opportunities
![Page 5: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/5.jpg)
A Silverlight RIA taleSummer 2007
Beginning with Silverlight 1.0 / 2.0Research and exploration projectWe were hopeful…
High Definition video and audio playback Compact size and the idea of “write it once” The “DNA” for some controls.NET runtime – really appealing to us developersChallenges presented themselves throughout the summer of 07
![Page 6: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/6.jpg)
A Silverlight RIA tale ..December 2007
“grid” & “stack” prototype
![Page 7: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/7.jpg)
A Silverlight tale …December/January 2008
Silverlight 2.0 provided…Basic layout Grid & stack panels Isolated storage – size was a factor stillCould we build an application with just this ..
Pivotal moment was reachedHybrid approach was contemplatedDelay project several monthsIn the end ..our team decided to write some code ..
![Page 8: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/8.jpg)
A Silverlight RIA tale
namespace Client.Controls.Button{ [TemplatePart(Name="Part_MouseUp“,Type=typeof(Storyboard)),…public abstract class ButtonBase : Control
{…
}}
![Page 9: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/9.jpg)
A Silverlight RIA tale Jan 08
What we really needed … more advanced controls..
Buttons, checkboxesTree controlListView,- virtualized ..Listboxes – for settingsHtml control for read and write mailGrid splitters & custom layoutDatabinding – move data from model to our controls
![Page 10: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/10.jpg)
A Silverlight RIA taleLate Jan 2008
Morphed into a Collaboration ..Contribution to the core Silverlight feature setRequest functionality as we needed ..A validation of the usability of the frameworkSome examples
Adding encryption for secure isolated storageImagine background worker threads – in a web application ! Cross domain would be nice …
![Page 11: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/11.jpg)
Road to Silverlight RIA – Dencryption Code using (Stream xstream = new CryptoStream(stream, _alghoritm.CreateDecryptor(), CryptoStreamMode.Read)) {
using (Stream zstream = new GZipStream(xstream, CompressionMode.Decompress))
{ data = LoadObject<T>(zstream); } }
![Page 12: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/12.jpg)
Road to Silverlight RIA – Worker Thread Code public void SaveObject<T>(string path, T data, Action<Exception> cb) where T : class { // Main thread here … ThreadPool.QueueUserWorkItem(delegate(object state) { // Anonymous function – C# // Worker thread here …
Exception exception = null; try{ SaveObject(path, data); } catch (Exception ex){ exception = ex; } }}
![Page 13: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/13.jpg)
Mail RIA
demo
![Page 14: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/14.jpg)
Marc KatchayLead Engineer, RIA Engineering AOL Mail
announcing…
![Page 15: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/15.jpg)
Visual Requirements
Appealing – Look goodRich in assets - VibrantFeel alive!! – non static lookDynamic/ResizableSkinnableFast – seem effortless
![Page 16: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/16.jpg)
Building Top Down
Designers create UI layoutDevelopers build controls and componentsControls paint visuals and bind to business dataUI elements taken from designers layout and rendered in respective controls
![Page 17: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/17.jpg)
Creating UI – Designers FirstArtists/Designers create applicationThink multiple/Differentiating skinsUtilize tools. Create in natural format - xamlBuild application to adopt designer requirements
![Page 18: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/18.jpg)
Application layout - InfrastructureIdentify Key Components
Components are themselves controlsDefine Root Layout of Application
![Page 19: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/19.jpg)
Visual Controls - Infrastructure
First things first!! -- Custom ControlsDataGridCellsListTreeTreeNodesGridSplitterButtons…
![Page 20: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/20.jpg)
Control Templates
Custom visual controls derive from control classControl Class supports Control TemplatesAll components and visual controls use templatesCritical for skinning modelTemplates collected to form a skin
![Page 21: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/21.jpg)
Control Template Markup
<ControlTemplate/>
<Grid x:Name="Part_Root">
<Grid.Resources> <Storyboard x:Name="Part_MouseEnter"> <ColorAnimation Duration="00:00:00.2“ To="#50FFFFFF"
Storyboard.TargetName="Part_HighlightRect”Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" /> </Grid.Resources>
<Rectangle x:Name="Part_HighlightRect" Fill="#00FFFFFF"/> <TextBlock x:Name="Part_Caption” FontSize="12" Text="Button" />
</ControlTemplate>
![Page 22: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/22.jpg)
Loading Control Skin
namespace Client.Controls{ public class ButtonCell : Control {
ResourceHelper.GetControlTemplate(typeof(ButtonCell)); }
public ButtonCell() { base.Template = s_CellTemplate; base.ApplyTemplate();
}}
![Page 23: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/23.jpg)
Challenge - Skin motion
Browser resizesGrid SplittersSome UI elements grow as skin is resizedManage Multiple UI elementsBuilt specialized layout panels to encapsulate and draw multiple elements of a skinCode behind should never have custom code dedicated to a skin
![Page 24: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/24.jpg)
ViewPanel – Layout Control
<ControlTemplate>
<Grid x:Name=“Part_Root”><Controls:ViewPanel> <Path x:Name=“Part_Frame” Data=“….”/> <Rectangle x:Name=“Part_Background” /></Controls:ViewPanel></Grid>
<ControlTemplate>
![Page 25: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/25.jpg)
ViewPanel – Layout Control
public abstract class ViewPanel : Panel { protected override Size MeasureOverride(Size availableSize) {
} protected override Size ArrangeOverride(Size finalSize) {
} }
![Page 26: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/26.jpg)
SkinsSkin is a projectComprised of Templates and Images
![Page 27: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/27.jpg)
Skins
ResourceHelper ClassLoads Skin AssemblyHelper functions to locate and load templates
GetControlTemplate()Helper functions to load resources
Application BackgroundBackground animation
![Page 28: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/28.jpg)
Summary
We have a skin solutionSeparate assembliesChange skinsDynamic living skinsWell defined layer for designers to work with
UI InfrastructureControls – TemplatesComponents – define key sections of app
![Page 29: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/29.jpg)
Stefan GalArchitect, RIA Mail Engineering AOL Mail
announcing…
![Page 30: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/30.jpg)
Overview
The quest for a rich, interactive user experienceCustom controlsSilverlight overlays
![Page 31: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/31.jpg)
Custom Controls - Goals
High performanceExtreme flexibilitySkinnableSmall download
![Page 32: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/32.jpg)
Custom Controls - Patterns
Template based controlsExtensive data bindingTemplate binding whenever possibleShared resources and stylesVirtualized controls for large data sets
![Page 33: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/33.jpg)
Observable Data
public class ItemData: INotifyPropertyChanged
{ public event PropertyChangedEventHandler PropertyChanged;}
![Page 34: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/34.jpg)
Observable Data Source
VirtualizedList _list1;ObservableCollection<ItemData> _dataSource;…_list1.ItemsSource = _dataSource;
![Page 35: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/35.jpg)
Flexible Data & Visuals
public class VirtualizedList : Control{ … public IList ItemsSource { … } public DataTemplate ItemTemplate { … }}
![Page 36: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/36.jpg)
Virtualized Databinding
<c:VirtualizedList x:Name="_list1”> <c:VirtualizedList.ItemTemplate> <DataTemplate> <c:ListItem Foreground="Blue“ Text=“{Binding Caption}”/> </DataTemplate> </c:VirtualizedList.ItemTemplate></c:VirtualizedList>
![Page 37: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/37.jpg)
Custom Item Template
<DataTemplate> <TextBlock
Text="{Binding Caption}" Foreground="Gold“ Padding="2"/></DataTemplate>
![Page 38: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/38.jpg)
Virtualized List
AOL
demo
![Page 39: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/39.jpg)
Layered Silverlight Plugins
HTML
Overlay
![Page 40: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/40.jpg)
Layered Silverlight Plugins
Requirement introduced by the usage of browser based HTML rendering and compositionAlso used for
Context menusModal dialogsRich Tooltips‘Out of banner’ Silverlight adsLegacy ads
![Page 41: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/41.jpg)
Layering Challenges
Creating Silverlight overlay pluginCommunication between pluginsSharing code and resourcesPlugin lifetime management
![Page 42: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/42.jpg)
Creating Overlay Plugin
Hosted by an absolute positioned DIVHost element is child of main host element, sibling of the main pluginSilverlight.js support to create the additional pluginWindowless mode supports transparency and irregularly shaped windows
![Page 43: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/43.jpg)
Creating Overlay Plugin
ScriptObject arg = (ScriptObject)HtmlPage.Window.Eval("new Object;");arg.SetProperty("initParams", “parentId=" + HtmlPage.Plugin.Id;
ScriptObject slso = (ScriptObject)HtmlPage.Window. GetProperty("Silverlight");slso.Invoke("createObjectEx", arg);
![Page 44: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/44.jpg)
Communicating Between Plugins
Each plugin runs in its own application domainJSON payload passed as parameters and returned as result.Input and output passed by value.Scriptable objects used for callbacks and interactionCreation is asynchronous, the child plugin will find and connect to the parent based on initialization parameters
![Page 45: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/45.jpg)
Sharing Code and Resources
Separate .xap archive files are used for main plugin and overlay pluginsDistributing shared code and resources in both archives is possible but not desirable due to increased download size.We chose to have the overlay load the required assemblies dynamically from the main archiveIt is fast because the download will find the main archive cached by the browser
![Page 46: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/46.jpg)
Sharing Code and Resources
Main.xap
Model.dll
Controls.dll
Popup.xap
Popup.dll
![Page 47: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/47.jpg)
Retrieving Main Archive
_webClient = new WebClient();_webClient.OpenReadCompleted += delegate(object sender,… e) { Load(new StreamResourceInfo (e.Result, null)); };
_webClient.OpenReadAsync(new Uri(“shared.xap",
UriKind.Relative));
![Page 48: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/48.jpg)
Loading Assemblies On DemandStreamResourceInfo ri = Application.GetResourceStream(xap, new Uri(“shared.dll“, UriKind.Relative));
AssemblyPart p = new AssemblyPart();Assembly a = p.Load(ri.Stream);
![Page 49: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/49.jpg)
Silverlight Overlay Ad
AOL
demo
![Page 50: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/50.jpg)
Summary
Flexible separation of data, control logic and control visualsLightweight and high performanceExtensive bindingVirtualized controls for large data setsRich, highly interactive visualsSkins downloaded on demand
![Page 51: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/51.jpg)
Seth HalvakszProduct Management, RIA Engineering AOL Mail
announcing…
![Page 52: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/52.jpg)
AOL Mail RIA & Monetization
ObjectivesEngagingHigh-performingStandards-based
Integration between ads and application
SkinsPanels
Rich media optionsHigh impact audio & videoRich animations
![Page 53: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/53.jpg)
AOL Mail RIA & Silverlight
A new experience on the webIndustry-leading performanceUnique skinning capabilitiesHigh impact content delivery
Mail from AOLInnovative productsGet the email identity and experience that expresses who you are and what you like
![Page 54: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/54.jpg)
An Invitation
Sign up today to be notified when the preview is available
http://ria.mail.aol.com
![Page 55: Mail RIA & Silverlight – Defining new experience on the Web Our RIA objectives - Eric Hoffman A Silverlight development tale – Eric Hoffman A new verse](https://reader036.vdocument.in/reader036/viewer/2022062314/56649ef95503460f94c0aeae/html5/thumbnails/55.jpg)