{"id":48279,"date":"2020-11-12T06:30:07","date_gmt":"2020-11-12T14:30:07","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/xamarin\/?p=48279"},"modified":"2020-11-11T18:09:21","modified_gmt":"2020-11-12T02:09:21","slug":"dotnetconf-2020-xamarin-recap","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/dotnetconf-2020-xamarin-recap\/","title":{"rendered":"Recapping Xamarin Highlights from .NET Conf  2020"},"content":{"rendered":"<p>Tuesday, we kicked off the 10<sup>th<\/sup> <a href=\"https:\/\/dotnetconf.net\">.NET Conf<\/a> with nonstop sessions from .NET team and community members! Xamarin had a huge presence throughout Day 1, and we got a ton of questions about all the things we showed off. Here\u2019s a recap of what you might have seen and how you can get started using it today!<\/p>\n<h2>The new Xamarin experience<\/h2>\n<p>It was a pleasure to be on the virtual stage with Scott Hunter to kick off the keynote talking about all of the great new productivity features for Xamarin developers. I will go into a deep dive of all the features, but if you missed the keynote checkout my demo right <a href=\"https:\/\/youtu.be\/mS6ykjdOVRg?t=3528\">here<\/a>:<\/p>\n<p><iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/mS6ykjdOVRg?start=3528\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>If you missed any of the action over the past 2 days? Watch all the .NET Conf sessions on the <a href=\"https:\/\/www.youtube.com\/dotnet\">dotNET Youtube<\/a>! Now, let&#8217;s get into all the new features.<\/p>\n<h2>XAML Hot Reload \u201c2.0\u201d<\/h2>\n<p>We shipped <a href=\"https:\/\/aka.ms\/xamlhotreload\">XAML Hot Reload<\/a> as a stable feature in November 2019, and we heard two pieces of feedback right off the bat: first, it had to refresh the whole page, and second, it didn\u2019t support Xamarin.Forms UWP apps. We\u2019ve spent the last year rearchitecting XAML Hot Reload to use the same underlying technology that <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/xaml-tools\/xaml-hot-reload?view=vs-2019\">UWP and WPF XAML Hot Reload<\/a> uses, giving you:<\/p>\n<ul>\n<li>Blazing fast reloads <\/li>\n<li>Xamarin.Forms UWP support <\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/UWP-Hot-Reload-for-Xamarin.Forms_.gif\" alt=\"Image UWP Hot Reload for Xamarin Forms\" width=\"625\" height=\"350\" class=\"aligncenter size-full wp-image-48305\" \/><\/p>\n<ul>\n<li>Better state management \u2013 only what changes gets reloaded, not the whole page <\/li>\n<li>A Live Visual Tree to see the elements in your running app <\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/Live-Visual-Tree.png\" alt=\"Image Live Visual Tree\" width=\"406\" height=\"271\" class=\"aligncenter size-full wp-image-48304\" srcset=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/Live-Visual-Tree.png 406w, https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/Live-Visual-Tree-300x200.png 300w\" sizes=\"(max-width: 406px) 100vw, 406px\" \/><\/p>\n<p>We\u2019re putting the finishing touches on this new XAML Hot Reload, but it\u2019s still available to you today with the latest Visual Studio 2019 release (16.8). To turn on XAML Hot Reload \u201c2.0\u201d, go to <strong>Tools > Options > Debugging > Hot Reload<\/strong> and select <strong>Changes only<\/strong> as the Xamarin.Forms Hot Reload mode.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-2.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-2.png\" alt=\"Tools options menu in visual studio to turn on the new Hot Reload changes only option\" width=\"740\" height=\"429\" class=\"aligncenter size-full wp-image-48283\" srcset=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-2.png 740w, https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-2-300x174.png 300w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/><\/a><\/p>\n<h2>iOS Development on PC<\/h2>\n<p>Now that you\u2019re iterating on your Xamarin.Forms UIs quicker with XAML Hot Reload, let\u2019s streamline your workflow so you can debug your app on your iPhone without needing a Mac!<\/p>\n<p>First, you need to enable Xamarin Hot Restart in <strong>Tools > Options > Preview Features > Enable Xamarin Hot Restart<\/strong> and install iTunes from either the Microsoft Store or Apple\u2019s website. Open iTunes and plug in your iOS device, then restart Visual Studio.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-3.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-3.png\" alt=\"Tools options menu in visual studio to turn on the new Hot Restart feature for iOS\" width=\"741\" height=\"432\" class=\"aligncenter size-full wp-image-48284\" srcset=\"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-3.png 741w, https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2020\/11\/graphical-user-interface-text-application-descr-3-300x175.png 300w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/a><\/p>\n<p>When you set your build configuration to target the iPhone CPU, your device will pop up as a deployment target. Once you choose to debug to the device, you\u2019ll be prompted to log in with your Apple Developer Program credentials (currently, only paid accounts are supported, but free account support is on the roadmap). Then, Visual Studio will automatically provision your device for debugging.<\/p>\n<p>Now you can hit F5 and start debugging onto your iOS device. Visual Studio might prompt you to open the app on the iPhone, but if you pair to a Mac and do a remote iOS build, Visual Studio will be able to launch the app on its own afterwards.<\/p>\n<p>If you\u2019re looking for a way to screen mirror your iOS device onto your PC, I highly recommend <a href=\"https:\/\/www.airsquirrels.com\/reflector\">Reflector 3<\/a> which I use for all my demos!<\/p>\n<h2>Xamarin.Forms 5<\/h2>\n<p>Xamarin.Forms 5 is packed with new features and controls to make your UIs beautiful with less code. Learn more about some of what\u2019s coming with this next release from <a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/xamarin-forms-5-preview\/\">David Ortinau\u2019s blog post<\/a>. Also, checkout the <a href=\"https:\/\/youtu.be\/mS6ykjdOVRg?t=15565\">full session<\/a> that David and I did on Day 1 of .NET Conf 2020:<\/p>\n<p><iframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/mS6ykjdOVRg?start=15565\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h2>Check out today&#8217;s talks!<\/h2>\n<p>Day 2 just wrapped up, but there is a <a href=\"https:\/\/www.dotnetconf.net\/agenda\">full slate of content<\/a> today, including a few familiar faces from our Xamarin community:<\/p>\n<p>Cross-platform Applications with Xamarin.Forms\u00a0\u00a0&#8211;\u00a0\u00a0<a href=\"https:\/\/twitter.com\/_Codrina_\" target=\"_blank\" rel=\"noopener noreferrer\">Codrina Merigo<\/a> &#8211; 00:30 (PT)\u00a0|\u00a008:30 (UTC)<\/p>\n<p>3D Printed Bionic Hand &#8211; a Little IoT and a Xamarin Mobile App\u00a0\u00a0&#8211;\u00a0\u00a0<a href=\"https:\/\/twitter.com\/CliffordAgius\" target=\"_blank\" rel=\"noopener noreferrer\">Clifford Agius<\/a> &#8211; 07:00 (PT)\u00a0|\u00a015:00 (UTC)<\/p>\n<p>ML.NET, Azure and Xamarin: Best Friends Forever\u00a0\u00a0&#8211;\u00a0\u00a0<a href=\"https:\/\/twitter.com\/breakpointv16\" target=\"_blank\" rel=\"noopener noreferrer\">Veronika Kolesnikova<\/a> &#8211; 12:30 (PT)\u00a0|\u00a020:30 (UTC)<\/p>\n<p>Validation Rules for Xamarin\u00a0\u00a0&#8211;\u00a0\u00a0<a href=\"https:\/\/twitter.com\/luismatosluna\" target=\"_blank\" rel=\"noopener noreferrer\">Luis Matos<\/a> &#8211; 13:30 (PT)\u00a0|\u00a021:30 (UTC)<\/p>\n<p>Build native and hybrid mobile apps with Mobile Blazor Bindings\u00a0\u00a0&#8211;\u00a0\u00a0<a href=\"https:\/\/twitter.com\/original_ejl\" target=\"_blank\" rel=\"noopener noreferrer\">Eilon Lipton<\/a> &#8211; 15:30 (PT)\u00a0|\u00a023:30 (UTC)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Xamarin had a huge presence throughout .NET Conf, here\u2019s a recap of all of the new features developers can use to build mobile apps including XAML Hot Reload 2.0, iOS Hot Restart, and Xamarin.Forms 5.0.<\/p>\n","protected":false},"author":1965,"featured_media":48305,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5216,383,6602,1,367],"tags":[9186,9168,6604],"class_list":["post-48279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-events","category-visual-studio","category-xamarin","category-xamarin-forms","tag-ios-hot-restart","tag-xamarin-forms-5","tag-xaml-hot-reload"],"acf":[],"blog_post_summary":"<p>Xamarin had a huge presence throughout .NET Conf, here\u2019s a recap of all of the new features developers can use to build mobile apps including XAML Hot Reload 2.0, iOS Hot Restart, and Xamarin.Forms 5.0.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/48279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/1965"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=48279"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/48279\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/48305"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=48279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=48279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=48279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}