<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bruno Sonnino</title>
	<atom:link href="https://blogs.msmvps.com/bsonnino/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.msmvps.com/bsonnino</link>
	<description>Thoughts about Development</description>
	<lastBuildDate>Mon, 09 Oct 2023 22:20:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.2</generator>
	<item>
		<title>OpenFolderDialog in WPF</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/10/09/openfolderdialog-in-wpf/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/10/09/openfolderdialog-in-wpf/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Mon, 09 Oct 2023 18:16:56 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3052</guid>

					<description><![CDATA[One feature that was missing in WPF was the OpenFolderDialog. To circumvent the lack of something to select a folder, there were some methods, but none of them were optimal: Use Windows Forms, which required to add the System.Windows.Forms package Use Win32 API, using P/Invoke or COM interfaces Use a third party component Version after <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/10/09/openfolderdialog-in-wpf/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/10/09/openfolderdialog-in-wpf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Implementing Authentication in Minimal API endpoints</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/08/12/implementing-authentication-in-minimal-api-endpoints/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/08/12/implementing-authentication-in-minimal-api-endpoints/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 12 Aug 2023 08:17:32 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[asp.NET]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3041</guid>

					<description><![CDATA[Some time ago, I wrote this article about creating a Minimal API CRUD using Entity Framework. That project worked fine, but something was missing: Authentication and Authorization. When dealing with an API that can access sensitive data, it&#8217;s crucial to restrict access to ensure that only authorized users can access it. We will take on <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/08/12/implementing-authentication-in-minimal-api-endpoints/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/08/12/implementing-authentication-in-minimal-api-endpoints/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Using C# source generation for enhanced logging</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/07/29/using-c-source-generation-for-enhanced-logging/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/07/29/using-c-source-generation-for-enhanced-logging/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 29 Jul 2023 05:21:34 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3026</guid>

					<description><![CDATA[In the last article, I wrote about logging in C# and how to use log formatters to suit your needs. Once you start adding logs to your applications, you start to notice there is too much info that you must add to every message: the event id, level, scopes, besides the message (which you can <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/07/29/using-c-source-generation-for-enhanced-logging/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/07/29/using-c-source-generation-for-enhanced-logging/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Log Formatters in C#</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/07/17/log-formatters-in-c/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/07/17/log-formatters-in-c/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Mon, 17 Jul 2023 08:25:30 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2995</guid>

					<description><![CDATA[Introduction Logging is an essential aspect of software development that enables us to track and understand the behavior of our applications. In fact, there are many logging frameworks to help with this task. In this post, I&#8217;ve shown how to use Serilog to generate structured logging. In .NET 5.0, Microsoft introduced a new feature for <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/07/17/log-formatters-in-c/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/07/17/log-formatters-in-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>C# Source Code Generators</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/06/11/c-source-code-generators/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/06/11/c-source-code-generators/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sun, 11 Jun 2023 06:06:54 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Source Code Generators]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3011</guid>

					<description><![CDATA[C# 9 introduced a new feature that allows you to inspect user code as it is being compiled and generate new C# source files that are added to the compilation. This enables you to write code that runs during compilation and produces additional source code based on the analysis of your program. In this blog <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/06/11/c-source-code-generators/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/06/11/c-source-code-generators/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating RESTful APIs with Minimal APIs and Entity Framework Core in ASP.NET</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/06/04/creating-restful-apis-with-minimal-apis-and-entity-framework-core-in-asp-net/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/06/04/creating-restful-apis-with-minimal-apis-and-entity-framework-core-in-asp-net/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sun, 04 Jun 2023 10:47:13 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Minimal API]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3005</guid>

					<description><![CDATA[Introduction Some time ago, I wrote this article about FeatherHTTP. Things have evolved since then and, in .NET 6, Microsoft introduced a new approach called &#34;Minimal APIs&#34; which simplifies the process of build RESTful APIs. This article will guide you through the process of creating RESTful APIs using Minimal APIs in ASP.NET, highlighting its simplicity <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/06/04/creating-restful-apis-with-minimal-apis-and-entity-framework-core-in-asp-net/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/06/04/creating-restful-apis-with-minimal-apis-and-entity-framework-core-in-asp-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating OpenXml files with the OpenXml SDK</title>
		<link>https://blogs.msmvps.com/bsonnino/2023/05/27/creating-openxml-files-with-the-openxml-sdk/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2023/05/27/creating-openxml-files-with-the-openxml-sdk/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 27 May 2023 09:37:16 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenXML]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=3020</guid>

					<description><![CDATA[Some time ago I wrote a blog post on Creating OpenXml files with Delphi. It showed how to open and create Word files using Delphi by using only a Zip and an Xml component. There, I showed the structure of an OpenXml file: a zip file with a folder structure and a bunch of xml <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2023/05/27/creating-openxml-files-with-the-openxml-sdk/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2023/05/27/creating-openxml-files-with-the-openxml-sdk/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Making your WPF app cross platform with Avalonia UI</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/11/19/making-your-wpf-app-cross-platform-with-avalonia-ui/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/11/19/making-your-wpf-app-cross-platform-with-avalonia-ui/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 19 Nov 2022 08:46:47 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Avalonia]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2954</guid>

					<description><![CDATA[One advantage of the new .NET Core (now .NET) apps is that they are cross platform. Once you create an app, the same code will run on Windows, Mac or Linux with no change. But there are some exceptions to this: WPF or WinForms apps are only for Windows. You cannot create a WPF app <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/11/19/making-your-wpf-app-cross-platform-with-avalonia-ui/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/11/19/making-your-wpf-app-cross-platform-with-avalonia-ui/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aspect Oriented Programming with DispatchProxy</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/10/29/aspect-oriented-programming-with-dispatchproxy/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/10/29/aspect-oriented-programming-with-dispatchproxy/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 29 Oct 2022 08:22:45 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2940</guid>

					<description><![CDATA[Sometime ago, I wrote this article for the MSDN Magazine, about Aspect Oriented Programming and how it could solve cross-cutting concerns in your application, like: Authentication Logging Data audit Data validation Data caching Performance measuring The article shows how to use the Decorator pattern and the RealProxy class to create a Dynamic Proxy to solve <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/10/29/aspect-oriented-programming-with-dispatchproxy/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/10/29/aspect-oriented-programming-with-dispatchproxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Storing values in the Secret Manager tool</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/10/02/storing-values-in-the-secret-manager-tool/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/10/02/storing-values-in-the-secret-manager-tool/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sun, 02 Oct 2022 11:59:34 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2930</guid>

					<description><![CDATA[When you are developing a new project and need to store settings for it, the first thing that comes to mind is to use the Appsettings.json file. With this file, you can store all settings in a single file and restore them easily. For example, let&#8217;s create a console project that has three settings: Id, <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/10/02/storing-values-in-the-secret-manager-tool/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/10/02/storing-values-in-the-secret-manager-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Deleting large emails in GMail with the GMail API</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/10/01/deleting-large-emails-in-gmail-with-the-gmail-api/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/10/01/deleting-large-emails-in-gmail-with-the-gmail-api/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 01 Oct 2022 08:39:51 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Gmail API]]></category>
		<category><![CDATA[UWP]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2925</guid>

					<description><![CDATA[Introduction I am a long time user of Gmail, and I usually don&#8217;t delete any email, I just archive the emails after reading and processing them, to keep my inbox clean. Last week, I got a notice from Gmail that I was reaching the 15GB free limit and, in order to continue receiving emails, I <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/10/01/deleting-large-emails-in-gmail-with-the-gmail-api/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/10/01/deleting-large-emails-in-gmail-with-the-gmail-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enumerating Displays in WPF with High DPI</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/09/10/enumerating-displays-in-wpf-with-high-dpi/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/09/10/enumerating-displays-in-wpf-with-high-dpi/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 10 Sep 2022 16:21:16 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2912</guid>

					<description><![CDATA[Sometimes, we need to get our display disposition to position windows on them in specific places. The usual way to do it in .NET is to use the Screen class, with a code like this one: internal record Rect(int X, int Y, int Width, int Height); internal record Display(string DeviceName, Rect Bounds, Rect WorkingArea, double <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/09/10/enumerating-displays-in-wpf-with-high-dpi/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/09/10/enumerating-displays-in-wpf-with-high-dpi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Decoupling ViewModels in MVVM with the MVVM Toolkit Messenger</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/08/27/decoupling-viewmodels-in-mvvm-with-the-mvvm-toolkit-messenger/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/08/27/decoupling-viewmodels-in-mvvm-with-the-mvvm-toolkit-messenger/#comments</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 27 Aug 2022 08:52:30 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2905</guid>

					<description><![CDATA[When you are using the MVVM pattern, at some time, you have to send data between ViewModels. For example, a detail ViewModel must tell the collection ViewModel that the current item should be deleted, or when you have a main view that opens details views and keeps track of them and must be acknowledged of <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/08/27/decoupling-viewmodels-in-mvvm-with-the-mvvm-toolkit-messenger/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/08/27/decoupling-viewmodels-in-mvvm-with-the-mvvm-toolkit-messenger/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Troubles with converters and x:Bind in UWP</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/08/13/troubles-with-converters-and-xbind-in-uwp/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/08/13/troubles-with-converters-and-xbind-in-uwp/#comments</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 13 Aug 2022 17:05:24 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[UWP]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2897</guid>

					<description><![CDATA[I was working with the WPF project, converted to UWP in this article, in order to check usage of the new MVVM toolkit, explained in my last article and use the bindings with x:Bind, that are not supported in WPF (in fact, they are, but not natively. You can add the CompiledBindings.WPF package to your <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/08/13/troubles-with-converters-and-xbind-in-uwp/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/08/13/troubles-with-converters-and-xbind-in-uwp/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>The MVVM Pattern revisited with the MVVM Community Toolkit 8.0</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/08/06/the-mvvm-pattern-revisited-with-the-mvvm-community-toolkit-8-0/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/08/06/the-mvvm-pattern-revisited-with-the-mvvm-community-toolkit-8-0/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 06 Aug 2022 15:33:31 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2885</guid>

					<description><![CDATA[Sometime ago, I&#8217;ve written this article introducing the MVVM Community Toolkit and developing a CRUD application to show how to use the MVVM pattern with the Community toolkit. The time has passed and version 8.0 of the MVVM Community toolkit has been released and, with it, a rewrite using incremental generators. This may seem a <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/08/06/the-mvvm-pattern-revisited-with-the-mvvm-community-toolkit-8-0/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/08/06/the-mvvm-pattern-revisited-with-the-mvvm-community-toolkit-8-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IEnumerable Visualizer in Visual Studio</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/06/04/ienumerable-visualizer-in-visual-studio/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/06/04/ienumerable-visualizer-in-visual-studio/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 04 Jun 2022 13:12:56 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2867</guid>

					<description><![CDATA[One thing that bothers me when debugging an app in Visual Studio is to get the values of an IEnumerable. For example, when you have a code like this one: var people = new List&#60;Person&#62;(); for (int i = 1; i &#60;= 100; i++) { people.Add(new Person { Name = $"Name {i}", Address = $"Address <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/06/04/ienumerable-visualizer-in-visual-studio/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/06/04/ienumerable-visualizer-in-visual-studio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Porting your WPF application to the web with Uno Platform</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/04/27/porting-your-wpf-application-to-the-web-with-uno-platform/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/04/27/porting-your-wpf-application-to-the-web-with-uno-platform/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Wed, 27 Apr 2022 16:24:39 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Uno]]></category>
		<category><![CDATA[UWP]]></category>
		<category><![CDATA[XAML]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2863</guid>

					<description><![CDATA[Nowadays, a very common scenario is that you have your WPF app ready and running for some time, and your boss tells you that it&#8217;s time to go further and port this app to the web, to have a larger market and be run in multiple platforms. This is not a simple thing, because WPF <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/04/27/porting-your-wpf-application-to-the-web-with-uno-platform/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/04/27/porting-your-wpf-application-to-the-web-with-uno-platform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Getting Disk information in Windows with C#</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/04/08/getting-disk-information-in-windows-with-c/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/04/08/getting-disk-information-in-windows-with-c/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 08 Apr 2022 08:30:34 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WMI]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2844</guid>

					<description><![CDATA[There are some times when you need to get the disk information in your system, to check what&#8217;s happening, for inventory check, or even to know the free and available space. Getting the free and available space is fairly easy in .NET, just use the GetDrives method of the DriveInfo class: DriveInfo[] drives = DriveInfo.GetDrives(); <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/04/08/getting-disk-information-in-windows-with-c/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/04/08/getting-disk-information-in-windows-with-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>No Code font tester in WPF</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/03/18/no-code-font-tester-in-wpf/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/03/18/no-code-font-tester-in-wpf/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 18 Mar 2022 08:27:18 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2837</guid>

					<description><![CDATA[There are some times when we want to check all installed fonts in the system and test a phrase to check how does it show in the display at some size. There are many utilities for that, but it&#8217;s always better (and most satisfying) to build your own. And, even better, you can do it <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/03/18/no-code-font-tester-in-wpf/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/03/18/no-code-font-tester-in-wpf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Developing for Linux in Windows with C#</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/02/25/developing-for-linux-in-windows-with-c/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/02/25/developing-for-linux-in-windows-with-c/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 25 Feb 2022 21:56:39 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[WSL]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2809</guid>

					<description><![CDATA[Once there was a time where Microsoft and Linux were enemies and who was developing in Windows didn&#8217;t develop for Linux and vice-versa. Time has passed and things have changed. And how they have changed! Multi-platform development has evolved, Microsoft released .NET open source, and you can run it both on Linux and Mac (besides <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/02/25/developing-for-linux-in-windows-with-c/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/02/25/developing-for-linux-in-windows-with-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating a VS Code Extension</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/02/25/creating-a-vs-code-extension/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/02/25/creating-a-vs-code-extension/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 25 Feb 2022 12:56:51 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[VS Code]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2796</guid>

					<description><![CDATA[Visual Studio Code is a free, multi-platform IDE and has multiple features, like multi-language support, syntax, highlighting, Git integration, among others. It&#8217;s open source and can be downloaded here. One thing that contributes to its success is the fact that anyone can develop an extension for it and add new features to it. In fact, <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/02/25/creating-a-vs-code-extension/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/02/25/creating-a-vs-code-extension/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Interactive Notebooks with C#</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/02/11/interactive-notebooks-with-c/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/02/11/interactive-notebooks-with-c/#comments</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 11 Feb 2022 12:03:19 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2786</guid>

					<description><![CDATA[Sometime ago I posted an article about Dotnet Try. This is a wonderful tool to document your code but, since then, a lot has changed. .NET 6  and C#10 are here, Visual Studio Code is a nice environment for editing your code, and you can even edit your code in  the web. And a new <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/02/11/interactive-notebooks-with-c/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/02/11/interactive-notebooks-with-c/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Linq improvements in .NET 6</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/01/28/linq-improvements-in-net-6/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/01/28/linq-improvements-in-net-6/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 28 Jan 2022 19:42:51 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Linq]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2778</guid>

					<description><![CDATA[A nice improvement in .NET is the introduction of LINQ, in .NET 4.5. With that, working with data was simplified a lot and, when I go to a language that doesn&#8217;t have something like it, I feel lost (having to deal with for and foreach became painful for me :-). The features available in LINQ made my <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/01/28/linq-improvements-in-net-6/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/01/28/linq-improvements-in-net-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Upgrading your .NET application to .NET 6 using the .NET Upgrade assistant</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/01/14/upgrading-your-net-application-to-net-6-using-the-net-upgrade-assistant/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/01/14/upgrading-your-net-application-to-net-6-using-the-net-upgrade-assistant/#comments</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Fri, 14 Jan 2022 12:24:14 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2760</guid>

					<description><![CDATA[You have an old .NET app and would like to upgrade to .NET 6, to be up-to date with the latest features and go forward with the app. Every time you think about it, you notice that you have no time to do it and there are more important things to do. And you see <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/01/14/upgrading-your-net-application-to-net-6-using-the-net-upgrade-assistant/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/01/14/upgrading-your-net-application-to-net-6-using-the-net-upgrade-assistant/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Transforming your Asp.Net Core MVC app to native with Electron</title>
		<link>https://blogs.msmvps.com/bsonnino/2022/01/01/transforming-your-asp-net-core-mvc-app-to-native-with-electron/</link>
					<comments>https://blogs.msmvps.com/bsonnino/2022/01/01/transforming-your-asp-net-core-mvc-app-to-native-with-electron/#respond</comments>
		
		<dc:creator><![CDATA[bsonnino]]></dc:creator>
		<pubDate>Sat, 01 Jan 2022 18:02:24 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[asp.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Electron]]></category>
		<guid isPermaLink="false">https://blogs.msmvps.com/bsonnino/?p=2734</guid>

					<description><![CDATA[In the last post I showed how to transform your Asp.Net Core MVC app into a PWA, thus allowing to install it and access the OS features. We can go a step further and transform it into a native app, using Electron. You may ask &#8220;Electron, what&#8217;s it ? I&#8217;ve never heard of it&#8221;. You <span class="ellipsis">&#8230;</span> <span class="more-link-wrap"><a href="https://blogs.msmvps.com/bsonnino/2022/01/01/transforming-your-asp-net-core-mvc-app-to-native-with-electron/" class="more-link"><span>Read More &#8594;</span></a></span>]]></description>
		
					<wfw:commentRss>https://blogs.msmvps.com/bsonnino/2022/01/01/transforming-your-asp-net-core-mvc-app-to-native-with-electron/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
