# Code Traveler > Stories from a traveling developer Public Ghost content for AI and LLM tooling. Use `/llms-full.txt` for consolidated page and post context. Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`). ## Pages - [About Code Traveler](https://codetraveler.io/about.md) - The Code Traveler blog is written and maintained by Brandon Minnick. It combines Brandon's love for travel with his love for code. - [Correcting Common .NET Async/Await Mistakes](https://codetraveler.io/boeing-asyncawait.md) - Boeing .NET Community of Practice Slides * https://www.slideshare.net/secret/K962YxX2cGR0W7 [https://www.slideshare.net/secret/mfyU8Gy6YTazHv] [https://www.slideshare.net/secret/K962YxX2cGR0W7] Recording * https://www.youtube.com/watch?v=J0mcYVxJEl0 Source Code * Hacker News [https://github.com/brm… - [Correcting Common Async/Await Mistakes in .NET](https://codetraveler.io/devday-2018.md) - DevDay 2018 [https://www.devday.be/session/32/correcting-common-async-await-mistakes] Slides * https://www.slideshare.net/secret/8J3JW1GZyofUDS Recording * https://www.youtube.com/watch?v=J0mcYVxJEl0 Source Code * Hacker News [https://github.com/brminnick/AsyncAwaitBestPractices] * Xamarin App for… - [Correcting Common Async/Await Mistakes in .NET](https://codetraveler.io/devfestweekend-asyncawait.md) - Dev Fest Weekend 2018 https://www.devfestweekend.com/ Recording * https://www.youtube.com/watch?v=J0mcYVxJEl0 Slides * https://www.slideshare.net/secret/zUpGE9ChK9LRNq Demo App * Hacker News [https://github.com/brminnick/AsyncAwaitBestPractices] Additional Learning * Asynchronous Programming in .NE… - [Dutch Mobile .Net Meetup, Q4 2018](https://codetraveler.io/dutch-mobile-2018.md) - 06 Dec 2018 https://www.meetup.com/Dutch-Mobile-NET-Developers-Group/events/246861739/ AI / Cognitive Services * Cognitive Services Docs [https://azure.microsoft.com/services/cognitive-services/?WT.mc_id=DutchMobileDotNetMeetup-CodeTraveler-bramin] * Text Analytics API [https://azure.microsoft.com/… - [Upgrading Your Apps with AI, Using Google Cloud](https://codetraveler.io/googlecloudai.md) - 25 June 2018 Slides https://www.slideshare.net/secret/FHnz68h5AIHaFP Google Cloud AI Links * Google Cloud AI [https://cloud.google.com/products/machine-learning/] * Cloud Vision API [https://cloud.google.com/vision/] for Emotion Detection * Natural Language API [https://cloud.google.com/natural-lan… - [Upgrading Your Apps with Cognitive Services](https://codetraveler.io/innovationwebinar.md) - Innovation Webinar, September 2018 Slides https://www.slideshare.net/secret/40DsuYZ2963TWx Resources * $200 Free Azure Credit [https://azure.microsoft.com/free/ai/?WT.mc_id=Ready-CodeTraveler-bramin] * Cognitive Services Docs [https://azure.microsoft.com/services/cognitive-services/?WT.mc_id=Ready-… - [Xamarin, Azure API & Cosmos DB](https://codetraveler.io/madn-2018.md) - Nov 29, 2018 MADN Belgium [https://madn.be] Connect on Twitter: @TheCodeTraveler [https://twitter.com/TheCodeTraveler] Sample Apps * XamList [https://github.com/brminnick/XamList] * Azure Functions * Azure SQL Database * Azure Web API Apps * Xamarin.Forms * CosmosDbSampleApp [https://github.com/brm… - [Upgrade Your Apps With AI, Using Cognitive Services](https://codetraveler.io/mdevcamp2018.md) - mDevCamp, 15 June 2018 https://mdevcamp.eu Recording https://slideslive.com/38908247/upgrade-your-apps-with-ai-using-cognitive-services Cognitive Services Links * Free $200 Azure Credit [https://azure.microsoft.com/free/ai/?WT.mc_id=mDevCamp-CodeTraveler-bramin] * Cognitive Services Docs [https://a… - [Correcting Common Async/Await Mistakes in .NET](https://codetraveler.io/ndcsydney-2018-asyncawait.md) - NDC Sydney 2018 https://ndcsydney.com/speaker/brandon-minnick/ Recording (Updated from NDC Oslo 2019) * https://www.youtube.com/watch?v=J0mcYVxJEl0 Slides * https://www.slideshare.net/secret/18GQCQQwomqgAA Demo App * Hacker News [https://github.com/brminnick/AsyncAwaitBestPractices] Additional Lear… - [Easily Add Artificial Intelligence To Your Apps](https://codetraveler.io/ndcsydney2018.md) - https://ndcsydney.com/speaker/brandon-minnick/ Recording https://www.youtube.com/watch?v=OWdNKrPjbo8 Slides https://www.slideshare.net/secret/w68fwYmOM76TP Azure Resources * $200 Free Azure Credit [https://azure.microsoft.com/free/ai/?WT.mc_id=NDCSydney-CodeTraveler-bramin] * Cognitive Services Doc… - [Easily Add Artificial Intelligence To Your Apps](https://codetraveler.io/oop2019.md) - https://www.oop-konferenz.de/oop2019/ [https://www.oop-konferenz.de/oop2019/startseite-englisch/program/sessiondetails/action/detail/session/di-51-4/title/upgrade-your-apps-using-machine-learning-as-a-service.html?tx_dmconferences_session%5BshowRooms%5D=0&cHash=6a7ddf61cb972a2f531b0bbeff38d4fb] Sli… - [What’s New in Tizen .NET?](https://codetraveler.io/sdc-tizen-net.md) - Samsung Developer Conference, November 2018 Recording https://www.youtube.com/watch?v=eHyHHoK2vuo Slides * Native Apps with .NET + Xamarin.Forms [https://www.slideshare.net/secret/xVQ8cB1jQZqdr0] * What's New in Tizen .NET [https://www.slideshare.net/secret/2RfI9tUxxBO3Tw] Learn More * Tizen .NET D… - [Speaking](https://codetraveler.io/speaking.md) - I love to meet fellow developers around the world and geek out about code, and I'd love to join you at your event! Brandon.Minnick@Microsoft.com Upcoming Events * September 2019 * TechoramaNL * https://www.techorama.nl/speakers/ * October 2019 * VSLive Chicago * https://vslive.com/Events/Chicago-20… - [Correcting Common Mistakes When Using Async/Await in .NET](https://codetraveler.io/that-2018-asyncawait.md) - THAT Conference, 06 August 2018 https://www.thatconference.com/speakers/speaker/bminnick Recording * https://www.youtube.com/watch?v=J0mcYVxJEl0 Slides * https://www.slideshare.net/secret/Ehp0RSBb51NcVK Demo App * Hacker News [https://github.com/brminnick/AsyncAwaitBestPractices] Additional Learnin… - [Correcting Common Async/Await Mistakes in .NET](https://codetraveler.io/update-2018.md) - UPDATE Prague, 2018 https://www.updateconference.net/speaker/brandon-minnick Recording * https://www.youtube.com/watch?v=J0mcYVxJEl0 Slides * https://www.slideshare.net/secret/K962YxX2cGR0W7 Source Code * Hacker News [https://github.com/brminnick/AsyncAwaitBestPractices] NuGet Packages * AsyncAwait… - [Implementing Cognitive Services using Xamarin](https://codetraveler.io/vegasready2018.md) - Microsoft Ready, Vegas 2018 Recording https://content.microsoftready.com/FY19Q1/session/DAI-AAI310 Slides https://www.slideshare.net/secret/lyNyYDTwtv4BmG Resources * $200 Free Azure Credit [https://azure.microsoft.com/free/ai/?WT.mc_id=Ready-CodeTraveler-bramin] * Cognitive Services Docs [https://… - [Visual Studio User Group Vien](https://codetraveler.io/vien-2018.md) - 19 Nov 2019 https://www.meetup.com/Visual-Studio-User-Group-Wien/events/254643214/ Slides * https://www.slideshare.net/secret/EGrHAWYLCiaSSE AI / Cognitive Services * Cognitive Services Docs [https://azure.microsoft.com/services/cognitive-services/?WT.mc_id=VisualStudioVien-CodeTraveler-bramin] * T… - [Intro to Xamarin](https://codetraveler.io/wvu-introtoxamarin.md) - WVU Guest Lecture, 30 October 2018 Xamarin Installation * Installation Walkthrough * PDF [https://github.com/xamarin/dev-days-labs/blob/master/Xamarin%20Workshop%20Setup.pdf] * Word Doc [https://onedrive.live.com/view.aspx?ref=button&Bsrc=SMIT&resid=FB0D8F97004979CD!805726&cid=fb0d8f97004979cd&app=… - [Xamarin + IoT Workshop, SF](https://codetraveler.io/xamariniotworkshopsf.md) - @ The Microsoft Reactor SF https://developer.microsoft.com/reactor/ [https://developer.microsoft.com/reactor/?WT.mc_id=XamarinIoTWorkshop-CodeTraveler-bramin] Walkthrough + Source Code https://github.com/brminnick/XamarinIoTWorkshop Slides * Intro to Xamarin [https://www.slideshare.net/secret/LNx8F… ## Posts - [Connecting to Any OpenAI-Compatible Endpoint with `Microsoft.Extensions.AI.OpenAI`](https://codetraveler.io/2026/08/17/connecting-to-any-openai-compatible-endpoint-with-microsoft-extensions-ai-openai.md) - Did you know the Microsoft.Extensions.AI.OpenAI NuGet Package works with far more than just OpenAI? One adapter package unlocks every OpenAI-compatible endpoint on the internet — and even the ones on your laptop! This is Part 6 of our Microsoft.Extensions.AI series. We've already used this package… - [Evaluating AI Safety in .NET with `Microsoft.Extensions.AI.Evaluation.Safety`](https://codetraveler.io/2026/08/10/evaluating-ai-safety-in-net-with-microsoft-extensions-ai-evaluation-safety.md) - Last week we tested whether our LLM's answers were accurate. But are they safe for our company to use, responsing with no harmful content or violence? Microsoft.Extensions.AI.Evaluation.Safety makes it easy to check. This is Part 5 of our Microsoft.Extensions.AI series. In Part 4 we graded our LLM'… - [Unit Testing LLMs: Evaluating LLM Quality in .NET with `Microsoft.Extensions.AI.Evaluation`](https://codetraveler.io/2026/08/03/unit-testing-llms-evaluating-llm-quality-in-net-with-microsoft-extensions-ai-evaluation.md) - How do we unit test an LLM that never gives the same answer twice? Microsoft.Extensions.AI.Evaluation makes it easy. This is Part 4 of our Microsoft.Extensions.AI series. In Part 1 we built a chat app with IChatClient — but how do we know its answers are any good? This week, we'll write a unit test… - [Generating Images in .NET with `IImageGenerator`](https://codetraveler.io/2026/07/27/generating-images-in-net-with-iimagegenerator.md) - Did you know Microsoft.Extensions.AI can generate images too? IImageGenerator makes it easy! This is Part 3 of our Microsoft.Extensions.AI series. In Part 1 we created an AI Chat Bot with an LLM using IChatClient, and in Part 2 we built semantic search using IEmbeddingGenerator. This week, we're ge… - [Adding Semantic Search to .NET Apps with `IEmbeddingGenerator`](https://codetraveler.io/2026/07/20/adding-semantic-search-to-net-apps-with-iembeddinggenerator.md) - Have you ever typed "How do I get my money back?" into a search box and gotten zero results, because the docs only ever say "refund policy"? Embeddings fix this! And Microsoft.Extensions.AI makes it easy than ever to do. This is Part 2 of our Microsoft.Extensions.AI series. In Part 1, we used IChat… - [Creating an AI Chat Bot in .NET with `IChatClient`](https://codetraveler.io/2026/07/16/adding-ai-to-your-net-app-with-ichatclient.md) - Are you looking to implement AI in your .NET app? Microsoft.Extensions.AI makes it easy! This is the first post in a new series where we'll learn Microsoft.Extensions.AI together, one building block at a time. Let's start with the most important building block of them all, IChatClient! You're welco… - [Introducing Bindable Property Source Generators](https://codetraveler.io/2026/01/29/introducing-bindable-property-source-generators.md) - I am excited to announce two new source generators introduced in CommunityToolkit.Maui v14.0.0 : * [BindableProperty] * [AttachedBindableProperty] These new source generators make it easier than ever to create a BindableProperty in your .NET MAUI apps. In fact, all Bindable Properties in Communi… - [Introducing AWSSDK.Extensions.Bedrock.MEAI](https://codetraveler.io/2025/03/25/introducing-awssdk-extensions-bedrock-meai-2.md) - Are you looking to add GenAI functionality to your .NET app? AWSSDK.Extensions.Bedrock.MEAI makes it easy. Let's define what some of these words mean, then check out how to use this NuGet Package in our apps! You're also welcome to skip the definitions and jump directly to the code below. What is M… - [Upgrading from Xamarin.CommunityToolkit.Markup to CommunityToolkit.Maui.Markup](https://codetraveler.io/2024/07/29/upgrading-from-xamarin-communitytoolkit-markup-to-communitytoolkit-maui-markup.md) - In Xamarin.Forms, we used Xamarin.CommunityToolkit.Markup to create our UI using C# (no XAML). For .NET MAUI, we can continue to create our UIs in C# (No XAML) thanks to CommunityToolkit.Maui.Markup. Let's take a look at the key differences between the two libraries, and then we'll learn how to get… - [.NET MAUI Training Courses](https://codetraveler.io/2024/03/14/from-zero-to-hero-net-maui.md) - Two new training courses containing over 10 hours of video content and code examples to help you become a successful .NET MAUI developer! - [Supporting Android v12+ Splash Screens in Xamarin.Forms](https://codetraveler.io/2022/08/16/supporting-android-splash-screens-in-xamarin-forms.md) - Android recently changed how splash screens work in Android v12.0 (API Level 31). Let's take a look at how to support it in our Xamarin.Forms apps! - [Using .NET MAUI Community Toolkit](https://codetraveler.io/2021/10/18/using-net-maui-community-toolkit-2.md) - The .NET Community Toolkit recently debuted. Let's take a look at how to use some of it's features, and how we can contribute more! - [Creating Azure Functions using .NET 5](https://codetraveler.io/2021/05/28/creating-azure-functions-using-net-5.md) - Azure Functions recently released support for .NET 5. Let's take a look at how to upgrade our existing Azure Functions to use it! - [Upgrading to Refit v6.0 + Newtonsoft.Json](https://codetraveler.io/2021/02/17/upgrading-to-refit-v6-0.md) - Refit recently released v6.0, replacing Newtonsoft.Json with System.Text.Json which may cause some breaking changes. Let's discuss how we can continue using Newtonsoft.Json with Refit! - [Introducing GitHubApiStatus](https://codetraveler.io/2021/01/12/introducing-githubapistatus.md) - GitHub's API Rate Limits can be confusing and difficult to work with. This library makes it easy to check the rate limits with one line of code! - [Using Immutable Objects with SQLite-Net](https://codetraveler.io/2020/11/11/using-immutable-objects-with-sqlite-net.md) - SQLite-NET has become the most popular database, especially amongst Xamarin developers, but it hasn't supported Immutable Objects, until now! Thanks to Init-Only Properties in C#9.0, we can now use Immutable Objects with our SQLite database! - [Adding a Search Bar to Xamarin.Forms.NavigationPage](https://codetraveler.io/2020/10/31/adding-a-search-bar-to-xamarin-forms-navigationpage.md) - 31 Oct 2020 Update: Updated for AndroidX + Xamarin.Essentials Let's look at how to add the native search bar control into the Xamarin.Forms.NavigationPage Both Xamarin.iOS and Xamarin.Android offer the capability to natively add a search bar to the navigation bar using UISearchController and Search… - [Improving CollectionView Scrolling](https://codetraveler.io/2020/07/12/improving-collectionview-scrolling.md) - Sometimes scrolling a Xamarin.Forms.CollectionView (especially on Android) can be choppy. Let's take a look at how to fix it! - [Introducing GitTrends: GitHub Insights](https://codetraveler.io/2020/03/02/introducing-gittrends.md) - iOSAndroid [https://apps.apple.com/us/app/gittrends-github-insights/id1500300399] [https://play.google.com/store/apps/details?id=com.minnick.gittrends]I am so excited to release GitTrends on Product Hunt today! https://www.producthunt.com/posts/gittrends-github-insights GitTrends helps you to monit… - [Updating to Azure Functions v3 in Visual Studio](https://codetraveler.io/2020/02/12/visual-studio-for-mac-updating-to-azure-functions-v3.md) - Azure Functions v3 was recently released on 09 December 2019 [https://azure.microsoft.com/updates/announcing-go-live-release-for-azure-functions-v3?WT.mc_id=functionsv3-codetraveler-bramin] with support for .NET Core 3 [https://docs.microsoft.com/dotnet/core/whats-new/dotnet-core-3-0?WT.mc_id=funct… - [Xamarin: Efficiently Using a SQLite Database](https://codetraveler.io/2019/11/26/efficiently-initializing-sqlite-database.md) - The most popular SQLite ORM for Xamarin is SQLite-net. Let's explore the most efficient way to use it in our apps! If you'd like to skip to the completed code, jump to Section 9: Put It All Together. A completed sample app using this implementation is also available here: https://github.com/brminni… - [Xamarin.UITest: Is a ListView (or RefreshView) Refreshing?](https://codetraveler.io/2019/11/05/xamarin-uitest-determine-if-xamarin-forms-listview-is-refreshing.md) - Automated UITesting has become critical for publishing mobile apps and almost every Xamarin.Forms app has ListView. But how can we determine if our ListView is refreshing? Let's find out! - [Xamarin: Creating a Dark Mode Splash Screen](https://codetraveler.io/2019/10/11/creating-a-dark-mode-splash-screen.md) - Now that iOS 13 and Android Q support Dark Mode, we'll want our app's Splash Screen to be dark too. Let's explore how to create a Splash Screen that is dark when Dark Mode is enabled, but still light when Dark Mode is disabled! - [Version Conflict Detected for Xamarin.Android.Support](https://codetraveler.io/2019/10/08/xamarin-android-nuget-version-conflict-detected.md) - Both Xamarin.Forms and Xamarin.Essentials recently increased their Xamarin.Android.Support dependency to v28.0.0.3, and it might cause a weird error when updating NuGet Packages. Let's see how to fix it! - [Check for Dark Mode in Xamarin.Forms](https://codetraveler.io/2019/09/11/check-for-dark-mode-in-xamarin-forms.md) - Both iOS 13 and Android Q now let the user enable Dark Mode for the operating system. Let's explore how to check whether the user has enabled Dark Mode in our Xamarin.Forms apps. - [Making ObservableCollection Thread-Safe in Xamarin.Forms](https://codetraveler.io/2019/09/11/using-observablecollection-in-a-multi-threaded-xamarin-forms-application.md) - ObservableCollection is the recommended collection [https://docs.microsoft.com/xamarin/xamarin-forms/user-interface/listview/data-and-databinding?WT.mc_id=threadsafeobservablecollection-codetraveler-bramin] to use for ListViews, but it isn't thread safe. Let's explore how we can fix this and use it… - [Using Preview Versions of .NET Core with App Center Build](https://codetraveler.io/2019/08/23/using-preview-versions-of-net-core-with-app-center-build.md) - App Center is a great tool for building, testing, releasing and monitoring apps, but what if we want to use a preview version of .NET Core? - [Schedule Recurring Builds in App Center](https://codetraveler.io/2019/06/06/scheduling-app-center-builds.md) - Leverage an Azure Timer Function (a cron job in the cloud) to trigger a build every night in App Center Build - [Keeping up with Xamarin](https://codetraveler.io/2019/05/09/keeping-up-with-xamarin.md) - Tips and tricks to stay up-to-date with Xamarin, iOS, Android and .NET - [Using Postman with GraphQL APIs](https://codetraveler.io/2019/01/12/how-to-use-postman-with-a-graphql-api.md) - Using Postman to quickly and easily query GraphQL APIs - [Traveler: Los Angeles](https://codetraveler.io/2018/06/26/untitled.md) - Where am I? I am currently at the Andaz West Hollywood Hotel [https://westhollywood.andaz.hyatt.com/en/hotel/home.html] just outside of Los Angeles, California. I'm in town volunteering at Athena Hacks 2018 [http://athenahacks.com]. Athena Hacks is an incredible hackathon hosted by the University o… - [Walkthough: Creating UI Tests for Xamarin.Forms Apps, Part 2](https://codetraveler.io/2018/06/26/creating-ui-tests-for-xamarin-forms-apps-part-2.md) - In Part 1 [https://www.codetraveler.io/2018/05/22/creating-uitests-for-xamarin-forms-apps-part-1/#traveler] , we created a File -> New Xamarin.Forms app, and added UI tests to it. In this post we'll learn how to create scalable UI tests that allow us to reuse code using Page Object architecture. We… - [Traveler: Prague, June 2018](https://codetraveler.io/2018/06/26/traveler-prague.md) - I recently finished an amazing trip to Prague (known as Praha by the Czech) where I had am amzing opportunity to speak at the Prague Azure User Group [https://www.meetup.com/Azure-User-Group/] and mDevCamp 2018 [https://www.codetraveler.io/mdevcamp2018/], and also joined the .NET CZ Podcast [bit.ly… - [Walkthough: Creating UI Tests for Xamarin.Forms Apps, Part 1](https://codetraveler.io/2018/05/22/creating-uitests-for-xamarin-forms-apps-part-1.md) - Let's run through a few simple steps to add an automated UITest to a Hello World app made with Xamarin.Forms + Xamarin.UITest ## Optional - [RSS Feed](https://codetraveler.io/rss/) - [Sitemap](https://codetraveler.io/sitemap.xml) - [Full content of pages and posts](https://codetraveler.io/llms-full.txt)