{"id":31609,"date":"2017-05-18T10:05:31","date_gmt":"2017-05-18T17:05:31","guid":{"rendered":"https:\/\/blog.xamarin.com\/?p=31609"},"modified":"2019-04-04T00:05:13","modified_gmt":"2019-04-04T07:05:13","slug":"glimpse-future-xamarin-forms-3-0","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/glimpse-future-xamarin-forms-3-0\/","title":{"rendered":"Glimpse the Future of Xamarin Forms 3.0"},"content":{"rendered":"<p>\t\t\t\tAt Microsoft Build 2017 we shared\u00a0our <a href=\"https:\/\/channel9.msdn.com\/events\/Build\/2017\/B8099\" target=\"_blank\" rel=\"noopener noreferrer\">vision\u00a0for Xamarin.Forms 3.0<\/a>: to enable using Xamarin.Forms in more ways, on more platforms, and faster than ever before. Today, I want to walk you through some of the exciting new features that we&#8217;ll be adding to Xamarin.Forms that we know you&#8217;re going to love!<\/p>\n<h3>Xamarin.Forms Embedding<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/embedding-uwp-desktop.gif\" width=\"375\" class=\"alignright\" \/><\/p>\n<p>You&#8217;ve always been able to call native APIs from Xamarin.Forms, but now we&#8217;re allowing you to use Xamarin.Forms from a mostly native application.<\/p>\n<p>Whether you&#8217;re\u00a0going all-in on Xamarin.Forms, or just want to use it in your native applications where it benefits\u00a0you most, we&#8217;re enabling all paths; we call this\u00a0Xamarin.Forms Embedding. Take any ContentPage in XAML or C# and embed\u00a0it directly into a Xamarin.iOS, Xamarin.Android, or\u00a0UWP application.<\/p>\n<p>All of your existing Xamarin.Forms UI now has extended use outside of Xamarin.Forms applications.\n&nbsp;\nHere&#8217;s how it looks. In your non-Xamarin.Forms\u00a0application it&#8217;s as simple as initializing Forms with the expected parameters for that platform and creating the native counterpart for the\u00a0<code>ContentPage<\/code> using\u00a0a convenient method. Just like that, you have native controls at your\u00a0fingertips!<\/p>\n<pre class=\"lang:c# decode:true \">\/\/ Android\r\nForms.Init(this, null);\r\nvar androidFragment = new MyFormsPage().CreateFragment(this);\r\n\r\n\/\/ iOS\r\nForms.Init()\r\nvar iosViewController = new MyFormsPage().CreateViewController();\r\n\r\n\/\/ UWP\r\nForms.Init(e);\r\nvar uwpElement = new MyFormsPage().CreateFrameworkElement();<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"aligncenter\" style=\"width: 541px\"><img decoding=\"async\" class=\"size-full wp-image-31664\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/2017-05-15_13-57-14.gif\" alt=\"\" width=\"273\" height=\"500\" \/><img decoding=\"async\" class=\"size-full wp-image-31659\" style=\"margin-left: 10px\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/XamarinFormsEmbedding-Android.gif\" alt=\"\" width=\"258\" height=\"500\" \/><\/div>\n<p>Xamarin.Forms features, such as DependencyService, MessagingCenter, and the data binding system, all still work in this scenario.<\/p>\n<h3>Reach More Platforms<\/h3>\n<p>Xamarin.Forms is heading to more platforms! Get ready to run on macOS, Linux, and even more Windows applications using WPF. We&#8217;ve started with <a href=\"https:\/\/blog.xamarin.com\/preview-bringing-macos-to-xamarin-forms\/\" target=\"_blank\" rel=\"noopener noreferrer\">macOS\u00a0in preview today<\/a>, but we aren&#8217;t stopping there&mdash;we&#8217;re enabling you to target every desktop platform! Our team is\u00a0well under way developing for GTK# and WPF.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-31714\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/platform-logos.png\" alt=\"\" width=\"600\" \/><\/p>\n<h3>Speed Boosts and Enhancements<\/h3>\n<p>We&#8217;ve put Xamarin.Forms under the microscope to identify key targets for making your apps load faster and run quicker, specifically:<\/p>\n<ul>\n<li><strong>Control Renderers<\/strong>: we continue our work on what we appropriately call <em>Fast Renderers<\/em>. These refactored renderers avoid creating many intermediate objects and achieve much better performance.<\/li>\n<li><strong>Layout Compression<\/strong>: when enabled, we optimize your layout at compile time to improve rendering speed and minimize memory usage.<\/li>\n<li><strong>Binding System<\/strong>: we&#8217;re introducing one-time binding mode.<\/li>\n<li><strong>Flexibility<\/strong>: the popular Web layout system is coming to Xamarin.Forms. We&#8217;re introducing a FlexLayout system for building adaptive layouts and implementing a Visual State Manager.<\/li>\n<li><strong>Styling<\/strong>: we&#8217;re polishing up a CSS-inspired styling implementation that&#8217;s requested often. You can continue to style your applications as you do today, and if you&#8217;re a fan of CSS styling, it will now be a powerful option for you.<\/li>\n<\/ul>\n<h3>Introducing XAML Standard<\/h3>\n<p>As announced at Microsoft Build 2017, we&#8217;re collaborating with the Windows division on <a href=\"https:\/\/aka.ms\/xamlstandard\" target=\"_blank\" rel=\"noopener noreferrer\">XAML Standard<\/a>, a way to share XAML as an asset. Xamarin.Forms will fully support XAML Standard and take you to every platform you need to be on.<\/p>\n<p>Frameworks that support XAML Standard will be able to share common XAML based UI definitions. Our goal is for the first version, XAML Standard 1.0, to be available later this year.<\/p>\n<h3>Try it Today and Join the Conversation<\/h3>\n<p>Here&#8217;s where you can get started today on all of the great stuff we&#8217;re cooking for Xamarin.Forms 3.0.<\/p>\n<h3>Download Xamarin.Forms 3.0 Preview<\/h3>\n<p>We&#8217;ve posted a preview of Xamarin.Forms Embedding to a new feed and shared our demo code. To get it:<\/p>\n<ul>\n<li>Add a new source to your NuGet Manager: <code>https:\/\/www.myget.org\/F\/xamarinforms-dev\/api\/v3\/index.json<\/code><\/li>\n<li>Check Pre-Release<\/li>\n<li>Select and install\u00a0the package with the feature name &#8220;Embedding&#8221;. <code>3.0.0.100-embeddingpreview<\/code><\/li>\n<li>Download the Weather demo application code on GitHub. <a href=\"https:\/\/github.com\/davidortinau\/build2017-new-in-xamarin-forms\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/davidortinau\/build2017-new-in-xamarin-forms<\/a><\/li>\n<\/ul>\n<p>When you&#8217;re ready, explore the full Xamarin.Forms Roadmap and join the XAML Standard conversation on GitHub.<\/p>\n<ul>\n<li>Visit the <a href=\"https:\/\/aka.ms\/xfroadmap\" target=\"_blank\" rel=\"noopener noreferrer\">Xamarin.Forms Roadmap<\/a> and give us your feedback on these announcements.<\/li>\n<li>Join the XAML Standard conversation at <a href=\"https:\/\/aka.ms\/xamlstandard\" target=\"_blank\" rel=\"noopener noreferrer\">aka.ms\/xamlstandard<\/a>.<\/li>\n<li>Preview Xamarin.Forms for macOS at\u00a0<a href=\"https:\/\/blog.xamarin.com\/preview-bringing-macos-to-xamarin-forms\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog.xamarin.com\/preview-bringing-macos-to-xamarin-forms\/<\/a>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Watch our full Microsoft Build 2017 Xamarin.Forms session at\u00a0<a href=\"https:\/\/channel9.msdn.com\/events\/Build\/2017\/B8099\" target=\"_blank\" rel=\"noopener noreferrer\">channel9.msdn.com\/events\/Build\/2017\/B8099<\/a>.<\/p>\n<p><iframe width=\"640\" height=\"400\" src=\"https:\/\/channel9.msdn.com\/Events\/Build\/2017\/B8099\/player\" allowfullscreen=\"allowfullscreen\" frameborder=\"0\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Microsoft Build 2017 we shared\u00a0our vision\u00a0for Xamarin.Forms 3.0: to enable using Xamarin.Forms in more ways, on more platforms, and faster than ever before. Today, I want to walk you through some of the exciting new features that we&#8217;ll be adding to Xamarin.Forms that we know you&#8217;re going to love! Xamarin.Forms Embedding You&#8217;ve always been [&hellip;]<\/p>\n","protected":false},"author":553,"featured_media":39167,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[4,16],"class_list":["post-31609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","tag-xamarin-platform","tag-xamarin-forms"],"acf":[],"blog_post_summary":"<p>At Microsoft Build 2017 we shared\u00a0our vision\u00a0for Xamarin.Forms 3.0: to enable using Xamarin.Forms in more ways, on more platforms, and faster than ever before. Today, I want to walk you through some of the exciting new features that we&#8217;ll be adding to Xamarin.Forms that we know you&#8217;re going to love! Xamarin.Forms Embedding You&#8217;ve always been [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/31609","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\/553"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=31609"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/31609\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/39167"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=31609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=31609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=31609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}