<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Windows10 on DVLUP</title><link>/en/tags/windows10/</link><description>Recent content in Windows10 on DVLUP</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 13 Mar 2023 00:00:00 +0000</lastBuildDate><atom:link href="/en/tags/windows10/index.xml" rel="self" type="application/rss+xml"/><item><title>Mica or Acrylic with WinUI and .NET MAUI</title><link>/en/blog/2023.03.13-mica-or-acrylic-with-winui-and-net-maui/</link><pubDate>Mon, 13 Mar 2023 00:00:00 +0000</pubDate><guid>/en/blog/2023.03.13-mica-or-acrylic-with-winui-and-net-maui/</guid><description>&lt;p&gt;When using .NET MAUI, we have some great capabilities to affect the way the native platform works. We can take advantage of this part of lifecycle to check if:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Is the runtime platform is Windows?&lt;/li&gt;&#10;&lt;li&gt;First attempt to use Mica, if the user&amp;rsquo;s device supports it (Windows 11).&lt;/li&gt;&#10;&lt;li&gt;If it doesn&amp;rsquo;t support Mica, then we try to use Acrylic.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Here&amp;rsquo;s what the end result looks like in your MauiProgram.cs code, nice and clean thanks to using lifecycle builder extension methods.&lt;/p&gt;</description></item><item><title>USB Support for Home Assistant in Hyper-V</title><link>/en/blog/2020.10.23-usb-in-hyper-v/</link><pubDate>Fri, 23 Oct 2020 00:00:00 +0000</pubDate><guid>/en/blog/2020.10.23-usb-in-hyper-v/</guid><description>&lt;p&gt;If you&amp;rsquo;re running Home assistant in Hyper-V, you&amp;rsquo;ve probably encountered a &lt;em&gt;significant&lt;/em&gt; limitation&amp;hellip; &lt;strong&gt;Hyper-V doesn&amp;rsquo;t let you pass-through a USB device&lt;/strong&gt;, so you can&amp;rsquo;t use your &lt;a href="https://www.home-assistant.io/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules" target="_blank" rel="noopener"&gt;Z-Wave dongle&lt;/a&gt;&#10; or zigbee dongle.&lt;/p&gt;&#10;&lt;p&gt;So why am I writing this blog post? I have found a way to make it work, feast your eyes on the following screenshot!&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="../../../en/blog/2020.10.23-usb-in-hyper-v/image.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Click to enlarge. Z-Wave USB dongle available to Home Assistant container inside Hyper-V&lt;/p&gt;&#10;&lt;p&gt;The left side is Home Assistant&amp;rsquo;s frontend in the web browser, open to the &lt;a href="https://www.home-assistant.io/integrations/ozw/" target="_blank" rel="noopener"&gt;Open Z-Wave Add-On&lt;/a&gt;&#10; page. Notice in the yellow highlight, that is a Z-Wave USB dongle plugged into the Windows 10 machine.&lt;/p&gt;</description></item><item><title>Installing Home Assistant on Hyper-V</title><link>/en/blog/2020.05.25-installing-home-assistant-on-hyper-v/</link><pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate><guid>/en/blog/2020.05.25-installing-home-assistant-on-hyper-v/</guid><description>&lt;p&gt;This post is a quick tutorial you can follow to get Home Assistant working on Hyper-V so you can take advantage of your PC&amp;rsquo;s compute power instead of running it on a Raspberry Pi. This installation method is really quick and doesn&amp;rsquo;t require any command line setup.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;**Important**: If you want to use USB devices in Home Assistant, please this different tutorial -&amp;gt; [USB Support for Home Assistant on Hyper-V](https://www.dvlup.com/2020/10/23/usb-in-hyper-v/). The approach used in this article doesn&amp;#39;t allow for USB devices.&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="step-1---create-hyper-v-machine"&gt;Step 1 - Create Hyper V Machine&lt;/h3&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Download the &lt;strong&gt;VHDX&lt;/strong&gt; file (hassos_ova-[version].vhdx.gz) from &lt;a href="https://github.com/home-assistant/operating-system/releases/" target="_blank" rel="noopener"&gt;the home-assistant GitHub Releases page&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;I recommend only using the latest non-beta release so you won&amp;rsquo;t have trouble with HA&amp;rsquo;s built-in updater. As of writing this, that is version 3.13:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/82828657-92d9bd80-9e7f-11ea-98d6-ec0ab36983fb.png" alt="image"&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Right-click on the downloaded &lt;code&gt;.gz&lt;/code&gt; file, select &amp;ldquo;Properties&amp;rdquo;, check the &amp;ldquo;Unblock&amp;rdquo; checkbox and click OK.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Extract the &lt;strong&gt;.vhdx&lt;/strong&gt; file from the&lt;code&gt;.gz&lt;/code&gt; file (you can use &lt;a href="https://www.7-zip.org/download.html" target="_blank" rel="noopener"&gt;7-Zip&lt;/a&gt;&#10; to do this). Don&amp;rsquo;t worry about where you extract it to, Hyper-V will make a copy.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Open &lt;strong&gt;Hyper-V Manager&lt;/strong&gt; app on Windows 10.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;In the right pane, select &lt;strong&gt;Quick Create&lt;/strong&gt; (at the top right).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Choose &amp;ldquo;&lt;strong&gt;Local Installation Source&lt;/strong&gt;&amp;rdquo; option for an OS and use the extracted &lt;code&gt;.vhdx&lt;/code&gt; file.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/82827423-0201e280-9e7d-11ea-8c6f-2f4d54ddce70.png" alt="image"&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;You&amp;rsquo;ll be presented with the VM&amp;rsquo;s Settings window before starting it up. Here are some recommendations:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;In the &lt;strong&gt;Memory&lt;/strong&gt; tab, set the RAM to at least 2048 MBs or higher and disable Dynamic Memory&lt;/li&gt;&#10;&lt;li&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/82827917-febb2680-9e7d-11ea-88ac-78f0f8324a4d.png" alt="image"&gt;&lt;/li&gt;&#10;&lt;li&gt;Under the &lt;strong&gt;Security&lt;/strong&gt; tab, make sure Secure Boot is disabled:&lt;/li&gt;&#10;&lt;li&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/74442771-15de8700-4e40-11ea-83a9-daf6b9708621.png" alt="image"&gt;&lt;/li&gt;&#10;&lt;li&gt;Under the &lt;strong&gt;Automatic Stop Action&lt;/strong&gt; tab, change the setting to &amp;ldquo;Shut down the guest operating system&amp;rdquo;:&lt;/li&gt;&#10;&lt;li&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/82828346-d7b12480-9e7e-11ea-85f1-14ee9a94975d.png" alt="image"&gt;&lt;/li&gt;&#10;&lt;li&gt;Finally, select the &lt;strong&gt;Automatic Start Action&lt;/strong&gt; tab and set your preferred option:&lt;/li&gt;&#10;&lt;li&gt;&lt;img src="https://user-images.githubusercontent.com/3520532/82829015-4a6ecf80-9e80-11ea-8fcf-6ea9a23fda4b.png" alt="image"&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Start the machine and wait for initial setup to complete and you see the &lt;em&gt;Welcome to HassOS&lt;/em&gt; prompt.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Setting up Home Assistant in Docker for Windows with Port Forwarding Enabled</title><link>/en/blog/2020.02.17-setting-up-home-assistant-in-docker-for-windows-with-port-forwarding-enabled/</link><pubDate>Mon, 17 Feb 2020 00:00:00 +0000</pubDate><guid>/en/blog/2020.02.17-setting-up-home-assistant-in-docker-for-windows-with-port-forwarding-enabled/</guid><description>&lt;p&gt;I hope that you&amp;rsquo;ve landed here before spending hours/days trying to find a solution as to why you can&amp;rsquo;t forward the Home Assistant port in Docker. The solution is frustratingly easy.&lt;/p&gt;&#10;&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;The &lt;a href="https://www.home-assistant.io/docs/installation/docker/#windows" target="_blank" rel="noopener"&gt;install Home Assistant in docker on Windows&lt;/a&gt;&#10; instructions are great, with one exception. It explains the required prerequisites to make sure docker has access to a host disk. However, those instructions have outdated instructions to setup the port-forward rules, which ultimately makes it a waste of time.&lt;/p&gt;</description></item><item><title>Using Windows IoT, SignalR, Azure Custom Vision and Xamarin Forms to Flush a Toilet</title><link>/en/blog/2020.02.13-using-windows-iot-signalr-azure-custom-vision-and-xamarin-forms-to-flush-a-toilet/</link><pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate><guid>/en/blog/2020.02.13-using-windows-iot-signalr-azure-custom-vision-and-xamarin-forms-to-flush-a-toilet/</guid><description>&lt;p&gt;&lt;strong&gt;My cat uses the human toilet&lt;/strong&gt;. However, he doesn&amp;rsquo;t know how to flush when he&amp;rsquo;s done. So, I thought, &amp;ldquo;Why not train a custom trained machine learning model to know when to flush the toilet for him? That way, I can go on vacation without asking friends to stop by.&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;That single thought began my trip through some great modern developer tools and tech to build a full solution for the problem. In this post, I&amp;rsquo;ll walk you through everything and you can explore the code and parts list here &lt;a href="https://github.com/LanceMcCarthy/Flusher" target="_blank" rel="noopener"&gt;https://github.com/LanceMcCarthy/Flusher&lt;/a&gt;&#10;.&lt;/p&gt;</description></item><item><title>Preparing apps for Windows X and Surface Duo or Neo Devices.</title><link>/en/blog/2019.10.03-preparing-apps-for-windows-x-and-surface-duo-or-neo-devices/</link><pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate><guid>/en/blog/2019.10.03-preparing-apps-for-windows-x-and-surface-duo-or-neo-devices/</guid><description>&lt;p&gt;Preface - This is not Microsoft-provided information, just my guess after digging around the Microsoft.UI.Xaml source code after a conversation on Twitter. This is not coming from any MVP-NDA or other NDA source. I will update this post when official information becomes available.&lt;/p&gt;&#10;&lt;p&gt;There is suspiciously missing control from the XAML Gallery app - &lt;strong&gt;TwoPaneView&lt;/strong&gt;. It&amp;rsquo;s in the WinUI 2.2 release, but there&amp;rsquo;s no documentation, guidance or examples of it being used (yet). The only thing you&amp;rsquo;ll find is the API reference, which is automatically generated during the build process.&lt;/p&gt;</description></item><item><title>Draw Your Own Xamarin Pie Chart dynamically</title><link>/en/blog/2019.04.18-draw-your-own-pie-chart-dynamically/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0000</pubDate><guid>/en/blog/2019.04.18-draw-your-own-pie-chart-dynamically/</guid><description>&lt;p&gt;In this tutorial, I&amp;rsquo;ll show you how to draw your own pie chart just using lines and a list of data items. The code itself is in C#, but the concept can be used on any platform that has a drawing library and ArcSegments.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="../../../en/blog/2019.04.18-draw-your-own-pie-chart-dynamically/2019-04-18_13-44-40.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;You can view the entire solution in &lt;a href="https://gist.github.com/LanceMcCarthy/b64ee5afdd27b125b8b47816799306e0" target="_blank" rel="noopener"&gt;this GitHub Gist&lt;/a&gt;&#10;. Okay, let&amp;rsquo;s get started!&lt;/p&gt;&#10;&lt;h2 id="setting-up"&gt;Setting Up&lt;/h2&gt;&#10;&lt;p&gt;The first thing you&amp;rsquo;ll need to understand is how the platform&amp;rsquo;s drawing library makes arcs. In this code, I&amp;rsquo;ll be using &lt;a href="https://docs.telerik.com/devtools/xamarin/controls/path/path-overview" target="_blank" rel="noopener"&gt;RadPath&lt;/a&gt;&#10; from &lt;a href="https://www.telerik.com/xamarin-ui" target="_blank" rel="noopener"&gt;Telerik UI for Xamarin&lt;/a&gt;&#10; most libraries work the same way. RadPath lets you use a custom Geometry which has &lt;a href="https://docs.telerik.com/devtools/xamarin/controls/path/getting-started/geometry-structure#radarcsegment" target="_blank" rel="noopener"&gt;RadArcSegment&lt;/a&gt;&#10; object, which has helpful &lt;strong&gt;StartAngle&lt;/strong&gt; and &lt;strong&gt;SweepAngle&lt;/strong&gt; properties.&lt;/p&gt;</description></item><item><title>LoginDialog for easy Live SDK OAuth</title><link>/en/blog/2018.12.06-logindialog-for-easy-live-sdk-oauth/</link><pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.12.06-logindialog-for-easy-live-sdk-oauth/</guid><description>&lt;p&gt;Almost every developer I speak with agrees that getting a nicely working OAuth flow can be difficult. After much trial and error, I&amp;rsquo;ve built a UWP &lt;a href="https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.ContentDialog" target="_blank" rel="noopener"&gt;ContentDialog&lt;/a&gt;&#10; that makes this easy and has built-in refresh token support.&lt;/p&gt;&#10;&lt;h2 id="using-the-logindialog"&gt;Using the LoginDialog&lt;/h2&gt;&#10;&lt;p&gt;This is very simple to use, when the app launches, instantiate the dialog by passing your Live SDK ClientID and let the LoginDialog do the heavy lifting:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// Pass your app&amp;#39;s OAuth ClientId (sometimes called an AppId)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd"&gt;var&lt;/span&gt; loginDialog = &lt;span style="color:#ff79c6"&gt;new&lt;/span&gt; LoginDialog(&lt;span style="color:#f1fa8c"&gt;&amp;#34;YourAppClientId&amp;#34;&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// *** Perform login **** //&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// Case 1 - If the user was previously signed in, there is a refresh_token stored and no user-entered credentials are needed.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;// Case 2 - If the access token fails, or if it&amp;#39;s the first sign-in, the user will see a popup to enter credentials.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; loginDialog.SignInAsync();&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;(!&lt;span style="color:#8be9fd"&gt;string&lt;/span&gt;.IsNullOrEmpty(loginDialog.Authentication))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;// This will be the access token you can use for API calls.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd"&gt;var&lt;/span&gt; accessToken = loginDialog.Authentication;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;// Make your API calls with the accessToken, for example:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd"&gt;var&lt;/span&gt; user = &lt;span style="color:#ff79c6"&gt;await&lt;/span&gt; apiService.GetUserProfileAsync(accessToken);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This works just like a MessageDialog, but instead will show a WebView for the user to sign in, or automatically sign them in silently if they were previously logged in.&lt;/p&gt;</description></item><item><title>The RS5 Update Resources and Tutorials</title><link>/en/blog/2018.10.03-the-rs5-update-resources-and-tutorials/</link><pubDate>Wed, 03 Oct 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.10.03-the-rs5-update-resources-and-tutorials/</guid><description>&lt;p&gt;My friends at Microsoft have put together an amazing compilation of resources of all the new stuff available in the Windows 10 October 2018 Update (aka RS5). Below is a list of some of those resources relevant to developers and enthusiasts, enjoy!&lt;/p&gt;&#10;&lt;h2 id="sdk-downloads"&gt;SDK Downloads&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;EXE -  &lt;a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkID%3D2023014&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7Cf712adbdbc96472b3cdb08d628ab863a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741114525989667&amp;amp;sdata=kom4ugWrudzfJDtFao%2FLQZoTEkkCgXUd4oSre4Ot7SI%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;http://go.microsoft.com/fwlink/?LinkID=2023014&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;ISO - &lt;a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkID%3D2022797&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7Cf712adbdbc96472b3cdb08d628ab863a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741114525989667&amp;amp;sdata=rg%2BzQxzGfn8jl1U3RfGpA0QnGwdgAzUDnAvKEo4Ugl0%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;http://go.microsoft.com/fwlink/?LinkID=2022797&lt;/a&gt;&#10;You can also install the&lt;/li&gt;&#10;&lt;li&gt;Visual Studio Installer - Choose the UWP workload and select 17763 SDK under additional components&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="new-samples-and-sample-updates"&gt;New Samples and Sample Updates&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FWindows-appsample-Xaml-Hosting&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=zYP2LKGrSA8F7%2F80aHpP7b7Xjfus9gUc2XxLZCkpq0Q%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;XAML Hosting API Sample&lt;/a&gt;&#10; uses the new XAML hosting API and C++/WinRT to demonstrate usage of XAML controls within a Win32 application.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FWindows-appsample-customers-orders-database&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=0sHa9VAeC3lYgaE8%2B8wUDzV8mGhxm9chfqfw9KlBfFs%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Customer Orders Database Sample&lt;/a&gt;&#10; has been updated to use the new Data Grid and other new controls in RS5.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FWindows-appsample-photo-editor&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=3Z%2FiexJ5pXIlgwSWmLegqh%2B5FqCtDwIbEDoWMzy1Yh4%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Photo Editor C++/WinRT Sample&lt;/a&gt;&#10; has been updated to build with the RS5 SDK and to use the new single_threaded_observable_vector function to create an IObservableVector for data binding. An additional performance update will be coming out in a couple weeks.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdata-binding%2Fdata-binding-and-mvvm&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=mHChhGRskDLw%2FJt%2FPHV4iPY3onsDx5GQIR1NuGXsM3Q%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Data binding and MVVM&lt;/a&gt;&#10; is a new topic that was identified as a need based on the Code First program. The topic describes the benefits of using the MVVM design pattern and how it has been applied to the sample apps.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="videos"&gt;Videos&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAgngKzq4hKI%26feature%3Dyoutu.be&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=uLi62ajmLZwT2Ogjn5P3Tgq0txhbGBAnfJPflngcQos%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Create and customize a form on Windows 10&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5C_uD8g2QKg%26feature%3Dyoutu.be&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=Euhd2Oycn5eHrLm7l%2BRsnTpB5aqTpmRFSHWKPFhXN7M%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Enhance your Bot with Personality Chat&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DfVQZ-YgwNpY%26feature%3Dyoutu.be&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=TsQKjizeZ5qv3Lq8ezRgOshFVhvIqSiGD%2FTsqsoKtxc%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Xbox live Unity plugin&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLWs4_NfqMtoxjy3LrIdf2oamq1coolpZ7&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=7TdjcspuzA8mmSQHcQGn4ieUIHtQno8pjSqfyZCkAd8%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;One Dev Question w/Raymond Chen&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLWs4_NfqMtoyPUkYGpJU0RzvY6PBSEA4K&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=BQuGfHuBwVOt9o7onN5pSHimgpRhk7tygh88NPOnX0w%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;One Dev Question w/Larry Osterman&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLWs4_NfqMtoyPHoI-CIB71mEq-om6m35I&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=RFAntfw0KI8pQXRzHzBdWoL4RbBIr%2Bd%2F6JLxIraSl8s%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;One Dev Question w/Aaron Gustafson&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLWs4_NfqMtow00LM-vgyECAlMDxx84Q2v&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=fVMj%2Bt3ENS0fDnsVKEfDT%2BaV%2FnvFKdefRI2sdaVwrI8%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;One Dev Question w/Chris Heilmann&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="application-developer-resources"&gt;Application Developer Resources&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Dev Center site page updates (&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fwindows&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217490521&amp;amp;sdata=sB0njwbD0LSITvZci27AJJgsUXc4v4URrnvC2K%2B5tYI%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Home page&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fwindows%2Fget-started-windows-10&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217490521&amp;amp;sdata=UX6sgEzyFFHoZNq2E3Uh06i0YkK8IpQuEArDP39uXHw%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Get started&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fwindows%2Fwindows-10-for-developers&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217564250&amp;amp;sdata=mq0fUIRUuiJpkGI64UJfqNa2pzdxFEU8V6%2Bod15z13k%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;What’s cool&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fwindows%2Fdesktop&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217574268&amp;amp;sdata=Jt2kM9j9X5Xa%2BI4WO3t3nSOwbJi3OAljdjQUs%2BdSsyg%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Desktop&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fwindows%2Fdownloads&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217584269&amp;amp;sdata=CjGPkw7gV%2BS6dvs4XngCO5dRM6CuZjt71QrKAjrISGc%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Downloads&lt;/a&gt;&#10;, and more)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fwhats-new%2Fwindows-10-build-17763&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217584269&amp;amp;sdata=448DxujCrz5Iu%2FP9lo8xGmOXwej51vEwWqukUXe1E0I%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;What&amp;rsquo;s New in Windows 10 for developers, build 17763&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fwhats-new%2Fwindows-10-build-17763-api-diff&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217594283&amp;amp;sdata=iGo9FwEnCWJBmP4O463rAvDkniwVBGgY8WIfOwje2J0%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;New APIs in Windows 10 build 17763&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Fluent Design controls (&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdesign%2Fcontrols-and-patterns%2Fcommand-bar-flyout&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217604287&amp;amp;sdata=NtRYFD6hXDdaGdzpYnPR3Ur9%2F0WjXmc5mVUtrbHlNrc%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;CommandBarFlyout&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdesign%2Fcontrols-and-patterns%2Fmenus&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217604287&amp;amp;sdata=aHR6x%2BjzcJJIMT5jfPgvmVUdKyPmuVMnYWGqlsFoofQ%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;MenuBar&lt;/a&gt;&#10;, &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdesign%2Fcontrols-and-patterns%2Ftree-view&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217614297&amp;amp;sdata=FAgUsKk690ixtbjR58X0TQDRBg%2FX7edFB7z4pq%2B5Wuk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;TreeView&lt;/a&gt;&#10;, and more)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdesign%2Fmotion%2Findex&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217624302&amp;amp;sdata=oV6N%2FCxKP7fBn0PAIWahrtz2sGxsD7e%2BR%2BFru0S5Y9g%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Motion in Fluent Design&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fdesign%2Finput%2Fgaze-interactions&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217624302&amp;amp;sdata=0pLamd9ePWg9c4gxvJa%2B54B5ainKTyo9cbe6D5%2B%2Bgok%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Gaze input and interactions&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fuwp%2Ftoolkits%2Fwinui%2F&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217634311&amp;amp;sdata=hG%2B%2FfS4HGZeO%2B06dT9%2Bb%2FiuqIcWven0EZH3TuklB%2B44%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Windows UI Library (WinUI)&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fmsix%2Foverview&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217644316&amp;amp;sdata=oyRcigYue1ny5KnvTBBkHvCuoGWMHJlhLoVOcrmzQM8%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;MSIX&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fxaml-platform%2Fxaml-host-controls&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217644316&amp;amp;sdata=tSBdNM6fbZypsr9sBTVC2jPQlFxl8QMIjv%2BH3DnNjdo%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;UWP Controls in desktop applications&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fcpp-and-winrt-apis%2Findex&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217654321&amp;amp;sdata=Iynzw%2BTzfuNChReUIJEjimCnrf%2FIkadsTyfh74C761g%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;C++/WinRT&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fdesktop%2Fdirect3ddxgi%2Ffor-best-performance--use-dxgi-flip-model&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217664326&amp;amp;sdata=X%2FUbBnUag81eWhCkghVBWVnUdOcgVcLSXALYs9yismg%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;DirectX Graphics Infrastructure (DXGI)&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fproject-rome%2F&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217664326&amp;amp;sdata=qh6KYwBojd48w2UJ9VrZ6v3eSJfHdJqSSbDIbCnd9zg%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Project Rome&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fai%2F&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217674335&amp;amp;sdata=fiyYvZACHLELIH2yBRrf5iabsJf2aXlawBYzHLuHEsk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Windows Machine Learning&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fuwp%2Fmonetize%2Faccess-analytics-data-using-windows-store-services&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217684344&amp;amp;sdata=KpPCdbfLU1GLlE5P%2FwbmY9BwGFfGLUle0Sr2Tz%2FOF2M%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Store Analytics API&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://aka.ms/devguide_edgehtml_18" target="_blank" rel="noopener"&gt;EdgeHTML 18&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-edge%2Fprogressive-web-apps&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217684344&amp;amp;sdata=PrzZCOyA57xow5EpJCt%2Fyghteb5WRa7q5%2B65I0AmdSM%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Progressive Web Apps&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-edge%2Fwebvr%2F&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C2a52d708e4364c0d78b608d62938c810%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741721217694349&amp;amp;sdata=GpTd7%2BkaomR72cTg%2B6K%2BJefWDlE3v04qAflg1CwzUIY%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;WebVR&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="driver-developer-resources"&gt;Driver Developer Resources&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23windows-hardware-dev-center-dashboard&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=jVZtJwSc7RM1Ptpx3vk7uxmJ7CplFiE41W4APqnrMq4%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Windows Hardware Dashboard&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23debugging-tools-for-windows&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=L2OINoEX1feU30Se9LnOXcIroNS%2FYE%2BdHyNprbhHvDA%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Debugger Data Model API&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23windows-driver-frameworks-wdf&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=gSV%2BYCSDX5OEdNwZhi20xvhMdNrF%2FXTV8%2BkdfCojMiU%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Windows Driver Framework (WDF)&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23audio-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=nReOyWk947B%2BC0KeqpAMb5AeIeICfsefyahVlw9HmX4%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Audio&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23bluetooth-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=V%2Fnin2JOEVcZ%2BuYnwKHQeUK3YYBZ93F6U5fRZIiQAwA%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Bluetooth&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23display-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=5QygAXw723TeiB2dUtl%2Fg2pKSJVFDKJLUDonrQAnbLk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Display&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23kernel-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=EVCWNeHIYhWUiuI0lK1Fz6WxoYo%2FUoidXxJno%2BoZUmk%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Windows Kernel&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23networking-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=8BfpgwKjcSdwoUgEW8Hblb4OkWHAPAdvYs%2B9ll5oFyM%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Networking&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23mobilebroadband-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=6CBTIBSelWWvHUimND5Oh%2Bg2qL1L3zw0TvyNeCeeTDE%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Mobile Broadband&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23sensors-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=3qXZ6l4ZFuN3LX%2BBuYJzn9b5fcviP5tjMFVs6WrTPuo%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Sensors&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23usb-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722009392&amp;amp;sdata=tgZPQrG2bU1nXYCfZRHH1ziwzN28%2FENKkkt%2B%2B7kDmzg%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;USB&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%23wifi-1809&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138722165650&amp;amp;sdata=nuEeqq9WirC7sysyK97B3S5Nblu8hwwNxPWbKcImeII%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;Wi-fi&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Go &lt;a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Freview.docs.microsoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fwhat-s-new-in-driver-development%3Fbranch%3Dmaster&amp;amp;data=02%7C01%7CMatthijs.Hoekstra%40microsoft.com%7C330185751f54470692d108d628b11ad3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636741138721853147&amp;amp;sdata=xQCbmPX047SH%2FwRFMfjo4s%2F9Hqk7n7S%2BBLezGPHKUPI%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;here&lt;/a&gt;&#10; to see a list of comprehensive list of doc changes.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Custom Events and Xamarin.Forms Effect</title><link>/en/blog/2018.07.17-custom-events-and-xamarin-forms-effect/</link><pubDate>Tue, 17 Jul 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.07.17-custom-events-and-xamarin-forms-effect/</guid><description>&lt;p&gt;This post will walk you through setting up a &lt;a href="https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/effects/introduction" target="_blank" rel="noopener"&gt;Xamarin Platform Effect&lt;/a&gt;&#10; and show you how to wire up an event handler so you can leverage native APIs in the case that the Xamarin.Forms wrapper doesn&amp;rsquo;t yet have. For this example, I&amp;rsquo;ll use the Telerik UI for Xamarin RadCalendar.&lt;/p&gt;&#10;&lt;p&gt;tl;dr &lt;em&gt;Full source code on GitHub &lt;a href="https://github.com/LanceMcCarthy/CustomXamarinDemos/tree/master/RangeSelectionTest" target="_blank" rel="noopener"&gt;here&lt;/a&gt;&#10;.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;I get frequently asked how to enable RangeSelection (aka Multiple Selection) for the RadCalendar. The native platform calendar controls all have Range Selection available, so we only need to create a  Platform Effect to access that native feature.&lt;/p&gt;</description></item><item><title>Epic Build 2018 Playlists</title><link>/en/blog/2018.05.09-epic-2018-playlists/</link><pubDate>Wed, 09 May 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.05.09-epic-2018-playlists/</guid><description>&lt;p&gt;Your one-stop shop for Microsoft Build 2018 sessions, slide decks, post links, keynotes and much more.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/windows-ml--uwp-app-developer?playlist=5122af4c-63c2-4970-a4af-f5d006357a5b" target="_blank" rel="noopener"&gt;AI, Windows ML and Cognitive Services&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/msix-inside-and-out-pptx?playlist=80d147e8-f3b0-4ca0-a96f-cfc8e80bec20" target="_blank" rel="noopener"&gt;Desktop - Windows Store (UWP, Win32 and IoT)&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/building-web-api-solutions-with-authentication?playlist=d41c5eba-2ea9-4200-be07-62099c3c89ff" target="_blank" rel="noopener"&gt;ASP.NET, PWA and Web&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/free-ebook--developers-guide-to-microsoft-azure?playlist=0b7ba19f-91fa-42aa-be2f-87c0613fde9d" target="_blank" rel="noopener"&gt;Azure and Cloud Services&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/achieving-scale-with-hololens-and-bim?playlist=f0e2f1d8-49cd-4f66-9cf0-d49f0a35c61f" target="_blank" rel="noopener"&gt;Hololens and Mixed Reality&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/multi-sense-multi-device-world?playlist=fea8e802-aae4-4e11-89a0-00b61869ef23" target="_blank" rel="noopener"&gt;Microsoft Graph and Microsoft 365&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/build-xamarin-solutions-with-authentication?playlist=42f17792-3441-4502-a95f-21e115f1c717" target="_blank" rel="noopener"&gt;Xamarin&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/keynote-microsoft-365-app-development?playlist=ee7be727-1f8c-47ba-b1d9-3ae99eff9e3f" target="_blank" rel="noopener"&gt;Keynotes and other key presentations&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.microsoft.com/en-us/events/build/content/windows-subsystem-for-linux?playlist=5440cdfa-f151-43d8-8f74-9f23cbcd35ce" target="_blank" rel="noopener"&gt;Windows Features&lt;/a&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Living Document Note:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;These Playlists will continue to be reordered and updated in real time as new content becomes available. However, the links will always remain the same and you can refresh the playlist page to get any updated ordering/content.&lt;/p&gt;</description></item><item><title>Migrating from PCLStorage to .NET Standard 2.0</title><link>/en/blog/2018.04.19-migrating-from-pclstorage-to-net-standard-2-0/</link><pubDate>Thu, 19 Apr 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.04.19-migrating-from-pclstorage-to-net-standard-2-0/</guid><description>&lt;p&gt;If you&amp;rsquo;re a Xamarin Forms developer, you&amp;rsquo;ve likely used &lt;a href="https://github.com/dsplaisted/PCLStorage" target="_blank" rel="noopener"&gt;PCLStorage&lt;/a&gt;&#10; (or other Dependency Service) to interact with the target platform&amp;rsquo;s file system in the portable class library&amp;rsquo;s code. However, since November 2017, Xamarin.Forms now uses a .NET Standard 2.0 class library and PCLStorage is no longer supported.&lt;/p&gt;&#10;&lt;h2 id="systemiofile"&gt;System.IO.File&lt;/h2&gt;&#10;&lt;p&gt;This isn&amp;rsquo;t a problem because in .NET Core 2.0 you now have access to System.IO.File&amp;rsquo;s GetFolderPath and SpecialFolder methods (see &lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.io.file?view=netcore-2.0" target="_blank" rel="noopener"&gt;System.IO.File in .NET Core 2.0 docs&lt;/a&gt;&#10;).&lt;/p&gt;</description></item><item><title>Windows 10 on ARM: Day-One Developer Experience</title><link>/en/blog/2018.03.08-windows-10-on-arm-day-one-developer-experience/</link><pubDate>Thu, 08 Mar 2018 00:00:00 +0000</pubDate><guid>/en/blog/2018.03.08-windows-10-on-arm-day-one-developer-experience/</guid><description>&lt;p&gt;[EDIT Updated to include ARM64]&lt;/p&gt;&#10;&lt;p&gt;I was given the honor of having early access to &lt;strong&gt;&lt;a href="https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm" target="_blank" rel="noopener"&gt;Windows 10 on ARM&lt;/a&gt;&#10;&lt;/strong&gt; (WoA) so that I could chronicle the experience and provide you with tips to ensure that your development experience is smooth. I&amp;rsquo;ll go through a list of potential issues you might encounter, along my fix for each.&lt;/p&gt;&#10;&lt;h3 id="what-this-post-is"&gt;What this post is:&lt;/h3&gt;&#10;&lt;p&gt;This article is intended to be a quick guide on how to set up the device so that you can deploy and debug your apps. I will be writing this from a UWP developer&amp;rsquo;s perspective, sharing the experience of deploying and debugging &lt;a href="https://github.com/LanceMcCarthy/WoA_Tests" target="_blank" rel="noopener"&gt;this real time video effects test app&lt;/a&gt;&#10;.&lt;/p&gt;</description></item><item><title>Creating 3D Icons for your Mixed Reality UWP app</title><link>/en/blog/2017.09.06-creating-3d-icons-for-your-mixed-reality-uwp-app/</link><pubDate>Wed, 06 Sep 2017 00:00:00 +0000</pubDate><guid>/en/blog/2017.09.06-creating-3d-icons-for-your-mixed-reality-uwp-app/</guid><description>&lt;p&gt;Microsoft has opened up the ability to have a 3D app launcher to all developers in the Fall Creator&amp;rsquo;s Update. In this blog post, I&amp;rsquo;m going to show you how to build your own 3D app launcher from scratch (accompanying YouTube tutorial video embedded below).&lt;/p&gt;&#10;&lt;p&gt;What is a 3D app launcher?&lt;/p&gt;&#10;&lt;h2 id="app-launchers"&gt;App Launchers&lt;/h2&gt;&#10;&lt;p&gt;Up until now, you&amp;rsquo;ve only been able to have a regular 2D tile in the Start menu and the user could place a 2D frame of your app on a surface in the Cliff House (the Mixed Reality home) or on a surface in your HoloLens mapped area. Clicking the app frame would launch the app in the same frame.&lt;/p&gt;</description></item><item><title>"Cannot download Windows Mixed Reality software" error fix!</title><link>/en/blog/2017.08.03-cannot-download-windows-mixed-reality-software-error-fix/</link><pubDate>Thu, 03 Aug 2017 00:00:00 +0000</pubDate><guid>/en/blog/2017.08.03-cannot-download-windows-mixed-reality-software-error-fix/</guid><description>&lt;p&gt;Did you just get a new Mixed Reality headset? Were you so excited that you ripped open the box and plugged it in only to to find that after setting up  your floor and boundaries that you got the following error:&lt;/p&gt;&#10;&lt;h3 id="cannot-download-windows-mixed-reality-software"&gt;&lt;strong&gt;Cannot download Windows Mixed Reality software&lt;/strong&gt;&lt;/h3&gt;&#10;&lt;p&gt;Screeching halt!&lt;/p&gt;&#10;&lt;p&gt;I spent a lot of time digging around the Hololens forums and long conversations on the Holodevelopers Slack and it seemed there was a wide variety of reason for this. However, after looking at my Developer Mode settings page (in Windows Settings), there was an incomplete dev package installation.&lt;/p&gt;</description></item><item><title>Easy XamlCompositionBrushBase</title><link>/en/blog/2017.06.18-easy-xamlcompositionbrushbase/</link><pubDate>Sun, 18 Jun 2017 00:00:00 +0000</pubDate><guid>/en/blog/2017.06.18-easy-xamlcompositionbrushbase/</guid><description>&lt;p&gt;The upcoming Windows 10 update, the Fall Creator&amp;rsquo;s Update, introduces a new design system, &lt;a href="http://fluent.microsoft.com/" target="_blank" rel="noopener"&gt;Microsoft Fluent Design System&lt;/a&gt;&#10;. The design system has 5 major building blocks:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Light&lt;/li&gt;&#10;&lt;li&gt;Depth&lt;/li&gt;&#10;&lt;li&gt;Motion&lt;/li&gt;&#10;&lt;li&gt;Material&lt;/li&gt;&#10;&lt;li&gt;Scale&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;You can use any of these in a multitude of ways, however Microsoft has made it very easy to use in the latest Preview SDK (16190). Some of the things that used to be relatively hard, or at the least verbose, can now be done with a few lines of code.&lt;/p&gt;</description></item><item><title>Smart Shades with Windows IoT 1</title><link>/en/blog/2017.02.14-smart-shades-with-windows-iot-1/</link><pubDate>Tue, 14 Feb 2017 00:00:00 +0000</pubDate><guid>/en/blog/2017.02.14-smart-shades-with-windows-iot-1/</guid><description>&lt;p&gt;I wanted to be able to have my office shades go up or down automatically, depending on the amount of light outside. Then I thought, why not take it to the next level with &lt;strong&gt;Windows IoT?&lt;/strong&gt;  I could design a UI with the help of &lt;a href="https://github.com/telerik/ui-for-uwp" target="_blank" rel="noopener"&gt;the recently open-sourced&lt;/a&gt;&#10; &lt;strong&gt;Telerik UI for UWP&lt;/strong&gt; and also leverage a FEZ HAT&amp;rsquo;s &amp;amp; Raspberry Pi 3 to drive the motors, detect light levels and temperature.&lt;/p&gt;</description></item><item><title>Manipulation is easier than you think</title><link>/en/blog/2017.01.10-manipulation-is-easier-than-you-think/</link><pubDate>Tue, 10 Jan 2017 00:00:00 +0000</pubDate><guid>/en/blog/2017.01.10-manipulation-is-easier-than-you-think/</guid><description>&lt;p&gt;You know that bottom drawer on the Windows 10 navigation app where the upcoming turns are in a list? You know how you can drag it up or down to show more or less of the content? Want to learn how to create it? You&amp;rsquo;re in luck because that&amp;rsquo;s what today&amp;rsquo;s topic is!&lt;/p&gt;&#10;&lt;p&gt;Here&amp;rsquo;s the result of what you&amp;rsquo;ll be able to do:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="../../../en/blog/2017.01.10-manipulation-is-easier-than-you-think/navdrawer.gif" alt="navdrawer"&gt;&lt;/p&gt;&#10;&lt;h3 id="the-approach"&gt;The Approach&lt;/h3&gt;&#10;&lt;p&gt;Let&amp;rsquo;s get started. Since there are no built-in controls that do this, we&amp;rsquo;ll create a simple layout (links to source code at the end of the article).&lt;/p&gt;</description></item><item><title>Surface Dial and Real-Time Video Effects</title><link>/en/blog/2016.11.11-surface-dial-and-real-time-video-effects/</link><pubDate>Fri, 11 Nov 2016 00:00:00 +0000</pubDate><guid>/en/blog/2016.11.11-surface-dial-and-real-time-video-effects/</guid><description>&lt;p&gt;I was given a Surface Dial the other day and I thought &amp;ldquo;what can I do with this to create a better experience for the user&amp;rdquo;. One thing came right to mind, applying real-time video effects.&lt;/p&gt;&#10;&lt;p&gt;I have a UWP app in the Windows Store, &lt;a href="https://www.microsoft.com/store/apps/9wzdncrdmgbf" target="_blank" rel="noopener"&gt;Video Diary&lt;/a&gt;&#10;, where you can apply real-time video effects while recording a video. One of the features of these effects is to increase or decrease the video effect&amp;rsquo;s properties. For example, the intensity of a Vignette effect, here&amp;rsquo;s what I want:&lt;/p&gt;</description></item><item><title>Build A Custom Win2D RadImageEditor Tool</title><link>/en/blog/2016.02.19-build-a-custom-win2d-radimageeditor-tool/</link><pubDate>Fri, 19 Feb 2016 00:00:00 +0000</pubDate><guid>/en/blog/2016.02.19-build-a-custom-win2d-radimageeditor-tool/</guid><description>&lt;p&gt;Telerik has recently ported the &lt;a href="http://docs.telerik.com/windows-universal/controls/radimageeditor/imageeditor-visual-structure" target="_blank" rel="noopener"&gt;RadImageEditor&lt;/a&gt;&#10; to &lt;strong&gt;Windows Universal&lt;/strong&gt; (8.1 Universal right now, UWP is coming very soon). It is &lt;em&gt;powerful&lt;/em&gt; for something that only needs a few lines of code to use the 20 predefined tools.&lt;/p&gt;&#10;&lt;p&gt;But what if you wanted something not in those 20? Or what if you didn&amp;rsquo;t want to have a dependency on the Lumia Imaging SDK (needed for the built-in tools)?&lt;/p&gt;&#10;&lt;p&gt;One great features of RadImageEditor is the ability to make a custom tool, tool group or layer. Today I&amp;rsquo;ll show you how to create a Win2D tool group and add a custom GaussianBlurTool.&lt;/p&gt;</description></item><item><title>Sending Image Data with parameter using HttpClient Post</title><link>/en/blog/2016.01.12-sending-image-data-with-parameter-using-httpclient-post/</link><pubDate>Tue, 12 Jan 2016 00:00:00 +0000</pubDate><guid>/en/blog/2016.01.12-sending-image-data-with-parameter-using-httpclient-post/</guid><description>&lt;p&gt;I recently needed to send image data to a server for processing and thought I&amp;rsquo;d share how to do that using System.Net.Http.&lt;strong&gt;HttpClient&lt;/strong&gt; in a UWP (Universal Windows) app. First, let&amp;rsquo;s start with the API&amp;rsquo;s requirements, it states:&lt;/p&gt;&#10;&lt;p&gt;Parameter: &lt;strong&gt;image&lt;/strong&gt; - The image parameter should be the binary file data for the image you would like analyzed (PNG, GIF, JPG only). Files cannot be larger than 500k.&lt;/p&gt;&#10;&lt;p&gt;So that means I have to send image data as binary data with the parameter &lt;strong&gt;image&lt;/strong&gt;. I can use System.Net.Http.&lt;strong&gt;ByteArrayContent&lt;/strong&gt; for the image data. To get the image data from the file as a &lt;code&gt;byte[]&lt;/code&gt; the approach I use is the following (there are other ways to do this):&lt;/p&gt;</description></item><item><title>Reward your users for feedback and bug reports</title><link>/en/blog/2015.10.14-reward-your-users-for-feedback-and-bug-reports/</link><pubDate>Wed, 14 Oct 2015 00:00:00 +0000</pubDate><guid>/en/blog/2015.10.14-reward-your-users-for-feedback-and-bug-reports/</guid><description>&lt;p&gt;One of the new features of DevCenter is the ability to generate &lt;strong&gt;Promotional Codes&lt;/strong&gt; for your app. With this new ability, I&amp;rsquo;ve started rewarding my users for taking the time to make the app better.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s be specific so that you know exactly what &amp;rsquo;m talking about. I have a relatively popular app in the store and get all sorts of feedback, crazy nonsense and helpful alike. For those users whom send in a helpful bug report or would get the following email from me:&lt;/p&gt;</description></item><item><title>Telerik Universal on Raspberry Pi2</title><link>/en/blog/2015.06.30-telerik-universal-on-raspberry-pi2/</link><pubDate>Thu, 30 Jul 2015 00:00:00 +0000</pubDate><guid>/en/blog/2015.06.30-telerik-universal-on-raspberry-pi2/</guid><description>&lt;p&gt;Most people think of IoT (Internet of Things) as a collection of tiny brains, without user interfaces, collecting data. Some think it&amp;rsquo;s &lt;a href="http://www.ipetcompanion.com/" target="_blank" rel="noopener"&gt;a remote controlled animal shelter cat toy&lt;/a&gt;&#10; or a &lt;a href="https://en.wikipedia.org/wiki/Deadblow" target="_blank" rel="noopener"&gt;Grant Imahara style robot&lt;/a&gt;&#10; to do battle. The truth is that IoT is a very broad term, it covers many types of devices, including remote cat toys!&lt;/p&gt;&#10;&lt;p&gt;Here&amp;rsquo;s a Vine of what Windows IoT means to me&amp;hellip; &lt;strong&gt;Telerik UI on IoT&lt;/strong&gt;! This post is a overview tutorial, &lt;strong&gt;&lt;a href="https://github.com/LanceMcCarthy/TelerikOnWindowsIoT" target="_blank" rel="noopener"&gt;find the full source code on GitHub&lt;/a&gt;&#10;.&lt;/strong&gt; (#bananaForScale)&lt;/p&gt;</description></item></channel></rss>