Rapid Mobile App Development with Xamarin.Forms

Slides:



Advertisements
Similar presentations
Mobile Development with Xamarin Mark Allan Ranyart
Advertisements

Cross-platform app development
Microsoft /26/ :19 PM BRK3114 Create cross-platform mobile apps with Xamarin that connect to Office Services (BRK3114) Fabian G. Williams Sr.
Maximizing Reach Through Cross-Platform Mobile Development
Uvod u Xamarin.Forms Almir Vuk App Impact 4/20/2018 3:04 AM
Make your app a native part of Office with Add-ins
Create beautiful, fast, interactive pages in SharePoint
New web experiences in Office 365 that empower your users
Windows Azure Jeffrey Ferman Program Manager 3-006
What can Visual Studio do for Mobile Dev?
Azure on Steroids: Full Automation with PowerShell
Azure File Sync Setup, configuration and management
5/29/2018 1:32 PM Office UI Fabric behind the scenes: Open source Design & Engineering in Office Peter Jahn Senior UX Engineering Manager OneDrive & SharePoint.
Mobile App Trends: lifecycle, functions, and cognitive
6/5/2018 1:30 PM THR1029 Spend less time managing data and more time with customers: Quick tour of Outlook Customer Manager Welly Lee
DevOps for any language
Azure Cloud Shell Magic of Modern Command-line Management
ASP.NET Core 2.0 Fundamentals
Simplify and Organize with Microsoft OneNote
6/17/ :27 AM BRK3341 Unlock extensibility by connecting your service to PowerApps and Microsoft Flow Theresa (Tessa) Palmer–Sr. Program Manager Sunay.
TFS Database Import Service for Visual Studio Team Services
Microsoft Build /23/ :01 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Azure SDKs and Tools for You
Do more with Microsoft Word and Office 365
Get Typed with TypeScript!
Build data-driven solutions using Microsoft Visio
Microsoft Ignite /18/2018 9:49 PM THR2226
Build smarter bots and devices by connecting to the Microsoft Graph
Workflow Orchestration with Adobe I/O
How we got a traditional bank collaborating across boundaries
Find, try and get line-of-business apps on Microsoft AppSource
Automate all things! Microsoft Azure continuous deployment
Microsoft Teams Mobile Collaboration on the go
Modern Front-End Web Development with Visual Studio
Agile Planning with Visual Studio Team Services (VSTS)
Microsoft Connect /19/2018 7:55 PM
9/22/2018 3:49 AM BRK2247 Learn from MVPs: Panel discussion on all things SharePoint and OneDrive © Microsoft Corporation. All rights reserved. MICROSOFT.
Controlling and leveraging the power of the Microsoft Graph
Confidence at speed: Visual Studio 2017 and your CI pipeline
Azure PowerShell Aaron Roney Senior Program Manager Cormac McCarthy
11/15/ :59 AM THR2294 Building great looking experiences with Microsoft Graph and Office UI Fabric Ben Summers Office Marketing David Lavenda Harmon.ie.
Microsoft Build /17/2018 2:10 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Continuous Delivery with Visual Studio Team Services
Azure Advisor: Optimization in the best way
Microsoft Build /24/2018 4:02 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
MIX 09 11/24/2018 9:18 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Mobile Center and VSTS:​ Better together for your Mobile DevOps
Microsoft products for non-profits
Learn how to use and customize the Dynamics AX interactive help system
Introduction to ASP.NET Core 1.0
Five cool things you can do with Windows PowerShell on Office 365
Microsoft To-Do Preview
Microsoft Exchange: Through the eyes of MVPs (Panel discussion)
MDM Migration Analysis Tool (MMAT)
Overview: Dynamics 365 for Project Service Automation
Surviving identity management in a hybrid world
Breaking Down the Value of A Yammer Post: 20 Things to Do
Cool Microsoft Edge Tips and Tricks
When Bad Things Happen to Good Applications
Explore PnP Partner Pack for IT pros, admins and architects
Getting the most out of Azure resources with Azure Advisor
Manage your App Service resources using Command line tools
“Hey Mom, I’ll Fix Your Computer”
Consolidate, manage, backup, and secure your cloud content
Designing Bots that Fit Your Organization
Ask the Experts: Windows 10 deployment and servicing
Digital Transformation: Putting the Jigsaw Together
WCF and .NET Framework Microservices in Containers
Diagnostics and troubleshooting in Azure App Service Support Center
Optimizing your content for search and discovery
Presentation transcript:

Rapid Mobile App Development with Xamarin.Forms BRK3282 Rapid Mobile App Development with Xamarin.Forms David Ortinau Senior Program Manager © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

David Ortinau You’re not James 22 years web, interactive, mobile 6/23/2018 7:30 PM David Ortinau 22 years web, interactive, mobile Advertising, Marketing, Media Healthcare @davidortinau david.ortinau@microsoft.com You’re not James © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

TrainerRoad helps cyclists increase performance with five-star apps 6/23/2018 7:30 PM TrainerRoad helps cyclists increase performance with five-star apps Shares 90% code across Android, iOS, Windows, and Mac Taps into device-specific capabilities (Bluetooth, etc) 100% native performance and UI Visual Studio Tools for Xamarin (Xamarin.Forms), Azure, Xamarin Test Cloud, HockeyApp

6/23/2018 7:30 PM What is Native? © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Native User Interfaces 6/23/2018 Native User Interfaces Native API Access Native Performance © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Architecting Mobile Apps 6/23/2018 7:30 PM Architecting Mobile Apps © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Silo approach iOS Android Windows Objective-C/Swift Xcode Java Android Studio C# Visual Studio No shared code • Many languages and development environments • Multiple teams

Write once, run anywhere 6/23/2018 Write once, run anywhere App generator Lua Javascript Actionscript HTML+CSS Limited native API access • Slow performance • Poor user experience © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Xamarin’s unique approach Build 2015 6/23/2018 7:30 PM Xamarin’s unique approach iOS C# UI Android C# UI Windows C# UI Shared C# logic Shared C# codebase • 100% native API access • High performance © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/23/2018 7:30 PM User Interface © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 Native User Interfaces Xamarin Native approach iOS C# Android C# Windows C# Shared C# Logic 3 Native User Interfaces Shared App Logic

Xamarin.Forms - Cross Platform UI Shared C# Logic Shared UI Code Shared Native User Interface Shared App Logic

Layouts Pages Content MasterDetail Navigation Tabbed Carousel Stack Absolute Relative Grid ContentView ScrollView Frame Layouts

Controls ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell

Native UI Forms elements are realized via platform renderers. ContentPage Label Picker Android Activity / Fragment TextView AlertDialog + LinearLayout + EditText + NumberPicker iOS UIViewController UILabel UITextField + UIPickerView + UIToolbar + UIBarButtonItem UWP Page TextBlock ComboBox developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/renderers/

Bundled Services DependencyService MessagingCenter Navigation Themes

Your Development Environment © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mobile Workload Select the Mobile development workload

Mobile Emulators Remoted Simulator (iOS) and Android Emulators

Demo File > New 6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Progressive Enhancement 6/23/2018 7:30 PM Progressive Enhancement © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Progressive enhancement 6/23/2018 7:30 PM Progressive enhancement From standard experiences to total control Forms Element Platform-Specific Effect Custom Renderer © Microsoft Corporation. All rights reserved.

Styling a Forms Element 6/23/2018 7:30 PM Styling a Forms Element <Style x:Key="EntryStyle" TargetType="{x:Type Entry}"> <Setter Property="TextColor" Value="{StaticResource WhiteColor}" /> <Setter Property="PlaceholderColor" Value="{StaticResource WhiteColor}" /> <Setter Property="FontSize" Value="{StaticResource LargeSize}" /> <Setter Property="FontFamily" Value="{StaticResource KarlaRegular}" /> <Setter Property="HorizontalOptions" Value="FillAndExpand" /> <Setter Property="FontAttributes" Value="None" /> <Setter Property="Opacity" Value="0.85" /> <Setter Property="effects:LineColorEffect.ApplyLineColor" Value="True" /> <Style.Triggers> <Trigger TargetType="Entry" Property="IsFocused" Value="True"> <Setter Property="Opacity" Value="1" /> </Trigger> </Style.Triggers> </Style> © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Styling a Forms Element 6/23/2018 7:30 PM Styling a Forms Element <Entry Text="{Binding Email.Value}" Placeholder="Email"> <Entry.Style> <OnPlatform x:TypeArguments="Style" iOS="{StaticResource EntryStyle}" Android="{StaticResource EntryStyle}" WinPhone="{StaticResource UwpEntryStyle}"/> </Entry.Style> </Entry> © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Platform-Specific <ContentPage ... 6/23/2018 7:30 PM Platform-Specific <ContentPage ... xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific; assembly=Xamarin.Forms.Core”> <BoxView x:Name="boxView" ios:VisualElement.BlurEffect="ExtraLight" HeightRequest="300" WidthRequest="300" /> </ContentPage> © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Effects - XAML <Label Text="Label Shadow Effect"> 6/23/2018 7:30 PM Effects - XAML <Label Text="Label Shadow Effect"> <Label.Effects> <local:ShadowEffect Radius="5" DistanceX="5" DistanceY="5"> <local:ShadowEffect.Color> <OnPlatform x:TypeArguments="Color" iOS="Black" Android="White" WinPhone="Red" /> </local:ShadowEffect.Color> </local:ShadowEffect> </Label.Effects> </Label> © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Effects - RoutingEffect 6/23/2018 7:30 PM Effects - RoutingEffect public class ShadowEffect : RoutingEffect { public float Radius { get; set; } public Color Color { get; set; } public float DistanceX { get; set; } public float DistanceY { get; set; } public ShadowEffect () : base ("MyCompany.LabelShadowEffect") } © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Effects - PlatformEffect 6/23/2018 7:30 PM Effects - PlatformEffect [assembly:ResolutionGroupName ("MyCompany")] [assembly:ExportEffect (typeof(LabelShadowEffect), "LabelShadowEffect")] namespace EffectsDemo.iOS { public class LabelShadowEffect : PlatformEffect protected override void OnAttached () try { var effect = (ShadowEffect)Element.Effects.FirstOrDefault (e => e is ShadowEffect); if (effect != null) { Control.Layer.CornerRadius = effect.Radius; Control.Layer.ShadowColor = effect.Color.ToCGColor (); Control.Layer.ShadowOffset = new CGSize (effect.DistanceX, effect.DistanceY); Control.Layer.ShadowOpacity = 1.0f; } } catch (Exception ex) { Console.WriteLine ("Cannot set property on attached control. Error: ", ex.Message); © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Demo Progressive Enhancement 6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Xamarin.Forms Ecosystem 6/23/2018 7:30 PM Xamarin.Forms Ecosystem © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Native Control Embedding 6/23/2018 7:30 PM Native Control Embedding © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Floating Action Button 6/23/2018 7:30 PM Floating Action Button An Android-only control that has no Xamarin.Forms abstraction. © Microsoft Corporation. All rights reserved.

#if to target only the desired platform 6/23/2018 7:30 PM #if to target only the desired platform #if __ANDROID__ using Xamarin.Forms.Platform.Android; using NativeTest.Droid; //Your Namespace using Android.Views; #endif © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Add the FAB #if __ANDROID__ 6/23/2018 7:30 PM Add the FAB #if __ANDROID__ var fab = new CheckableFab(Forms.Context){ UseCompatPadding = true}; fab.SetImageResource(Droid.Resource.Drawable.ic_fancy_fab_icon); fab.Click += async (sender, e) =>{ await Task.Delay(3000); await MainPage.DisplayAlert("Native FAB Clicked", "Whoa!", "OK"); }; stack.Children.Add(fab); absolute.Children.Add(stack); // Overlay the FAB in the bottom-right ... // set layout and add to UI #endif © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/23/2018 7:30 PM Gestures © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Gestures Xamarin.Forms provides easy-to-use gestures. 6/23/2018 7:30 PM Gestures Xamarin.Forms provides easy-to-use gestures. TapGestureRecognizer PinchGestureRecognizer PanGestureRecognizer © Microsoft Corporation. All rights reserved.

TapGestureRecognizer 6/23/2018 7:30 PM TapGestureRecognizer var tapGestureRecognizer = new TapGestureRecognizer(); GestureRecognizers.Add(tapGestureRecognizer); tapGestureRecognizer.Tapped += AnimateCardClick; private async void AnimateCardClick(object sender, EventArgs e) { var contentView = (ContentView)sender; var item = (Grid)contentView.Content; await item.ScaleTo(0.95, 50, Easing.CubicOut); await item.ScaleTo(1, 50, Easing.CubicIn); } © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

What’s Next for Xamarin.Forms? 6/23/2018 7:30 PM What’s Next for Xamarin.Forms? © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2.4.0 .NET Standard 2.0 Stability and Performance Over 150 fixes 6/23/2018 7:30 PM 2.4.0 .NET Standard 2.0 Stability and Performance Over 150 fixes New Feature Flags API Android Fast Renderers: Button, Image, Label macOS Preview © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

vNext Page Embedding Layout Compression Fast Renderers Right-to-Left 6/23/2018 7:30 PM vNext Page Embedding Layout Compression Fast Renderers Right-to-Left ListView enhancements Gesture enhancements FlexLayout macOS, GTK © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Layout Compression 6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved.

Layout Lifecycle: Invalidation Loop Has Parent? InvalidateMeasure Called Call InvalidateMeasure on Parent Queue Delay Layout Yes No 1 2 3 4 Layout Lifecycle: Invalidation Loop

Layout Lifecycle: Layout Loop Has Parent? InvalidateMeasure Called Call InvalidateMeasure on Parent Queue Delay Layout Yes No 1 2 3 4 Wait for event callback to happen and trigger the layout mechanism 5 Has Children? LayoutChildren Invoked Layout called 6 7 8 Yes No Layout Cycle Completed 9 Layout Lifecycle: Layout Loop

Forms 1 2 1 9 Platform 6/23/2018 7:30 PM Grid StackLayout ContentView Label Button WebView Image ScrollView Forms 6/23/2018 7:30 PM 1 2 Platform Panel LabelRenderer TextBlock ButtonRenderer Button WebViewRenderer WebView Label ImageRenderer Image ScrollViewRenderer 1 9 © Microsoft Corporation. All rights reserved.

1 6 Platform+Compression 1 2 1 9 6/23/2018 7:30 PM Panel LabelRenderer TextBlock ButtonRenderer Button WebViewRenderer WebView Label ImageRenderer Image ScrollViewRenderer 1 6 © Microsoft Corporation. All rights reserved.

6/23/2018 7:30 PM Fast Renderers © Microsoft Corporation. All rights reserved.

Forms Platform Button ButtonRenderer Button 6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved.

Forms 1 2 1 0 Platform+Compression+Fast Renderers 6/23/2018 7:30 PM Grid StackLayout ContentView Label Button WebView Image ScrollView Forms 6/23/2018 7:30 PM 1 2 Platform+Compression+Fast Renderers Panel LabelRenderer ButtonRenderer WebViewRenderer WebView ImageRenderer ScrollViewRenderer 1 0 © Microsoft Corporation. All rights reserved.

6/23/2018 7:30 PM Page Embedding © Microsoft Corporation. All rights reserved.

Page Embedding Shared C# Logic Xamarin.Forms iOS C# Android C# 6/23/2018 7:30 PM Page Embedding Xamarin.Forms iOS C# Android C# Windows C# Shared C# Logic © Microsoft Corporation. All rights reserved.

Demo Page Embedding 6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

.NET Embedding ? Shared C# Logic Xamarin.Forms Android Java iOS Obj-C 6/23/2018 7:30 PM .NET Embedding Xamarin.Forms Android Java iOS Obj-C Swift iOS C# Android C# Windows C# ? Shared C# Logic © Microsoft Corporation. All rights reserved.

XAML Standard Lots of feedback! 6/23/2018 7:30 PM XAML Standard Lots of feedback! Reconciling the APIs we can without breakage Considering sharing implementations of x:Bind Visual State Manager More © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/23/2018 7:30 PM New Platforms © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Free self-guided courses Take free self-guided courses that cover the core Xamarin concepts and count towards certification. Register at: university.xamarin.com/self-guided Get a full subscription for live classes, advanced topics, and to complete certification. Sign up at: xamarin.com/university

Call to action Get started: xamarin.com/download 6/23/2018 7:30 PM Call to action Get started: xamarin.com/download Use Xamarin.Forms 2.4.0 today! Follow the very latest on our Nightly Feed: github.com/xamarin/Xamarin.Forms/wiki/Nightly-Builds © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Please evaluate this session Tech Ready 15 6/23/2018 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite https://myignite.microsoft.com/evaluations Phone: download and use the Microsoft Ignite mobile app https://aka.ms/ignite.mobileapp Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6/23/2018 7:30 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.