{"id":33037,"date":"2021-05-25T08:00:27","date_gmt":"2021-05-25T15:00:27","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=33037"},"modified":"2022-04-27T08:30:24","modified_gmt":"2022-04-27T15:30:24","slug":"announcing-net-maui-preview-4","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-net-maui-preview-4\/","title":{"rendered":"Announcing .NET MAUI Preview 4"},"content":{"rendered":"<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33048\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm-1024x715.png\" alt=\"Image maui weather hero sm\" width=\"640\" height=\"447\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm-1024x715.png 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm-300x210.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm-768x536.png 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/maui-weather-hero-sm.png 1393w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Today we are pleased to announce the availability of .NET Multi-platform App UI (.NET MAUI) Preview 4. Each preview introduces more controls and features to this multi-platform toolkit on our way to general availability this November at <a href=\"https:\/\/www.dotnetconf.net\/\">.NET Conf<\/a>. .NET MAUI now has enough building blocks to build functional applications for all supported platforms, new capabilities to support running Blazor on the desktop, and exciting progress in Visual Studio to support .NET MAUI.<\/p>\n<h2 id=\"weather-21\">Weather &#8217;21<\/h2>\n<p>To showcase our progress in Preview 4 for Microsoft Build, we rapidly designed and developed a simple yet beautiful weather app. As we wait for Visual Studio to integrate .NET MAUI productivity features, we began with Xamarin.Forms. We implemented each UI widget and screen with shared styling in a single codebase. After a few hours, we then ported that work to .NET MAUI by making a few, small changes such as adopting the new <code>Microsoft.Maui<\/code> namespace. The process was painless and quick!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/macOS-maui-1.gif\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33044\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/macOS-maui-1.gif\" alt=\"Image macOS maui\" width=\"640\" height=\"578\" \/><\/a><\/p>\n<p>We also took the opportunity to show have easy it is to light up deep platform integrations by implementing app actions, an icon in the system tray (status bar), and platform-native notifications all from a single project running on Android, iOS, macOS, and Windows.<\/p>\n<pre class=\"prettyprint\">private void SetupAppActions()\r\n{\r\n    try\r\n    {\r\n        AppActions.SetAsync(   \r\n            new AppAction(\"current_info\", \"Check Current Weather\", icon: \"current_info\"),\r\n            new AppAction(\"add_location\", \"Add a Location\", icon: \"add_location\")\r\n        );\r\n    }\r\n    catch (System.Exception ex)\r\n    {\r\n        Debug.WriteLine(\"App Actions not supported\", ex);\r\n    }\r\n}<\/pre>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33028\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations-1024x474.png\" alt=\"Image platform integrations png\" width=\"640\" height=\"296\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations-1024x474.png 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations-300x139.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations-768x356.png 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations-1536x711.png 1536w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/platform-integrations.png 1564w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Check out the <a href=\"https:\/\/github.com\/davidortinau\/WeatherTwentyOne\">WeatherTwentyOne source code here<\/a> on GitHub, and our demos from Build 2021.<\/p>\n<h2 id=\"new-features\">New Features<\/h2>\n<p>Progress continues porting controls and layouts from Xamarin.Forms to the .NET MAUI architecture. In this way, .NET MAUI both is excitingly new and not new at the same time. We have learned much over the past 7 years about how to make cross-platform native UI performant and easy to extend, and we are putting that to work here. For ongoing status of this work visit our <a href=\"https:\/\/github.com\/dotnet\/maui\/wiki\/Status\">GitHub status report<\/a>.<\/p>\n<h3 id=\"blazorwebview\">BlazorWebView<\/h3>\n<p>The new <code>BlazorWebView<\/code> enables you to host a Blazor web application right in your .NET MAUI application and take advantage of seamless native platform features and UI controls. The control can be added to any XAML page and pointed to the root of the Blazor application.<\/p>\n<pre class=\"prettyprint\">&lt;BlazorWebView \r\n    HostPage=\"wwwroot\/index.html\"\r\n    Services=\"{StaticResource Services}\"&gt;\r\n    &lt;BlazorWebView.RootComponent&gt;\r\n        &lt;RootComponent \r\n            Selector=\"#app\"\r\n            ComponentType=\"{x:Type local:Main}\"\r\n        \/&gt;\r\n    &lt;\/BlazorWebView.RootComponent&gt;\r\n&lt;\/BlazorWebView&gt;<\/pre>\n<p>For a deeper look at this powerful integration, read more on our <a href=\"https:\/\/devblogs.microsoft.com\/aspnet\">ASP.NET blog<\/a>.<\/p>\n<h3 id=\"splash-screen\">Splash Screen<\/h3>\n<p>On mobile platforms especially you want your first screen to appear as quickly as possible, and this is done by implementing a static splash screen. .NET MAUI now has a single place to describe your splash screen for all platforms that support them.<\/p>\n<pre class=\"prettyprint\">&lt;MauiSplashScreen Include=\"Resources\\appiconfg.svg\" Color=\"#512BD4\" \/&gt;<\/pre>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33039\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1-1024x1024.png\" alt=\"Image splash screens\" width=\"640\" height=\"640\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1-1024x1024.png 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1-300x300.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1-150x150.png 150w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1-768x769.png 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/splash-screens-1.png 1313w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Any image format may be provided along with a background brush, similar to how we also do app icons. For more advanced scenarios, platform-native splash screen methods all still apply.<\/p>\n<h3 id=\"raw-assets\">Raw Assets<\/h3>\n<p>.NET MAUI now makes it very easy to add other assets to your project and reference them directly while retaining platform-native performance. For example, if you want to display a static HTML file in a <code>WebView<\/code> you can add the file to your project and annotate it as a <code>MauiAsset<\/code> in the properties.<\/p>\n<pre class=\"prettyprint\">&lt;MauiAsset Include=\"Resources\\Raw\\index.html\" \/&gt;<\/pre>\n<blockquote><p>Tip: you can also use wildcards to enable all files in a directory: <code>Include=\"Resources\\Raw\\*\"<\/code><\/p><\/blockquote>\n<p>Then you can use it in your application by filename.<\/p>\n<pre class=\"prettyprint\">&lt;WebView Source=\"index.html\" \/&gt;<\/pre>\n<h2 id=\"visual-studio-productivity\">Visual Studio Productivity<\/h2>\n<p>In <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">Visual Studio 16.11 Preview 1<\/a> we get a first look at the productivity features for .NET MAUI including new run options for a multi-targeted single project, and the all-new .NET Hot Reload for editing your managed code.<\/p>\n<h3 id=\"single-project-run\">Single Project Run<\/h3>\n<p>Single Project introduces a new experience for selecting the target platform and device when running your .NET MAUI applications. These changes simplify the startup process and give you access to all the platforms and devices in a single place.<\/p>\n<p>For Single Project, platform-specific application projects are no longer within the solution, thus you will no longer right-click on a project to set it as the startup project.<\/p>\n<p>In the new target debug selector, you will select the platform you are targeting first. After selecting your target platform, you will be given the list of devices you can run your .NET MAUI application on. All of this will be accessible through the Run Menu when you have a .NET MAUI Single Project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/run-static-profiles.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-33045\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/run-static-profiles.png\" alt=\"Image run static profiles\" width=\"800\" height=\"289\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/run-static-profiles.png 800w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/run-static-profiles-300x108.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/run-static-profiles-768x277.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>The new run menu is the first of a host of changes within Visual Studio to support Single Project applications. We&#8217;ll be announcing new features in the upcoming releases, so keep an eye out for updates!<\/p>\n<h3 id=\"-net-hot-reload\">.NET Hot Reload<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/introducing-net-hot-reload\/\">.NET Hot Reload<\/a> is a new experience that enables you to make live edits to your .NET MAUI app&#8217;s source code while it is running, reducing the number of times you need to rebuild your app.<\/p>\n<p>To start testing this feature install both .NET 6 Preview 4 and <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">Visual Studio 2019 version 16.11 Preview 1<\/a>. Start your app through the Visual Studio debugger (F5) targeting a WinUI 3 host. Once your app is running, you\u2019ll now have the new option to make code changes and apply them using our new \u201capply code changes\u201d button as illustrated below.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/dotnetmaui_hotreload_winui_preview.gif\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33043\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/dotnetmaui_hotreload_winui_preview.gif\" alt=\"Image dotnetmaui hotreload winui preview\" width=\"640\" height=\"290\" \/><\/a><\/p>\n<p>In coming releases .NET Hot Reload will also be available for Android, iOS, and macOS, and we&#8217;ll be integrating XAML Hot Reload and the Live Visual Tree as well.<\/p>\n<p>To learn more about Hot Reload check out <a href=\"https:\/\/aka.ms\/build2021-hotreload\">Introducing .NET Hot Reload<\/a>.<\/p>\n<h2>Ecosystem Readiness<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/telerik-maui.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-33102\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/telerik-maui.png\" alt=\"Image telerik maui\" width=\"471\" height=\"480\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/telerik-maui.png 471w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/telerik-maui-294x300.png 294w\" sizes=\"(max-width: 471px) 100vw, 471px\" \/><\/a><\/p>\n<p>One of the major advantages of using .NET is leveraging a rich ecosystem of controls and libraries for building apps. With Preview 4 the Telerik team has released their first set of controls for .NET MAUI at <a href=\"https:\/\/www.telerik.com\/maui-ui\" target=\"_blank\" rel=\"noopener\">https:\/\/www.telerik.com\/maui-ui<\/a>. Check out their <a href=\"https:\/\/www.telerik.com\/blogs\/aloha-from-telerik-ui-for-maui\" target=\"_blank\" rel=\"noopener\">full announcement here<\/a>.<\/p>\n<blockquote><p>&#8220;Since the very early days of .NET MAUI, our team has been thrilled about the concept behind its multi-platform capabilities! This will be a new era for .NET developers, and we are excited to partner with Microsoft in this journey.&#8221; said Stefan Stefanov, Director of Product Management at Progress. &#8220;The early preview version of Telerik UI for MAUI provides the .NET developer community with professionally designed, feature rich UI components to kickstart their cross-platform development and deliver stunning applications.&#8221;<\/p><\/blockquote>\n<p>Other component vendors are also planning .NET MAUI support such as <a href=\"https:\/\/www.syncfusion.com\/blogs\/post\/advantages-net-maui-over-xamarin.aspx\" target=\"_blank\" rel=\"noopener\">Syncfusion<\/a>, <a href=\"https:\/\/community.devexpress.com\/blogs\/mobile\/archive\/2021\/05\/13\/xamarin-forms-are-available-free-of-charge-transition-to-net-multi-platform-app-ui-maui.aspx\" target=\"_blank\" rel=\"noopener\">DevExpress<\/a>, and <a href=\"https:\/\/mauikit.com\/\" target=\"_blank\" rel=\"noopener\">GrialKit<\/a>.<\/p>\n<p>What about your favorite open-source libraries? Dan Siegel has already shared an <a href=\"https:\/\/github.com\/dansiegel\/Prism.Maui\" target=\"_blank\" rel=\"noopener\">early preview of Prism<\/a>, a popular MVVM library.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-33100\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet-1024x1003.png\" alt=\"Image prism tweet\" width=\"640\" height=\"627\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet-1024x1003.png 1024w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet-300x294.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet-768x753.png 768w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/prism-tweet.png 1192w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>We host a monthly community call to help maintainers bring their libraries to .NET 6 and .NET MAUI. If you would like to participate, send an email to david.ortinau@microsoft.com.<\/p>\n<h2 id=\"get-started-today\">Get Started Today<\/h2>\n<p>Check out .NET MAUI today. Get started quickly be running the <code>maui-check<\/code> .NET tool from the command line to install .NET 6 Preview and all the SDK dependencies you need for developing .NET MAUI apps.<\/p>\n<blockquote><p>Don&#8217;t have maui-check? Run this from your command line:<\/p>\n<pre class=\"prettyprint\">dotnet tool install -g Redth.Net.Maui.Check<\/pre>\n<\/blockquote>\n<p>Run <code>maui-check<\/code> and follow the instructions.<\/p>\n<p>Open <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">Visual Studio 2019 16.11 Preview 1<\/a> and create a new .NET Multi-platfrom App UI project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/new-project-dialog.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-33041\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/new-project-dialog.png\" alt=\"Image new project dialog\" width=\"1025\" height=\"679\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/new-project-dialog.png 1025w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/new-project-dialog-300x199.png 300w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2021\/05\/new-project-dialog-768x509.png 768w\" sizes=\"(max-width: 1025px) 100vw, 1025px\" \/><\/a><\/p>\n<p>The new solution format includes the multi-targeted project which runs on Android, iOS, and macOS, and the two WinUI projects for Windows. In future releases, the WinUI projects will be absorbed into the multi-targeted project.<\/p>\n<p>The .NET MAUI and AndroidX packages are temporarily on a hosted feed. Once we have those packages bundled as a workload this step will no longer be needed. Run the following terminal commands to add the required source.<\/p>\n<pre class=\"prettyprint\">dotnet new nugetconfig\r\n\r\ndotnet nuget add source -n maui-preview https:\/\/aka.ms\/maui-preview\/index.json\r\n<\/pre>\n<p>To run for Android, set the multi-targeted project as your startup project and select the Android platform from the Run menu to see your Android emulators.<\/p>\n<blockquote><p>Android emulators &#8211; if this is your first run, you may be asked to create your own emulator before the app will deploy and run.<\/p><\/blockquote>\n<p>In coming releases we will enable <a href=\"https:\/\/docs.microsoft.com\/xamarin\/xamarin-forms\/deploy-test\/hot-restart\">iOS on Windows support<\/a> for developing from Visual Studio to your connected iOS device.<\/p>\n<p>For additional information about getting started with .NET MAUI, refer to our <a href=\"https:\/\/github.com\/dotnet\/maui\/wiki\/Getting-Started\">wiki documentation<\/a> on GitHub.<\/p>\n<h2 id=\"feedback-welcome\">Feedback Welcome<\/h2>\n<p>Please let us know about your experiences using .NET MAUI Preview 4 to create new applications by engaging with us on GitHub at <a href=\"https:\/\/github.com\/dotnet\/maui\">dotnet\/maui<\/a>.<\/p>\n<p>For a look at what is coming in future releases, visit our <a href=\"https:\/\/github.com\/dotnet\/maui\/wiki\/roadmap\">product roadmap<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are pleased to announce the availability of .NET Multi-platform App UI (.NET MAUI) Preview 4. Each preview introduces more controls and features to this multi-platform toolkit on our way to general availability this November at .NET Conf. .NET MAUI now has enough building blocks to build functional applications for all supported platforms, new [&hellip;]<\/p>\n","protected":false},"author":553,"featured_media":33048,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,7233],"tags":[7238],"class_list":["post-33037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-maui","tag-net-maui"],"acf":[],"blog_post_summary":"<p>Today we are pleased to announce the availability of .NET Multi-platform App UI (.NET MAUI) Preview 4. Each preview introduces more controls and features to this multi-platform toolkit on our way to general availability this November at .NET Conf. .NET MAUI now has enough building blocks to build functional applications for all supported platforms, new [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/33037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/553"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=33037"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/33037\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/33048"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=33037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=33037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=33037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}