0
What’s New In Silverlight 5<br />Jeff Brand<br />Developer and Platform Team<br />Microsoft<br />jbrand@microsoft.com | sl...
Highlights<br /><ul><li>IE 10
HTML 5
Improved Graphics Acceleration
Speed Improvements
Mango
16 more languages
Nokia
Cut &Paste; Multi Tasking; Dev Tool Improvements
IE speed improvements (22 fps vs. 11 fps for Android and 2 fps for iPhone)
Silverlight 5
Beta Delivered
Rich Media
Hardware Video Decode
XNA for 3D Rendering
NUI & Windows Touch
Surface SDK 2 for Surface and Windows Touch Enables Devices
Tons of other topics!</li></li></ul><li>MiX content online<br />http://www.microsoft.com/events/mix/default.aspx<br />http...
What’s New in Silverlight 5<br />
Agenda<br />MVVM Databinding Enhancements<br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Anc...
Focused on your top asks:<br />User Voice:<br />
DataBinding Enhancements<br />Enabling MVVM, but also just more productive<br />
Layers Of Our Applications<br />Presentation logic<br />UI (XAML)<br />UI (XAML)<br />Orders<br />UI (XAML)<br />People<br...
MVVM<br />Test Framework<br />Visual Studio Team Test<br />Laptop/Desktop<br />Appointments<br />Tablet/Slate<br />Appoint...
Benefits of MVVM<br />
MVVM Enhancements<br />Silverlight 5 <br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Ancesto...
MVVM Enhancements<br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Ancestor Bindings<br />Cust...
Binding Style Setters<br />How do I change styles without shipping new XAML?<br />Can I set the styles in the database?<br...
Binding Style Setters How It Works<br />Create a Class to expose your values<br />Instance the Class in your Resources<br ...
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSourceAncestor Bindings<br />Data...
Implicit Data Templates<br /><Application.Resources><br /><ResourceDictionary><br /><DataTemplatex:Key="vehiclesDataTempla...
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Dat...
Relative Source Ancestor BindingHow do I bind to data up the visual tree?<br />namespaceSLInsurance.ViewModels{<br />publi...
Relative Source Ancestor Binding<br />Used For Control Hierarchy Binding As Well<br /><DataTemplate x:Key="StateComboBoxDa...
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Dat...
DataBinding Debugging<br />demo<br />
DataBinding Debugging<br />XAML Breakpoints<br />Break when objects are bound, such as Grid Cycling<br />((System.Windows....
AfterValue
AfterStringFormat
AfterTypeConversion
…</li></li></ul><li>MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancest...
Custom Markup Extensions<br />demo<br />
Custom Markup Extensions<br />How do I get my event handler code out of my Code Behind<br /><ListBoxx:Name="appointmentsLi...
Custom Markup ExtensionHow It Works<br />publicclassMethodInvokeExtension: IMarkupExtension<object> {<br />	// Properties ...
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Dat...
DataContextChanged Event<br />It just works<br />Increase Memory Efficiency “handle references”<br />this.DataContextChang...
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Dat...
UpdateSourceTriggerHow can I get key stroke changes?<br /><TextBoxName="vinTextBox"<br />Text="{BindingSelectedClaim.Insur...
UpdateSourceTrigger<br />Moving code from the UI to the testable ViewModel<br /><TextBoxName="vinTextBox"<br />Text="{Bind...
UpdateSourceTrigger<br />demo<br />
MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Dat...
WCF RIA Services for Silverlight 5<br />Complex Types (SP1)<br />Custom Client<br />Code Gen(SP1)<br />EF Code First<br />...
But Wait, There’s More<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br ...
Text Enhancements<br />Cum sociisnatoquepenatibus et magnis dis parturient montes, nasceturridiculus mus. Pellentesque hab...
Text Clarity<br />Sharpens text by snapping with pixels<br />Great for low res devices<br />
Bitmap<br />Vector<br />Vector Printing<br />
Upcoming SlideShare
Loading in...5
×

Silverlight 5 whats new overview

891

Published on

Overview of what's new in Silverlight 5

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
891
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Separation patternSeparates Design/Presentation from Business LogicData binding (XAML)Unit testingSeparation of concernsDesigner and developer symbiosisConsistent patternMaintainable Scalable
  • Add:StringFormatFallBackValueTargetNullValueShow PipelineAdd ConverterShow the converterBreakpoint in the converterLastCompletedStageCan’t step into the different binding stagesCould I set the breakpoint conditional stage to the binding stage?
  • Get w/Mark Harper on various use cases - Try demoing another scenarioHelpers.InvokeExtension
  • Early head start with SP1
  • Chinese
  • Transcript of "Silverlight 5 whats new overview"

    1. 1. What’s New In Silverlight 5<br />Jeff Brand<br />Developer and Platform Team<br />Microsoft<br />jbrand@microsoft.com | slickthought.net | @jabrand<br />
    2. 2.
    3. 3.
    4. 4.
    5. 5.
    6. 6.
    7. 7.
    8. 8. Highlights<br /><ul><li>IE 10
    9. 9. HTML 5
    10. 10. Improved Graphics Acceleration
    11. 11. Speed Improvements
    12. 12. Mango
    13. 13. 16 more languages
    14. 14. Nokia
    15. 15. Cut &Paste; Multi Tasking; Dev Tool Improvements
    16. 16. IE speed improvements (22 fps vs. 11 fps for Android and 2 fps for iPhone)
    17. 17. Silverlight 5
    18. 18. Beta Delivered
    19. 19. Rich Media
    20. 20. Hardware Video Decode
    21. 21. XNA for 3D Rendering
    22. 22. NUI & Windows Touch
    23. 23. Surface SDK 2 for Surface and Windows Touch Enables Devices
    24. 24. Tons of other topics!</li></li></ul><li>MiX content online<br />http://www.microsoft.com/events/mix/default.aspx<br />http://ie.microsoft.com/testdrive/<br />http://www.silverlight.net/getstarted/silverlight-5-beta/<br />http://www.microsoft.com/web/<br />http://orchard.codeplex.com/<br />
    25. 25. What’s New in Silverlight 5<br />
    26. 26. Agenda<br />MVVM Databinding Enhancements<br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Ancestor Bindings<br />Custom Markup Extensions<br />Databinding Debugging<br />DataContextChanged Event<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />
    27. 27. Focused on your top asks:<br />User Voice:<br />
    28. 28. DataBinding Enhancements<br />Enabling MVVM, but also just more productive<br />
    29. 29. Layers Of Our Applications<br />Presentation logic<br />UI (XAML)<br />UI (XAML)<br />Orders<br />UI (XAML)<br />People<br />Appointments<br />Code Behind (XAML.cs/vb)<br />Code Behind (XAML.cs/vb)<br />Code Behind (XAML.cs/vb)<br />Not reusable<br />How to test?<br />How to reuse?<br />How can the designer update the UI<br />How to provide different views<br />Laptop/Desktop<br />Tablet/Slate w/Touch<br />Phone<br />Models<br />Services<br />JSON<br />RIA<br />EF<br />POCO<br />XML<br />REST<br />Web Services<br />Web Services<br />WCF<br />Vehicles<br />Tax<br />Person<br />Vehicle<br />Calendar<br />People<br />Schedules<br />Shipping<br />Orders<br />Data<br />SQL Server<br />Oracle<br />Telco Switches<br />Media Streams<br />
    30. 30. MVVM<br />Test Framework<br />Visual Studio Team Test<br />Laptop/Desktop<br />Appointments<br />Tablet/Slate<br />Appointments<br />Phone<br />Appointments<br />Code Behind (XAML.cs/vb)<br />Code Behind (XAML.cs/vb)<br />Code Behind (XAML.cs/vb)<br />Aggregation of data & services for your presentation logic<br />Class Libraries<br />ViewModel(VM.cs/vb<br />Test API w/VSTT<br />Leverage logic across UIs<br />Designer parties on XAML<br />Skin across varied form factors<br />Laptop/Desktop<br />Tablet/Slate w/Touch<br />Phone<br />Models<br />Services<br />JSON<br />RIA<br />EF<br />POCO<br />XML<br />REST<br />Web Services<br />Web Services<br />WCF<br />Vehicles<br />Tax<br />Person<br />Vehicle<br />Calendar<br />People<br />Schedules<br />Shipping<br />Orders<br />Data<br />SQL Server<br />Oracle<br />Telco Switches<br />Media Streams<br />
    31. 31. Benefits of MVVM<br />
    32. 32. MVVM Enhancements<br />Silverlight 5 <br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Ancestor Bindings<br />Custom Markup Extensions<br />Databinding Debugging<br />DataContextChanged Event<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />Reduce the need for UI code<br />How to reduce code?<br />Enhance DataBinding<br />
    33. 33. MVVM Enhancements<br />Binding In Style Setters<br />ImplicitDataTemplates<br />RelativeSource Ancestor Bindings<br />Custom Markup Extensions<br />Databinding Debugging<br />DataContextChanged Event<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    34. 34. Binding Style Setters<br />How do I change styles without shipping new XAML?<br />Can I set the styles in the database?<br />demo <br />
    35. 35. Binding Style Setters How It Works<br />Create a Class to expose your values<br />Instance the Class in your Resources<br />Bind the value to the instanced resource<br />namespaceMyProject.Styles {<br /> publicclassMyAppStyles: INotifyPropertyChanged{<br />publicBrushForegroundColor{<br />get{ return _foregroundColor; }<br />set { _foregroundColor = value;<br />NotifyPropertyChanged("ForegroundColor");<br /><ResourceDictionary<br />xmlns:stylesNS="clr-namespace:MyProject.Styles"><br /><stylesNS:MyAppStyles x:Key=“MyAppStyles"/><br /><StyleTargetType="TextBlock"><br /><Setter Property="Foreground"<br />Value="{BindingForegroundColor}, Source={StaticResourceMyAppStyles}”<br />
    36. 36. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSourceAncestor Bindings<br />DatabindingDebugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    37. 37. Implicit Data Templates<br /><Application.Resources><br /><ResourceDictionary><br /><DataTemplatex:Key="vehiclesDataTemplate"><br />DataType="models:Vehicle"><br /><Image Source="Vehicle.png"/><br /></DataTemplate><br /> </ResourceDictionary><br /></Application.Resources><br /><Application.Resources><br /> <ResourceDictionary><br /><DataTemplatex:Key="stateDataTemplate"><br />DataType=“models:State"><br /><Grid><br /><StackPanel Orientation="Horizontal"><br /><TextBlock Text="{BindingStateCode}"/><br /><TextBlock Text="{BindingStateName}"/><br /></StackPanel><br /></Grid><br /></DataTemplate><br /> </ResourceDictionary><br /></Application.Resources><br /><Application.Resources><br /><ResourceDictionary><br /><!--Default Vehicle DataTemplate--><br /><DataTemplateDataType="models:Vehicle"><br /><Image Source="Vehicle.png"/><br /></DataTemplate><br /><DataTemplateDataType="models:Car"><br /><Image Source="Car.png"/><br /></DataTemplate><br /><DataTemplateDataType="models:Truck"><br /><Image Source="Truck.png"/><br /></DataTemplate><br /><DataTemplateDataType="models:Motorcycle"><br /><Image Source="Motorcycle.png"/><br /></DataTemplate><br /> </ResourceDictionary><br /></Application.Resources><br /><Application.Resources><br /> <ResourceDictionary><br /><DataTemplate x:Key=“StatesDataTemplate"><br /><Grid><br /><StackPanel Orientation="Horizontal"><br /><TextBlock Text="{BindingStateCode}"/><br /><TextBlock Text="{BindingStateName}"/><br /></StackPanel><br /></Grid><br /></DataTemplate><br /> </ResourceDictionary><br /></Application.Resources><br />Template Based On Type<br />Heterogeneous Collections<br />With Inheritance Hierarchy <br />demo<br />
    38. 38. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />DatabindingDebugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    39. 39. Relative Source Ancestor BindingHow do I bind to data up the visual tree?<br />namespaceSLInsurance.ViewModels{<br />publicclassAppointmentsViewModel{<br />publicObservableCollection<Appointments> Appointments{ get; set; }<br /> publicObservableCollection<Status> Status{get; set; }<br />namespaceSLInsurance.Views{<br />publicpartialclassAppointmentView: UserControl {<br />...<br />this.DataContext= newViewModels.AppointmentViewModel();<br /><ListBoxItemsSource="{BindingPath=Appointments}"><br /><ListBox.ItemTemplate><DataTemplate><Grid ...<br /> <TextBlockText="{BindingTime}" …<br /> <ComboBoxItemsSource="{BindingDataContext.Status,<br />RelativeSource={RelativeSourceFindAncestor<br />AncestorType=UserControl,<br /> Mode=FindAncestor}}"<br />
    40. 40. Relative Source Ancestor Binding<br />Used For Control Hierarchy Binding As Well<br /><DataTemplate x:Key="StateComboBoxDataTemplate"><br /> <StackPanel Orientation="Horizontal"><br /> <TextBlock Text="{BindingStateCode}"Margin="0,0,5,0"/><br /> <TextBlock Text="{BindingStateName}"<br />Visibility="{BindingIsDropDownOpen,<br />RelativeSource={RelativeSourceFindAncestor<br />AncestorType=ComboBox},<br /> Converter={StaticResourceBoolToVisibilityConverter}}"/><br /></StackPanel><br />demo<br />
    41. 41. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    42. 42. DataBinding Debugging<br />demo<br />
    43. 43. DataBinding Debugging<br />XAML Breakpoints<br />Break when objects are bound, such as Grid Cycling<br />((System.Windows.Data.Debugging.BindingDebugState)BindingState).Error != null<br />Locals:Dig into what’s working, what’s not<br />Full Debugging Support<br />Bound Instance & Type<br />Values of the Final Source<br />Pipeline<br /><ul><li>Initial
    44. 44. AfterValue
    45. 45. AfterStringFormat
    46. 46. AfterTypeConversion
    47. 47. …</li></li></ul><li>MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    48. 48. Custom Markup Extensions<br />demo<br />
    49. 49. Custom Markup Extensions<br />How do I get my event handler code out of my Code Behind<br /><ListBoxx:Name="appointmentsListbox"<br />ItemsSource="{Binding Appointments}"<br />SelectionChanged="OnAppointmentsListbox_SelectionChanged"><br />UI (XAML)<br />publicpartialclassAppointments: UserControl{<br />privatevoidOnAppointmentsListbox_SelectionChanged(object sender, SelectionChangedEventArgs e){<br />this.DataService.GetClaimById(GetClaimsCallback, ((AdjusterAppointment) (this.appointmentsListbox.SelectedItem)).Claim_Id); }<br />privatevoidGetClaimsCallback(ObservableCollection<Claim> claims) {<br />this.AppoinmentsListBox.Items.Add(claims[0]);<br />Code Behind (XAML.cs/vb)<br />ViewModel(VM.cs/vb<br />Services<br />Models<br />publicvoidGetClaimById(Action<ObservableCollection<Claim>> callback, stringclaim_Id) {<br />varquery = DataContext.GetClaimByIdQuery(claim_Id);<br /> _getClaimCallback = callback;<br /> _claimLoadOperation = DataContext.Load<Claim>(query);<br /> …<br />Data<br />
    50. 50. Custom Markup ExtensionHow It Works<br />publicclassMethodInvokeExtension: IMarkupExtension<object> {<br /> // Properties Exposed in XAML as Intellisense Love<br />publicStringMethod{ get; set; }<br /> // Invoked by the XAML Parser @ runtime<br /> publicobjectProvideValue(IServiceProviderserviceProvider) {<br /><UserControl x:Class=“AppointmentsView"<br />xmlns:MyUtils="clr-namespace:SLInsurance;assembly=SLInsurance"><br />...<br /><StackPanel x:Name="LayoutRoot"><br /> <ComboBoxName=“appointmentsListBox"<br />SelectionChanged="{MyUtils:MethodInvoke Method=OnAppointmentChanged}"<br />
    51. 51. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChanged Event<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    52. 52. DataContextChanged Event<br />It just works<br />Increase Memory Efficiency “handle references”<br />this.DataContextChanged += View_DataContextChanged;<br />…<br />voidView_DataContextChanged(objectsender, DependencyPropertyChangedEventArgs e) {<br />INotifyPropertyChanged customer;<br /> customer = e.OldValueasINotifyPropertyChanged;<br />if (customer != null)<br />customer.PropertyChanged -= customer_PropertyChanged;<br /> customer = e.NewValueasINotifyPropertyChanged;<br />if (customer != null)<br />customer.PropertyChanged += customer_PropertyChanged;<br />}<br />
    53. 53. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChanged Event<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    54. 54. UpdateSourceTriggerHow can I get key stroke changes?<br /><TextBoxName="vinTextBox"<br />Text="{BindingSelectedClaim.InsuredVIN, Mode=TwoWay}"<br />TextChanged="vinTextBox_TextChanged"<br />UI (XAML)<br />privatevoidvinTextBox_TextChanged(object sender, TextChangedEventArgs e) {<br />Helpers.VinCarInfocarInfo = Helpers.VINParser.Parse(vinTextBox.Text);<br />this.vehicleYearsAutoComplete.Text = carInfo.Year.Value.ToString();<br />this.vehicleMakeAutoComplete.Text = carInfo.Make;<br />this.vehicleModelComboBox.SelectedValue = carInfo.Model;<br />Code Behind (XAML.cs/vb)<br />ViewModel(VM.cs/vb<br />publicvoidLoadVehicleYears() {<br />this.DataService.GetVehicleYears(GetVehicleYearsCallback);<br />}<br />publicvoidLoadVehicleMakes(Nullable<int> year) {<br />if(year.HasValue) {<br />this.DataService.GetVehicleMakes(GetVehicleMakessCallback, year.Value);<br />…<br />publicvoidLoadVehicleModels(Nullable<int> year, string make) {<br />if(year.HasValue) {<br />this.DataService.GetVehicleModels(GetVehicleModelssCallback, year.Value, make);<br />Services<br />Models<br />publicvoidGetVehicleMakes(Action<ObservableCollection<string>> callback, int year) {<br /> _getVehicleMakesCallback = callback;<br />this.SearchServiceClient.GetVehicleMakesCompleted += OnGetVehicleMakesCompleted;<br />this.SearchServiceClient.GetVehicleMakesAsync(year);<br />}<br />Data<br />
    55. 55. UpdateSourceTrigger<br />Moving code from the UI to the testable ViewModel<br /><TextBoxName="vinTextBox"<br />Text="{BindingSelectedClaim.InsuredVIN, Mode=TwoWay}"<br />UpdateSourceTrigger=PropertyChanged}"<br />UI (XAML)<br />Code Behind (XAML.cs/vb)<br />ViewModel(VM.cs/vb<br />voidOnClaimPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {<br />switch(e.PropertyName) {<br />case"InsuredVIN":<br />ParseVIN();<br />break;<br />…<br />private voidParseVIN() {<br />Helpers.VinCarInfocarInfo = Helpers.VINParser.Parse(this.SelectedClaim.InsuredVIN);<br />this.SelectedClaim.InsuredYear= carInfo.Year;<br />this.SelectedClaim.InsuredMake= carInfo.Make;<br />this.SelectedClaim.InsuredModel= carInfo.Model;<br />…<br />Services<br />Models<br />Data<br />
    56. 56. UpdateSourceTrigger<br />demo<br />
    57. 57. MVVM Enhancements<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />
    58. 58. WCF RIA Services for Silverlight 5<br />Complex Types (SP1)<br />Custom Client<br />Code Gen(SP1)<br />EF Code First<br />(coming soon)<br />DateTimeOffset<br />MVVM Support<br />
    59. 59. But Wait, There’s More<br />Binding In Style Setters<br />Implicit DataTemplates<br />RelativeSource Ancestor Bindings<br />Databinding Debugging<br />Custom Markup Extensions<br />DataContextChangedEvent<br />UpdateSourceTrigger<br />WCF RIA Services Enhancements<br />Text, Printing & Media<br />Text<br />Printing<br />Media<br />
    60. 60. Text Enhancements<br />Cum sociisnatoquepenatibus et magnis dis parturient montes, nasceturridiculus mus. Pellentesque habitant morbitristiquesenectus et netus et malesuada fames ac turpisegestas. Vivamusenim dolor, molestie at auctor id, auctorultrices nisi. Curabitururnalorem, luctushendreritdapibusquis, facilisissedorci. Aliquamnuncmassa, placerat id pretiumeget, luctus sit amet diam. Vestibulum ante ipsumprimis in faucibusorciluctus et ultricesposuerecubiliaCurae; Pellentesquefermentumneque at nislbibendumcursus. Aliquamsollicitudineliteununcplacerat et pulvinarmauriscondimentum. Donecsedsapienelit, velcondimentumjusto. Cum sociisnatoquepenatibus et magnis dis parturient montes, nasceturridiculus mus. Ututodionunc. Maecenas vitae quam urna. Nulla a ante imperdietsemtinciduntporta. Donecesttellus, imperdietegetullamcorpereu, laoreetvellorem. Fusceornarenisl<br />Linked Text Containers<br />Flow Rich Text from one container to another<br />Dynamically flows on resize<br />mollis lacus cursus semper suscipiturnaultricies. Phasellus magna justo, commodosodalesauctornec, euismod vitae purus.<br />Vivamusdignissimfeugiattristique. Crasaliquetsapien non justosagittisimperdiet. In a velitmauris, eusodales magna. Fuscelectuslectus, blandit non semper vitae, cursusutpurus. Vestibulumquisaliquamaugue. Morbiid estseddiamimperdietpretium vitae a turpis. Sedvelsapienarcu. Loremipsum dolor sit amet, consecteturadipiscingelit. Suspendisse ac diamut ante imperdietlacinia. Integer sit ametjusto sit amettortor<br />facilisis id sit ametaugue. Etiam in risusveleratmolestieviverra. Suspendissepellentesquebibendumsagittis. Etiamconvallisleo at dui ornareegetelementumodio dictum. Integer tempus ultricieslectus. Maecenas dictum ipsum id nisladipiscingeuiaculistortorsuscipit. Etiamsedsapienneque, in ultricies magna. Aliquam in nisl et lectusbibendumvestibulum. Donecsuscipit, velit vitae convallisaccumsan, tortor magna dignissimpurus, sedconvallisorcitortorsed sem. Crasquisest id turpiscongueporta. Proinpharetramattisnullaquisvestibulum.<br /><RichTextBox<br />OverflowContentTarget="{Binding ElementName=overflow1}"><br /><RichTextBoxOverflow x:Name="overflow1"OverflowContentTarget="{BindingElementName=overflow2}"><br /><RichTextBoxOverflow x:Name="overflow2"OverflowContentTarget="{BindingElementName=overflow3}"><br />...<br />Utin sapien id maurisegestasrhoncus a egeterat. Vivamustempor tempus quam facilisisdapibus. Curabiturvolutpatipsum vitae tortortinciduntsedmalesuadaurnatincidunt. Quisqueporttitor, neque id malesuadafaucibus, quam leoauctornisl, quisaliquetenim ligula utodio. Etiamvelturpis magna. Crasiaculisest sem. Pellentesquemalesuada, liberoeutemportempor, tellusipsumdignissimsapien, id facilisisaugueipsum vitae quam. Crasquisimperdietleo. In orcipurus, placerat ac ultricies in, elementum vitae turpis. Nunclectussapien, sagittis id luctusut, hendreritutmassa. Sedpurussapien, pharetra id faucibusnec, semper id lacus. Phasellus et lectusleo, eget<br />adipiscinglorem. Donecfermentum lacus dolor. Etiamlaoreettristique nisi, sit ametconvallisnunclacinia et. Integer aliquam, magna ac porttitorcongue, estliberoconsectetur lacus, lobortisportaorcirisusnec magna. Integer sapienpurus, volutpat sit ametvehicula vitae, accumsan a felis. Sed a nullavelenimlaoreetconsequat. Nullautnequemassa, at semper enim.<br />risusnec magna. Integer sapienpurus, volutpat sit ametvehicula vitae, accumsan a felis. Sed a nullavelenimlaoreetconsequat. Nullautnequemassa, at semper enim.<br />
    61. 61. Text Clarity<br />Sharpens text by snapping with pixels<br />Great for low res devices<br />
    62. 62. Bitmap<br />Vector<br />Vector Printing<br />
    63. 63. Trick PlayWhere did they joke about…<br />Speed through videos, search for sounds<br />New dimension to search<br />No “Alvin & The Chipmunks”<br />
    64. 64. Unrestricted File Access<br />SL5 trusted apps <br />can access:<br />SL4 trusted apps <br />can access:<br />
    65. 65. Unrestricted File Access<br />demo<br />
    66. 66. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />PivotViewer<br />
    67. 67. Trusted Apps <br />SL4: OOB apps run trusted with user consent<br />SL5: in-browser trusted apps with admin consent<br />Set permissions via group policy<br />No prompts or installs<br />Familiar navigation model<br />Can be part of a larger HTML site<br />
    68. 68. Trusted Apps<br />
    69. 69. Creating a Trusted App<br />Just like SL4 trusted OOB<br /><OutOfBrowserSettings><br /> <OutOfBrowserSettings.SecuritySettings><br /> <SecuritySettingsElevatedPermissions="Required" /><br /> </OutOfBrowserSettings.SecuritySettings><br /></OutOfBrowserSettings><br />
    70. 70. Creating a Trusted App<br />Sign the .xap<br />Same as for a trusted OOB<br />In Visual Studio or on command line<br />signtool.exe sign /v /f nameOfCert.pfx<br /> /p "<password>"<br />nameOfApp.xap<br />or<br />
    71. 71. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />PivotViewer<br />
    72. 72. Permissions in Group Policy<br />Actually, only one permission – trusted or not<br />Network admin specifies which publishers are trusted<br />Publishers identified by Authenticode certificate<br />Put certificate in client machine’s trusted publisher store<br />Same as ClickOnce<br />Xaps are associated with publishers by Authenticode<br />
    73. 73. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />PivotViewer<br />
    74. 74. P/Invoke<br />P/Invoke lets you call native code<br />COM (SL4) also lets you call native code<br />Anything you can do with COM can also be done with P/Invoke<br />Strongly typed<br />No COM registration<br />P/Invoke is optimized for Win32 APIs & native C/C++ code<br />COM is optimized for COM Automation APIs, eg Office<br />COM & P/Invoke are available on Windows to trusted apps<br />
    75. 75. P/Invoke <br />Works exactly like it does in .NET Framework<br />[DllImport("kernel32.dll")]<br />staticexternintGetDriveType(stringlpRootPathName);<br />…<br />int type = GetDriveType(drive);<br />
    76. 76. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />PivotViewer<br />
    77. 77. Configure SL5 WebBrowser In-Browser<br />Configure app to run as out-of-browser trusted app even though it will be in-browser<br />Configure target computers to allows trusted app in browser:<br />Key path for 32-bit computers: HKEY_LOCAL_MACHINESoftwareMicrosoftSilverlight<br />Key path for 64-bit computers: HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftSilverlight<br />Value name: AllowElevatedTrustAppsInBrowser<br />Value type: DWORD<br />Valid Values:<br />Disabled - 0x00000000<br />Enabled - 0x00000001<br />
    78. 78. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />Lots of 3D Stuff<br />
    79. 79. Multiple Windows<br />System.Windows.Window is now an instantiable class<br />Windoww = newWindow();<br />w.Height = 400;<br />w.Width = 600;<br />w.Content = new MyUserControl();<br />w.Visibility = Visibility.Visible; <br />
    80. 80. Multiple Windows<br />demo<br />
    81. 81. Agenda<br />Unrestricted File Access<br />Trusted Apps In-Browser<br />Group Policy<br />P/Invoke<br />HTML support<br />Multiple Windows<br />64-bit<br />PivotViewer<br />
    82. 82. 64-bit Support<br />64-bit machines & apps are becoming increasingly common<br />SL5 can run in a 64-bit process<br />64-bit browsers<br />Sidebar on 64-bit Windows<br />Why 64-bit is interesting:<br />Because you don’t get to choose the browser<br />Because you’re native hosting in a 64-bit process<br />Because you need a lot of address space<br />
    83. 83. 3D Target applications<br />Data visualization*<br />3D charts and reports<br />Scatter points<br />Geographic overlays<br />Science & astronomy<br />Education & training<br />Marketing & advertising<br />Business*<br />Manufacturing<br />Industrial processes<br />Home design<br />Realty & virtual tours<br />Customer support<br />Medical<br />Games & simulation<br />* Enterprise focus for Silverlight 5<br />
    84. 84. 3D Demo<br />demo<br />
    85. 85. Silverlight 5 Summary<br />Adding productivity & robustness with<br />Advanced styling and templating<br />Databinding Enhancements & Debugging<br />Better Text & Printing <br />Improved trusted and native interop<br />Enabling Next Gen Media<br />Silverlight 5 ships second half 2011<br />
    86. 86. Resources<br />Silverlight.net<br />WCF RIA Services Page: http://silverlight.net/riaservices<br />
    87. 87. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.<br />The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×