{"id":2289,"date":"2020-12-01T19:07:58","date_gmt":"2020-12-01T19:07:58","guid":{"rendered":"https:\/\/serkanseker.com\/?p=2289"},"modified":"2021-02-23T10:05:17","modified_gmt":"2021-02-23T10:05:17","slug":"net-maui-multi-platform-app-ui","status":"publish","type":"post","link":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/","title":{"rendered":"What is .NET MAUI? Evolution of Xamarin.Forms"},"content":{"rendered":"\n<p>Microsoft held its annual Microsoft Build conference for developers using Windows, Xamarin, Microsoft Azure and other Microsoft technologies in May 2020. This conference had important news for mobile application developers. .NET Multiplatform App UI, ie <strong>.NET MAUI<\/strong>, was the main agenda of this conference.<\/p>\n\n\n\n<p>Microsoft plans to bring all .NET platforms together with .NET 5. The MAUI Framework is also a result of this. It will no longer be necessary to develop separate projects on each platform as in Xamarin.Forms. With a single project architecture, it will be possible to develop on all platforms.<\/p>\n\n\n\n<p>In this post, we will examine this issue that concerns mobile application developers in more detail. However, if you want to understand the subject better, let&#8217;s first take a brief look at Xamarin&#8217;s journey.<\/p>\n\n\n\n<div class=\"schema-how-to wp-block-yoast-how-to-block\"><p class=\"schema-how-to-description\"><\/p> <ol class=\"schema-how-to-steps\"><li class=\"schema-how-to-step\" id=\"how-to-step-1614073799744\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#xamarin-journey\">Xamarin&#8217;s Journey<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073807910\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#what-is-net-maui\">What is .NET MAUI?<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073815781\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#net-maui-namespaces\">.NET MAUI Namespaces<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073830589\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#maui-projects-generate\">How will MAUI projects be generated?<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073842835\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#what-will-happen-xamarin-native\">What Will Happens to Xamarin.Native?<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073878278\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#what-will-happen-xamarin-forms\">What Will Happens to Xamarin.Forms?<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073894889\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#mvvm-mvu\">Design Patterns in MAUI (MVVM vs MVU)<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073902379\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#net-maui-roadmap\">.NET MAUI Roadmap<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><li class=\"schema-how-to-step\" id=\"how-to-step-1614073910757\"><strong class=\"schema-how-to-step-name\"><a href=\"https:\/\/serkanseker.com\/net-maui-multi-platform-app-ui\/#conclusion\">Conclusion<\/a><\/strong> <p class=\"schema-how-to-step-text\"><\/p> <\/li><\/ol><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"xamarin-journey\">Xamarin&#8217;s Journey<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><span style=\"color: var(--nv-site-bg);background-color: var(--nv-secondary-accent)\" class=\"ugb-highlight\">2011<\/span>&#8211; Miguel de Icaza and Nat Freidman founded Xamarin. With Xamarin, they offered a solution that can develop cross-platform applications on .NET and C# based Android, iOS and Windows.<\/li><li><span style=\"color: var(--nv-site-bg);background-color: var(--nv-secondary-accent)\" class=\"ugb-highlight\">2013<\/span>&#8211; Xamarin has released 2.0. This version consisted of Xamarin Studio and Visual Studio components.<\/li><li><span style=\"color: var(--nv-site-bg);background-color: var(--nv-secondary-accent)\" class=\"ugb-highlight\">2014<\/span>&#8211; Xamarin released Xamarin.Forms to solve the user interface problem for each platform. It is now possible to develop interfaces and define functions to these interfaces via C# or XAML.<\/li><li><span style=\"color: var(--nv-site-bg);background-color: var(--nv-secondary-accent)\" class=\"ugb-highlight\">2016<\/span>&#8211; Microsoft bought Xamarin.<\/li><\/ul>\n\n\n\n<p>And we came to today&#8217;s Xamarin from those days with constant updates. <\/p>\n\n\n\n<p>Now back to the main topic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-net-maui\">What is .NET MAUI?<\/h2>\n\n\n\n<p>In short, .NET Multiplatform App UI is the evolution of .NET MAUI Xamarin.Forms. Besides all the features in Xamarin.Forms, MAUI will come with many new features.<\/p>\n\n\n\n<p>In conventional Xamarin projects, we were creating separate projects for each platform and continuing on that project. In other words, we were creating separate projects for Android and iOS for Windows and developing separate projects. Naturally, this resulted in a situation that took a lot of time and increased the project size considerably.<\/p>\n\n\n\n<p>With MAUI, it will be possible to develop applications for Android, iOS and Windows over a single project architecture. So 3 different layers come down to 1. We will no longer have to wait long while running a project.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/serkanseker.com\/wp-content\/uploads\/2020\/12\/MAUI-Introducing-dotnet-multiplatform-app-ui.png\" alt=\"MAUI, Introducing dotnet multiplatform app ui\" class=\"wp-image-3170\"\/><figcaption>MAUI, Introducing dotnet multiplatform app ui<\/figcaption><\/figure><\/div>\n\n\n\n<p>In the traditional Xamarin project structure, resources, images and special functions were found in platform-specific files. With MAUI, different platforms will be under Platforms, resources under Resources, pictures under Images.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/serkanseker.com\/wp-content\/uploads\/2020\/12\/MAUI-Multiplatform-app-development.png\" alt=\"MAUI, Multiplatform app development\" class=\"wp-image-3171\"\/><figcaption>MAUI, Multiplatform app development<\/figcaption><\/figure><\/div>\n\n\n\n<p>We will also be able to develop MAUI projects with Visual Studio Code. As you know, it was not possible to develop applications in Xamarin with Visual Studio Code. Therefore, developers had to use Visual Studio. I don&#8217;t need to tell you how slow it is.<\/p>\n\n\n\n<p>In addition, we will now be able to run projects with faster emulators. We will install the emulators we want to test and these devices will appear as listed one after another, regardless of the platform. Those late Google Phone emulators had annoyed the developers. And that&#8217;s why they looked for the solution in other emulators.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"net-maui-namespaces\">.NET MAUI Namespaces<\/h2>\n\n\n\n<p>With the MAUI, .NET namespace names will also be updated and naming according to the new structure will be used. Xamarin.Forms will evolve to System.Maui and Xamarin.Essentials to System.Device.<\/p>\n\n\n\n<p>As you know, Xamarin.Essentials and Xamarin.Forms are already included in the project as NuGet plugin. When it comes to updates to these add-ons, problems sometimes arise in the application running with the old version. Fortunately, with MAUI, Xamarin.Forms and Xamarin.Essentials will appear as part of the project, not as additions to the project.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/serkanseker.com\/wp-content\/uploads\/2020\/12\/System.Maui-System.Devices.png\" alt=\"System.Maui, System.Devices\" class=\"wp-image-3172\"\/><figcaption>System.Maui, System.Devices<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"maui-projects-generate\">How will MAUI projects be generated?<\/h2>\n\n\n\n<p>Visual Studio and Visual Studio Code can be used on macOS and Visual Studio on Windows to create projects that work with MAUI. Also, .NET CLI support will be added to .NET Core CLI and we will be able to start a project with a simple command.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">dotnet new maui<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-will-happen-xamarin-native\">What Will Happens to Xamarin.Native?<\/h2>\n\n\n\n<p>It will be included in both Xamarin.iOS and Xamarin.Andorid .NET 6 platform. And it will be called .NET for iOS and .NET for Android. In addition, CLI support will also come for native platforms and development will become faster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/serkanseker.com\/wp-content\/uploads\/2020\/12\/NET-For-iOS-and-Android.png\" alt=\"NET-For-iOS-and-Android\" class=\"wp-image-3173\"\/><figcaption>NET-For-iOS-and-Android<\/figcaption><\/figure>\n\n\n\n<p>We will be able to start projects on Android and iOS platforms with the following CLI commands. There will be no changes in the platform specific namespaces. So there will be no problems for your native projects.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">dotnet new ios<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">dotnet new android<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-will-happen-xamarin-forms\"><strong>What Will Happens to Xamarin.Forms?<\/strong><\/h2>\n\n\n\n<p>After .NET MAUI is released, support will be given to Forms applications for a while. Bug fixes and support will continue to be provided until 2022. There is already a large community supporting Xamarin. So there will not be any problems during the transition period.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mvvm-mvu\">Design Patterns in MAUI (MVVM vs MVU)<\/h2>\n\n\n\n<p>We will be able to use the<a href=\"https:\/\/serkanseker.com\/mvvm-pattern-xamarin-forms\/\" target=\"_blank\" rel=\"noreferrer noopener\"> MVVM design pattern<\/a> we currently use in Xamarin.Forms projects in MAUI. Currently, many Xamarin.Forms applications use the MVVM architecture. In other words, we will be able to continue developing applications with MVVM or MVU pattern according to our request. Below is a simple example working with the MVVM pattern.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;StackLayout&gt;\n    &lt;Label Text=&quot;Welcome to .NET MAUI!&quot; \/&gt;\n    &lt;Button Text=&quot;{Binding Text}&quot; \n            Command=&quot;{Binding ClickCommand}&quot; \/&gt;\n&lt;\/StackLayout&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">public Command ClickCommand { get; }\npublic string Text  { get; set; } = &quot;Click me&quot;;\nint count = 0;\nvoid ExecuteClickCommand ()\n{\n    count++;\n    Text = $&quot;You clicked {count} times.&quot;;\n}<\/code><\/pre>\n\n\n\n<p>If you are still using the old method in your Xamarin projects, you should now switch to the MVVM architecture.<\/p>\n\n\n\n<p>Fortunately, in addition to this, MAUI will support MVU design patterns. MVU opens as Model- View &#8211; Update. Already, the MVU pattern is very popular in cross-platform applications. As a result, Xamarin will keep up with this trend with .NET MAUI.<\/p>\n\n\n\n<p>No more notifications from Model to ViewModel to update Views in MVU. By applying only the necessary changes necessary, the UI can be updated quickly with a one-way data flow. For example, below is a basic counter example of a .NET MAUI project. This is a good example of using the MVU pattern.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">readonly State&lt;int&gt; count = 0;\n[Body]\nView body() =&gt; new StackLayout\n{\n    new Label(&quot;Welcome to .NET MAUI!&quot;),\n    new Button(\n        () =&gt; $&quot;You clicked {count} times.&quot;,\n        () =&gt; count.Value ++)\n    )\n};<\/code><\/pre>\n\n\n\n<p>Notice that the Views are defined under [Body]. It is possible to dynamically update the view with a few lines of code in the MVU pattern. In the MVVM pattern, we define these commands in the ViewModel layer, which causes the UI to update slowly.<\/p>\n\n\n\n<p>The MVU pattern will also get Blazor support. Thanks to the Blazor framework, you can directly interfere with the view as if you were writing JavaScript inside the XAML structures. In other words, you can update the UI faster by writing C# as if you were writing JavaScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"net-maui-roadmap\">.NET MAUI Roadmap<\/h2>\n\n\n\n<p>We will start using MAUI with .NET 6. Next, Microsoft will release the preview version in late 2020 and the final version in late 2021.<\/p>\n\n\n\n<p>The roadmap specified on the <a href=\"https:\/\/github.com\/dotnet\/maui\/wiki\/Roadmap\" target=\"_blank\" rel=\"noreferrer noopener\">MAUI&#8217;s GitHub page<\/a> is as follows particularly:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(Late 2020) .NET MAUI Preview 1 <\/li><li>(Early 2021) .NET MAUI Preview 2 <\/li><li>(Early 2021) .NET MAUI Preview 3 <\/li><li>(Mid 2021) .NET MAUI Preview 4 <\/li><li>(Mid 2021) .NET MAUI Preview 5 <\/li><li>(September 2021) .NET MAUI Release Candidate <\/li><li>(November 2021) .NET MAUI General Availability <\/li><\/ul>\n\n\n\n<p>Xamarin developments will continue throughout the period until the MAUI is released. After the MAUI is published, Xamarin support will be provided for 1 year. During this time, Xamarin projects are expected to move.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>MAUI is an evolved Xamarin.Forms with more features. So there is nothing less, more.<\/p>\n\n\n\n<p>In summary, what innovations await us?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>No need for separate layers for iOS and Android as before. So three layers go down to one.<\/li><li>MVU pattern and Blazor framework will be supported as well as MVVM pattern.<\/li><li>With .NET CLI, we will be able to start the project with a simple command. No more waiting for the project to stand up for minutes.<\/li><li>Xamarin.Essentials will be in the MAUI project as System.Device, not NuGet plugin.<\/li><li>The Xamarin.Native structure will not change, only the names of the platforms in .NET 6 will change.<\/li><\/ul>\n\n\n\n<p>During these radical changes, developers together will experience new experiences.<\/p>\n\n\n\n<p>Finally, what do you think of these changes. Do you think Xamarin will reach more users as it evolves as MAUI? Or will it be disappointing? Express your thoughts in the comments.<\/p>\n\n\n\n<p><strong>Also, share this blog post on social media and help more people learn.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Links<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/serkanseker.com\/mvvm-pattern-xamarin-forms\/\" target=\"_blank\"><span style=\"color: var(--nv-secondary-accent);\" class=\"ugb-highlight\">MVVM Pattern in Xamarin.Forms Apps<\/span><\/a><\/li><li><a href=\"https:\/\/serkanseker.com\/xamarin-forms-data-binding-context\/\" target=\"_blank\" rel=\"noreferrer noopener\">Xamarin.Forms Data Binding Context<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft held its annual Microsoft Build conference for developers using Windows, Xamarin, Microsoft Azure and other Microsoft technologies in May 2020. This conference had important news for mobile application developers. .NET Multiplatform App UI, ie .NET MAUI, was the main agenda of this conference.<\/p>\n","protected":false},"author":1,"featured_media":207,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[21,37,39],"tags":[535,536,42,4,15,5],"class_list":["post-2289","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-xamarin","category-xamarin-android","category-xamarin-forms","tag-maui","tag-mvu","tag-mvvm","tag-xamarin","tag-xamarin-android","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR\" \/>\n<meta property=\"og:description\" content=\"Microsoft held its annual Microsoft Build conference for developers using Windows, Xamarin, Microsoft Azure and other Microsoft technologies in May 2020. This conference had important news for mobile application developers. .NET Multiplatform App UI, ie .NET MAUI, was the main agenda of this conference.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\" \/>\n<meta property=\"og:site_name\" content=\"Serkan Seker TR\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-01T19:07:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-23T10:05:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1\" \/>\n\t<meta property=\"og:image:height\" content=\"1\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"serkanadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"serkanadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\"},\"author\":{\"name\":\"serkanadmin\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"headline\":\"What is .NET MAUI? Evolution of Xamarin.Forms\",\"datePublished\":\"2020-12-01T19:07:58+00:00\",\"dateModified\":\"2021-02-23T10:05:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\"},\"wordCount\":1377,\"commentCount\":2,\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg\",\"keywords\":[\"MAUI\",\"MVU\",\"MVVM\",\"xamarin\",\"xamarin.android\",\"xamarin.forms\"],\"articleSection\":[\"Xamarin\",\"Xamarin.Android\",\"Xamarin.Forms\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\",\"name\":\"What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg\",\"datePublished\":\"2020-12-01T19:07:58+00:00\",\"dateModified\":\"2021-02-23T10:05:17+00:00\",\"author\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"breadcrumb\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage\",\"url\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg\",\"contentUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/serkanseker.com\/tr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is .NET MAUI? Evolution of Xamarin.Forms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\",\"url\":\"https:\/\/serkanseker.com\/tr\/\",\"name\":\"Serkan Seker TR\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/serkanseker.com\/tr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\",\"name\":\"serkanadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"caption\":\"serkanadmin\"},\"sameAs\":[\"https:\/\/serkanseker.com\"],\"url\":\"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/\"},{\"@type\":\"HowTo\",\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#howto-1\",\"name\":\"What is .NET MAUI? Evolution of Xamarin.Forms\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#article\"},\"description\":\"\",\"step\":[{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073799744\",\"text\":\"Xamarin's Journey\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073807910\",\"text\":\"What is .NET MAUI?\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073815781\",\"text\":\".NET MAUI Namespaces\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073830589\",\"text\":\"How will MAUI projects be generated?\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073842835\",\"text\":\"What Will Happens to Xamarin.Native?\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073878278\",\"text\":\"What Will Happens to Xamarin.Forms?\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073894889\",\"text\":\"Design Patterns in MAUI (MVVM vs MVU)\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073902379\",\"text\":\".NET MAUI Roadmap\"},{\"@type\":\"HowToStep\",\"url\":\"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073910757\",\"text\":\"Conclusion\"}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR","og_description":"Microsoft held its annual Microsoft Build conference for developers using Windows, Xamarin, Microsoft Azure and other Microsoft technologies in May 2020. This conference had important news for mobile application developers. .NET Multiplatform App UI, ie .NET MAUI, was the main agenda of this conference.","og_url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/","og_site_name":"Serkan Seker TR","article_published_time":"2020-12-01T19:07:58+00:00","article_modified_time":"2021-02-23T10:05:17+00:00","og_image":[{"url":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg","width":1,"height":1,"type":"image\/jpeg"}],"author":"serkanadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"serkanadmin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#article","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/"},"author":{"name":"serkanadmin","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"headline":"What is .NET MAUI? Evolution of Xamarin.Forms","datePublished":"2020-12-01T19:07:58+00:00","dateModified":"2021-02-23T10:05:17+00:00","mainEntityOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/"},"wordCount":1377,"commentCount":2,"image":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage"},"thumbnailUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg","keywords":["MAUI","MVU","MVVM","xamarin","xamarin.android","xamarin.forms"],"articleSection":["Xamarin","Xamarin.Android","Xamarin.Forms"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/","name":"What is .NET MAUI? Evolution of Xamarin.Forms - Serkan Seker TR","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage"},"image":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage"},"thumbnailUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg","datePublished":"2020-12-01T19:07:58+00:00","dateModified":"2021-02-23T10:05:17+00:00","author":{"@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"breadcrumb":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#primaryimage","url":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg","contentUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/What-is-.NET-MAU-Xamarin.Forms-Evolution.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/serkanseker.com\/tr\/"},{"@type":"ListItem","position":2,"name":"What is .NET MAUI? Evolution of Xamarin.Forms"}]},{"@type":"WebSite","@id":"https:\/\/serkanseker.com\/tr\/#website","url":"https:\/\/serkanseker.com\/tr\/","name":"Serkan Seker TR","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serkanseker.com\/tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5","name":"serkanadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","caption":"serkanadmin"},"sameAs":["https:\/\/serkanseker.com"],"url":"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/"},{"@type":"HowTo","@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#howto-1","name":"What is .NET MAUI? Evolution of Xamarin.Forms","mainEntityOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#article"},"description":"","step":[{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073799744","text":"Xamarin's Journey"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073807910","text":"What is .NET MAUI?"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073815781","text":".NET MAUI Namespaces"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073830589","text":"How will MAUI projects be generated?"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073842835","text":"What Will Happens to Xamarin.Native?"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073878278","text":"What Will Happens to Xamarin.Forms?"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073894889","text":"Design Patterns in MAUI (MVVM vs MVU)"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073902379","text":".NET MAUI Roadmap"},{"@type":"HowToStep","url":"https:\/\/serkanseker.com\/tr\/net-maui-multi-platform-app-ui\/#how-to-step-1614073910757","text":"Conclusion"}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/2289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/comments?post=2289"}],"version-history":[{"count":0,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/2289\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media\/207"}],"wp:attachment":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media?parent=2289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/categories?post=2289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/tags?post=2289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}