[ Updated on June 26, 2025 ]
Part 2: The Toolbox, IDEs, SDKs, and Essential Concepts
In my last journal entry, I laid out the ‘why’ for this .NET MAUI workshop series. Now, I will turn my attention to the ‘how’. Any software developer knows that the quality of their work depends, in part, on the quality of their tools. In my career, I’ve seen toolsets evolve dramatically from command-line compilers and text editors like Vi to today’s more competent, powerful, and refined IDEs. This post is about reviewing the minimum tools I’ve chosen for building .NET MAUI applications in 2025.
At the heart of any .NET project is the SDK, or Software Development Kit. It’s not the tool, per se, but it is the power behind everything. Think of it as the pre-defined components and logic. The compiler takes our human-readable C# or F# code and transforms it into instructions the computer can understand. Unless the code is ridiculously simple, it will reference useful pre-built code in the SDK. In the case of .NET (and .NET MAUI), the SDKs are vast libraries of pre-built components and blueprints. The SDK is designed to handle most anticipated work, involving text, math, network connectivity, and much more.
The runtime component for .NET is the .NET Runtime (at this point in time I am using the .NET 9 Runtime). Think of .NET Runtime as the hidden application, or machine, which runs the compiled C# or F# code you’ve written, and manages the application as it runs, handling memory and ensuring everything operates smoothly. The .NET Runtime is cross-platform and can run on Windows, Linux and macOS, meaning that the .NET applications you build can run on those three platforms. It should be noted that it is possible to use the open source Uno Platform to finesse .NET 9 to run on other operating systems, too. The Uno Platform is not owned by Microsoft, but it does consult with the Uno Platform team, contributing as a ranking community member. I will not discuss the Uno Platform further in this 10-part series, but I will likely create a dedicated Uno Platform series in the future, since it closely aligns with the type of .NET cross-platform development that interests me.
.NET MAUI is a cross-platform framework, too, but working with it is very different than using .NET 9 Runtime alone. A common question is, ‘What runtime does a .NET MAUI app actually use?’ This is where the magic of MAUI’s cross-platform strategy shines. It doesn’t use one single runtime; it uses the optimal runtime for each platform it targets, all while letting us write code, using a single, unified .NET Base Class Library. And yes, there can be other SDKs and toolkits referenced from C# or F# code, too.
For Android, a .NET MAUI app runs on the Mono runtime, the original open-source, cross-platform implementation of .NET. For debug builds, it typically uses a Java Just-In-Time (JIT) compiler for fast deployment. For release builds, it can use Ahead-Of-Time (AOT) compilation to compile your C# directly to native code for significantly faster startup times.
On iOS and macOS, the identical app also runs on the Mono runtime, but with a critical difference. Due to Apple’s platform restrictions, code cannot be JIT-compiled on iOS. Therefore, your application is always AOT compiled into native ARM assembly code. This is a key reason for the native performance feel and speed of .NET MAUI apps on Apple devices.
On Windows, the same app runs on the standard, high-performance CoreCLR. This is the same runtime that powers ASP.NET and other core Windows .NET workloads. It uses the WinUI 3 framework to render the user interface, giving it a truly native Windows look and feel.
In short, this unification strategy is the architectural triumph of .NET MAUI. As a developer, I can write one C# and XAML application; and when I build that project, .NET MAUI is smart enough to package my application with the correct runtime and platform-specific coding for Windows, Android, iOS, iPadOS, or macOS. It’s a major step toward the perennial dream of software developers: being able to write code once that runs everywhere.
A Table of .NET MAUI Target OS Platforms
For years, the biggest strength and weakness of the .NET Framework was its tight coupling with Windows. It was powerful, but it kept software tethered to one OS. Seeing the modern .NET runtime flourish on Linux servers, run natively on a MacBook with an M3 chip, and even execute C# code inside a web browser via WebAssembly, well that’s not just an evolution– it’s a revolution. This true cross-platform capability is precisely why I’ve chosen .NET MAUI. It leverages this ‘run anywhere’ power to fulfill the old dream of ‘write once, run everywhere’ in a way that is both elegant and fast.
If the SDK is the engine and parts, the IDE (Integrated Development Environment) is the workbench where we spend most of our time assembling everything. The IDE is an application that brings the code editor, the debugger (for finding mistakes), and the SDK’s tools together under one roof. It is the the workbench needed to write, build and debug code efficiently. A modern IDE is lightyear’s removed from the original code and text editors of the past. Modern editors are equipped with tools, or can be extended to include tools, that perform essential programming work, including error checking, analysis, editing advice, and agentic coding previews.
There are three IDEs that I will use for .NET MAUI and .NET development: Visual Studio 2022, VS Code and Apple’s Xcode. Of those three, I will not deeply discuss Xcode in this 10-part series, since it is being used only as a background requirement for building properly licensed .NET MAUI apps for Apple OSs. I will be using it on a Mac M4 Mini. From that Apple device and platform, and with some other required installations and setups, I will be able to build C# code to (via .NET MAUI magic) to run on macOS, iOS and iPadOS, too. I will be able to do that without directly using Apple’s Xcode, except to keep it current.
The IDE’s I will be coding with are Visual Studio 2022, Community Edition, and VS Code. I will be spending most of my time with those two IDEs on a Windows 11 computer (or rather a Windows 11 VM). However, I will be installing VS Code on the Mac M4 Mini to have one working editor there, too. There is no longer a viable option to install Visual Studio to an Apple computer.
With regard to source control, I am using Git. This is absolutely non-negotiable for me. Source control, and specifically Git, is the detailed logbook of any project. Every change, every addition, every removal is recorded. If I make a wrong turn, source control lets me rewind time to the last known good state. It’s the ultimate safety net and the foundation of modern collaborative development (which, honestly, I do not do much of since I am a hobbyist, but it’s there if I need it).
For .NET development, including .NET MAUI, especially on Windows, Visual Studio 2022 is the undisputed flagship. It’s the tool exclusively designed for easy use of the .NET ecosystem. It comes in a few flavors (Community, Pro, and Enterprise), but the Community Edition is free, incredibly powerful, and has everything I need for my projects and research.
It’s important to distinguish Visual Studio 2022 from its younger, lightweight, and perhaps more agile cousin, Visual Studio Code (VS Code). VS Code is a phenomenal code editor, but not a full-fledged pre-packaged IDE. With the right extensions (like the C# Dev Kit and, in our case, .NET MAUI), it is has become a very capable environment for C# and .NET development. I think of it as a stable cross-platform workbench rather than the full workshop. For the deep integration and seamless debugging needed for .NET MAUI, I’m sticking with the full Visual Studio 2022 IDE.
In late 2024, when I reviewed Visual Studio 2022 (after years of being away from it) and after looking at VS Code, I was thrilled with VS Code! Its portability, flexibility, cutting edge features, and quick release times made me prefer it. However, by spring of 2025, Visual Studio 2022 had greatly improved the speed and quality of its releases. It now has most, it not all, of the GitHub AI features I need and want. And, it greatly simplifies the installation of workloads. In addition, extensions are as available and as easy to install with Visual Studio as with VS Code. Finally, because I do most of my programming from a Windows 11 VM, I am not really bound to VS Code, although I do like it. Therefore, for my projects and research, I will prefer Visual Studio 2022, but I will cover VS Code’s installation and use with .NET and .NET MAUI, too. In respect to running on my Apple Mac M4 Mini, VS Code is really the only viable choice for C# programming.
Here is a glimpse of what we will be installing in Visual Studio 2022. It is an image of the Visual Studio 2022 Installer and its ‘Workloads’ installation page. The point of this image is to show how Visual Studio packages and separates its workloads. Although there are currently 16 workloads in Visual Studio 2022, the only workload needed for .NET MAUI (and Blazor) development is: “.NET Multi-platform App UI development.” It is circled in red in the image. This one workload can be easily installed and uninstalled from this screen. This is very different from VS Code which can require multiple extensions to be installed and maintained for the same functionality. (Note: if you are wondering what Blazor is: it is a free and open-source web framework that enables developers to build interactive web applications using C# instead of JavaScript.)
With that said, because I plan to use both local and networked databases in my projects, and because I plan to use some web development, too, then I will be adding those workloads at the same time. However, you do not need to do the same unless you know you need these or other workloads. Those additional workloads are circled in red in the Visual Studio 2022 installer image below. Remember that workloads can be added or removed from the IDE at any time. In a future post I will include images for the VS Code workloads I have used, too.
Now let’s discuss source code control. Git is the tool that runs on my computer both inside and along side my IDEs to handle source code versioning and control. Git is not easy at first and mistakes will be made. Learning and using its commands to store and retrieve code and other related resources (like images and other media) are important to know even inside an IDE like Visual Studio or VS Code. Git handles source code versioning, storage, and retrieval on local, network, and online file systems. For now, my repositories (repos) are all local or locally networked, but I may move some of that online as my projects, research, and interests progress.
Additionally, there are three main players who provide online space for Git project storage, and services and tools for software development. GitHub, Azure DevOps, and GitLab are all platforms designed to facilitate software development collaboration, but each has distinct purposes, strengths, and target audiences.
GitHub is primarily a cloud-based platform for code hosting, sharing, and collaboration. Built on Git, it enables version control, code review, and open-source or private project management. GitHub is known for its vast open-source community and ease of use, making it ideal for individuals and small teams. GitHub Actions is a popular service for continuous integration and deployment (CI/CD), but relies more on third-party integrations for full DevOps workflows. In fact many of GitHub’s features, including the new and popular AI advice, editing and agent services, rely on IDE extensions and integrations. GitHub has been an affordable option for most software developers, even hobbyists like myself.
Azure DevOps is an enterprise-grade suite from Microsoft providing comprehensive tools for the entire software development lifecycle. It includes services for project management (Boards), code repositories (Repos), CI/CD (Pipelines), testing (Test Plans), and package management (Artifacts). Azure DevOps is strongly integrated into Microsoft’s ecosystem and Azure cloud, making it a preferred choice for enterprises and organizations invested in Microsoft’s technologies. Microsoft offers both cloud and on-premises deployment options.
GitLab is an all-in-one DevOps platform offering everything from version control to CI/CD, security, project management, and monitoring. It is available as open-source or paid enterprise versions, with robust built-in security, project management, and container registry features. GitLab is highly customizable and suitable for organizations seeking a single solution for the entire DevOps lifecycle, with strong support for both cloud and self-hosted deployments.
All three are excellent, but have very different costs and focuses. Azure DevOps is tied into Microsoft’s cloud ecosystem, while GitHub has become the de facto town square for the open-source community. I’ve seen GitLab around, but have not used it. My personal choice for use with Visual Studio 2022 and VS Code is GitHub, which can be easily integrated into both those IDEs. At this point in time, I do not know how, or if, it works with Xcode.
In order to remove any confusion about equipment before installing the IDEs and software for .NET and .NET MAUI development, I want to list the hardware and software I am using. Of course this will change over time. I do not have the world’s best computer, far from it– I built is myself. But, it is stable and has more than enough CPU cores and memory for .NET and .NET MAUI development using both Visual Studio 2022 and VS Code.
I use VMware VMs for development. My host computer is Gigabyte Technology Co., Ltd. X570 AORUS XTREME. It has an AMD Ryzen 9 5950X 32-Core Processor at 3400 Mhz., and 128 GB RAM. The total storage space is 43 TB across nine (9) drives. The host is running Windows 11 Pro, Version 24H2. On that that host, I am running Broadcom’s VMware Workstation 17 Pro 17.6.3 build-24583834, which is a free application to the public.
Running within VMware Workstation Pro, I have a VM dedicated to programming. That is where I have installed Visual Studio and VS Code, and other .NET development tools. Here are the specs for that VM:
The VM is manufactured by VMware, Inc., it is Model VMware 20,1, using 8-Cores of the host’s AMD Ryzen 9 5950X 32-Core Processor at 3400 Mhz., and 24 GB RAM. My total VM storage space is 2.8 TB on two (2) NVMe drives.
As previously mentioned, I will be using Visual Studio 2022 Community Edition since Visual Studio provides the most integrated and productive and easy experience for .NET MAUI development, and VS Code Stable edition, and not the nightly VS Code Insiders edition. As we work with the IDEs, you will see why I have chosen to use GitHub for additional software development services, tools and storage because it’s the perfect platform for extending my software development abilities and collaboration.
In the next post, I will prepare the step-by step setup for my own .NET and .NET MAUI development environment. But before that, I would strongly suggest that you look into, and look at, the tutorials videos, code samples, posts and documents created by the .NET MAUI community. That community is filled with many talented individuals who know how to produce excellent educational content, and who know how to help others. Here is a short list of the some of the best known online authors and influencers for .NET MAUI tutorials.
There are six (4) people you absolutely know about and follow. Some are on the .NET MAUI team at Microsoft or have been foundational to the Xamarin/.NET MAUI community for years.
- James Montemagno
- Primary Platforms: YouTube, Blog, Twitter/X
- James is a Principal Lead Program Manager at Microsoft and arguably the most recognizable face in the .NET mobile community. His tutorials are energetic, extremely practical, and cover a wide range of topics from “getting started” to integrating specific Azure services. His four hour “MAUI for Beginners” series is the perfect starting point.
- James is good for beginners, understanding the entire .NET ecosystem, and giving official insights.
- Gerald Versluis
- Primary Platforms: YouTube, Blog, Twitter/X
- Gerald is a Senior Software Engineer on the .NET MAUI team at Microsoft. His YouTube channel is a goldmine of short, focused, and incredibly useful “how-to” videos. If you have a specific problem like “how do I use custom fonts?” or “how do I implement a specific handler?”, Gerald probably has a video for it.
- Gerald is good at solving specific problems, practical how-to guides, and deep dives into individual features.
- David Ortinau
- Primary Platforms: Blog, Twitter/X, GitHub
- David is the Principal Product Manager for .NET MAUI at Microsoft. While he doesn’t produce as many tutorials as the others, following him is essential for understanding the “why” behind the framework. His blog posts and tweets provide official updates, roadmaps, and high-level architectural insights.
- David is good at staying up-to-date with official news, roadmaps, and the future direction of MAUI.
- Leomaris Reyes
- Primary Platforms: Blog (AskXammy), YouTube, Twitter/X
- Leomaris is a master of creating beautiful UIs with .NET MAUI. Her blog is famous for its detailed, step-by-step tutorials that replicate complex and attractive designs from sites like Dribbble. If you want to make your app look amazing, her content is a must-read.
- Leomaris is good at UI/UX design, creating beautiful interfaces, appealing to visual learners.
In addition, the following three (3) resources and individuals are fantastic for staying current and finding unusual but useful content.
- Sands of MAUI (aka .NET MAUI Weekly) by Telerik and Sam Basu
- Primary Platform: Blog
- Begun on March 29, 2021 a blog is published weekly on Monday focusing on .NET MAUI news, tutorials, and community updates.
- Sands of MAUI is good at keeping up with current issues and giving useful examples.
- The .NET MAUI Podcast (https://www.dotnetmauipodcast.com/)
- Primary Platforms: Podcast Website, YouTube
- The podcast is hosted by Matt Goldman, David Ortinau, and James Montemagno. This is the official podcast for all things .NET MAUI. They cover the latest news, interview team members and community experts, and discuss the state of the framework.
- Good for audio learners and getting news and insights during your commute.
- Shaun Lawrence
- Primary Platform: Book and Blog, and GitHub
- Shaun authored as great up-to-date book titled “Introducing .NET MAUI: Build and Deploy Cross-Platform Applications Using C# and .NET 9.0 Multi-Platform App UI, Second Edition”
- Shaun is good at communicating lengthy and difficult .NET MAUI concepts with clear examples.
If you are completely new to .NET MAUI, here is a recommended path:
-
Start with the Official Docs. read the Microsoft .NET MAUI documentation to get the foundational knowledge.
-
Go to James Montemagno’s YouTube channel, subscribe, and watch his “.NET MAUI for Beginners” series.
-
When you hit your first roadblock, search for answers on Gerald Versluis’s YouTube channel. He likely has a short, focused video on it.
- Watch some videos and presentations from David Ortinau for working examples of AI and other important integrations into the .NET MAUI framework, and download the sample code.
-
Pick a tutorial from Leomaris Reyes and try to build a beautiful screen. This will teach you a lot about layouts and controls.
-
Read the weekly Sands of MAUI blog and listen to the .NET MAUI Podcast to keep up-yo-date and learning.
- Use LinkedIn. You will also find a fair amount of activity and announcements there about .NET and .NET Maui.
-End Post-