What Are Architecture Design Records (ADR), and How Can You Get Started as a .NET Developer?
This document provides a comprehensive overview of Architecture Design Records (ADRs), a crucial tool for documenting key decisions in software development. Initially coined by Michael Nygard, ADRs encapsulate the reasons and context behind these decisions, helping future developers understand the system’s evolution. Each ADR typically includes a title, context, decision, status, and consequences, and is stored in the project’s version control repository. For .NET developers, this guide recommends the dotnet-adr tool, and provides step-by-step instructions to implement ADRs in your project. By incorporating ADRs, teams can enhance communication and preserve a clear rationale for significant decisions.
Using Private NuGet Feeds in AppCenter
The Problem Recently, I was working on a Xamarin.Forms project consuming a private NuGet feed. Because the account I use to log in to Visual Studio has permissions to consume that feed, I just added the feed address to Visual Studio and I could use it without any problems. But when I tried to build […]
HealthKit Not Working in the Background of Xamarin.Forms Anymore—What To Do!
I recently updated the Nuget packages of an Xamarin.Forms application which accesses health and physical activity data in iOS and has been doing it successfully for a long time. One of the libraries to update was the third-party library responsible for taking the data from HealthKit and preparing it to be sent to the server. […]
Create Beautiful .NET Console Applications with Spectre.Console
Ugly Console Applications On several occasions, I have had to create console applications that update the screen as time passes or some background task progresses. When I do, I often end up with something that looks like the following screenshot: This works just fine but can certainly be improved. We can reformat the data better […]
Creating a Visual Studio Offline Installer
Usually, I work with more than one computer and reinstall my operating system from time to time, so I spend a lot of time downloading and configuring Visual Studio. To make this process easier, we can add parameters to the Visual Studio installer and create a local copy with all the files needed for our […]
Dynamic XAML in Xamarin.Forms Applications
Note: you can download the source code for this blog post here. As you know, Xamarin.Forms application usually will generate code at compilation time using your XAML definition, and after building and distribution, the application is ready to be used. If you want to change the user interface dynamically or how it consumes data, you […]
Control Templates in Xamarin.Forms
This is the second post in the custom control series. You can read the first one where we created a custom control to select dates. In this second post in the series, I want to show you when and how to use control templates. A primary reason to use control templates is when you need […]
Tooling for the C4 Model: Structurizr Lite
In a previous blog post, I did a brief introduction to Architecture Software Visualization using the C4 Model. On this one, I want to show you some of the available tooling and give you a quick walkthrough on how to create our architecture models. Structurizr Simon Brown created Structurizr to build software architecture models as […]
The C4 Model for Visualizing Software Architecture
Introduction In this blog post, I will try to briefly condense my understanding of the work of Simon Brown, the creator of the C4 Model, a set of hierarchical diagrams that you can use to describe your software architecture. I will talk about the current state of architectural visualization, the issues presented by them, and […]
Custom Controls in Xamarin.Forms
When we want to reuse some of our user interface elements in a Xamarin.Forms application, one of the best ways to do it is by using custom controls. In this Github repository, I created a sample application with a custom control that is a composite of two other controls. I’ll use this example to show […]