Our blog

Journal Entries From the Software Trail

We’ve mapped the path for your own knowledge journey

Most Recent Blog Post

Ditching SaaS Platforms With AI

Microsoft CEO Satya Nadella was widely misquoted as saying SaaS is dead in his BG2 Podcast interview. What he was really saying is that AI is moving the build-versus-buy line—and this year we crossed it twice. …

Read More

Other Recent Blog Posts

Filter:

Blog Categories

Google Maps in Angular 20 with the JS API Loader

In this guide, we’ll walk you through how to easily integrate Google Maps into your Angular 20 application using the Google Maps JavaScript API Loader. This method allows for dynamic loading of the Maps API, keeping your bundle size lean, e …

Read More

Using Microsoft Entra ID in a .NET API

In this blog, we'll explore how to configure a .NET REST API to authenticate requests using Microsoft Entra ID (formerly known as Azure AD). With a step-by-step guide, we'll cover everything from configuration and authentication setup to en …

Read More

Events Substitution in App Routing for NextJS v13

Before Next.js 13, Pages Router was the only solution based on traditional file-system routing and client-side navigation. Starting with Next.js 13, App Routing was implemented as a default replacement. App Router uses a component-based app …

Read More

Human-Centered Testing for Software Users Love

Most QA processes verify what the system does. Human-centered testing verifies how it feels to use. Real users often don’t follow the expected test cases. They skip “obvious” steps, use products in unexpected ways, interact with your app on …

Read More

VS Code Owns .NET MAUI on Mac!

Microsoft officially retired Visual Studio for Mac on August 31, 2024. Now, the company recommends .NET MAUI developers use Visual Studio Code with a set of extensions. In this blog post, we’ll walk through the basic setup to get started. A …

Read More

API Security Testing: 7 Critical Checks

APIs serve as the backbone of modern applications, but without proper security testing, they can expose vulnerabilities that hackers exploit. This article covers the essential security checks for APIs, providing real-world examples, expecte …

Read More

Build .NET Web Apps Faster with Blazor & MudBlazor

Blazor and MudBlazor make it easier than ever to build modern, interactive web applications entirely in C#. In this blog, I’ll teach you how to set up a .NET Blazor project with MudBlazor, scaffold a server-paged data grid, and wire it up t …

Read More

The Human Side of Accessibility Testing

Let’s start with a bold truth: accessibility testing is no longer optional, it is essential. Accessibility Helps Everyone Digital accessibility means making websites, mobile apps, and digital tools usable by everyone, including people with …

Read More

.NET Performance: Using Span<T>

Introduced in .NET Core 2.1, Span<T> and ReadOnlySpan<T> have become widely adopted in .NET applications, both in user code and in the BCL. But what are those types used for exactly? Why is everybody talking about them? When …

Read More

Creating Happily-Ever-After UI Components

Once upon a time, in a land not so far from production, there lived a growing kingdom of buttons, forms, and other UI components. What began as a peaceful realm of components slowly turned into a tangled forest of inconsistencies—every team …

Read More

Microservices Drool; Modular Monoliths Rule

Everyone seems to be chasing microservices these days—promises of independent teams, targeted scaling, and fault isolation make them sound irresistible. It's been said you should only reach for microservices if you have a really good reason …

Read More

Great Software Starts with a Question

After decades in custom software delivery, one truth stands out: it's shockingly easy to build the wrong thing. I've seen engineering masterpieces with zero users, binders full of requirements but no working code, and "agile" used as a smok …

Read More

Accelerate Your AI Chat Design With Trailhead

AI Chat for your business software shouldn't be a plunge into the unknown. Design your AI chat faster with Trailhead today. Traditional AI chat design often means long cycles of prototyping and revisions, which can derail budgets and timeli …

Read More

LLMs: The Internet, But Make It a JPEG

Recently, I was reflecting on Large Language Models (LLMs) and how they contain all or much of the knowledge of the internet in a much smaller storeage space. For example, the ChatGPT 4 model is about 570 GB, a size almost anyone could stor …

Read More

Boost App Performance with Advanced Redis

In a previous blog post, I showed how you can speed up .NET APIs using Redis to cache frequently-accessed and infrequently-changing data. If you haven't checked it out yet, it provides a solid foundation on how Redis can dramatically improv …

Read More

Essential Cybersecurity for Software QA

If you're not an expert in it, cybersecurity can seem daunting, but it doesn't have to be. Whether you're a developer or a QA engineer, this guide will help you understand the basics you need to test your applications for better security. I …

Read More

SCSS in React Native? Here’s How!

React Native provides great styling capabilities, but working with plain stylesheets can sometimes feel limiting. brings more flexibility and organization to your styles, making development smoother. In this guide, we’ll walk you through se …

Read More

Welcoming Mark Adams to Trailhead

Trailhead Technology Partners is excited to welcome Mark Adams as a new partner. With decades of leadership experience and a passion for strong client relationships, Mark is an excellent addition to our team. Mark has more than two decades …

Read More

Modernizing Legacy Systems with Event Storming

Legacy systems are the backbone of countless organizations. Yet, as technology advances, these systems often become roadblocks, riddled with challenges like technical debt, undocumented workflows, brittle integrations, and limited scalabili …

Read More

Cookies and Why We Need to Test Them

Cookies are more than just small text files delivered by your web browser—they are also the backbone of user personalization, session management, and seamless browsing experiences on the web. In fact, if you’ve ever browsed the web, you’ve …

Read More

Solving Memory Leaks with Google Maps in Angular

Google Maps is a powerful tool for any application that needs location-based functionality. However, integrating it into an Angular application can sometimes lead to performance challenges. For example, in one of our projects that use Googl …

Read More

EF Core 9 vs. Dapper: Performance Face-Off

Every time I decide which ORM to use in a project, I find myself personally conflicted between Dapper and Entity Framework (EF). Both are incredibly powerful ORMs and excel in the roles they were designed for, albeit in slightly different w …

Read More

What's New in .NET 9

.NET 9 was released in November 2024 at .NET Conf. It introduces a wealth of new features and improvements that make it easier than ever to build high-performance, modern applications across platforms. Microsoft covered many different new f …

Read More

Introducing HybridCache in .NET 9

Caching plays a crucial role in performance in web applications by reducing strain on backend systems. The new HybridCache library, available in preview in .NET 9, simplifies caching and addresses some limitations of previous approaches, ma …

Read More

Securing The Nuget Supply Chain: A Case Study

It's not an exaggeration to say that today, most of the code we ship is someone else's code. Sonatype releases an annual State of the Software Supply Chain report. In the 2024 edition of the report they estimate that upward of 90% of softwa …

Read More

DI-Cluttering Your Code

To put it simply, this article focuses on reducing the clutter that Dependency Injection (DI) can bring to your code—a powerful tool for clean architecture that, if misused, can also lead to monstrosities like this: I mean… we've all …

Read More

Right-Sizing Your Front-End Tech Stack

Selecting the right tech stack can be a make-or-break decision for many projects. While some applications benefit from a complex stack, many others can thrive with a simpler, more streamlined setup. Choosing a lighter stack doesn’t just cut …

Read More

Trailhead Interviewed on House of Code Podcast

Recently, Trailhead partner Jonathan "J." Tower had the pleasure of discussing the topic of building a trusted software agency on Cory House's House of Code podcast. Together, they delved into what it takes to run a successful software agen …

Read More

Scaling Your Database through Sharding

As an application gains popularity, it naturally attracts a larger user base and introduces new features. This growth results in a steady increase in data generation, which is a positive signal from a business standpoint. However, it also b …

Read More

General Performance Guidelines for Angular

In modern web development, performance is crucial for delivering responsive and efficient applications. Angular, as a powerful framework, offers various features and optimizations to enhance performance. This blog post outlines best practic …

Read More

Keyed Services in .NET: A Deep Dive with Examples

Introduction .NET 8 introduced several exciting features that improve the developer experience and expand the flexibility of dependency injection (DI). Among these features is one called Keyed Services, which allows you to register and reso …

Read More

Chat With Your Documents With LM Studio

With the latest update to LM Studio (v0.3.2), adding documents to your conversations has become a seamless process. Simply drag and drop or use the Attach button at the bottom of the app, and you'll be able to engage with large language mod …

Read More

Easy Machine Learning for .NET Teams

Machine learning (ML) is transforming industries by enabling businesses to make data-driven decisions, personalize user experiences, and improve operational efficiency. But for many organizations, the thought of adding ML capabilities to th …

Read More

Using Razor Templates Beyond Web Pages and ASP.NET

Razor is a powerful tool that combines templates with data model to produce resulting text. Originally released in 2011, it has since evolved significantly, and now it is de-facto Microsoft recommended template engine. While it is standard …

Read More

Simulators vs Emulators for Mobile App Testing

When you are a developer or QA engineer working on a complex mobile app, you will want to test its functionality across various devices and operating systems. It is difficult to have all possible physical devices at your disposal, though, s …

Read More

Deploying A GPT-4o Model to Azure OpenAI Service

Azure OpenAI Service enables easy deployment of powerful language models like GPT-4o. This guide walks you through the process, from securing access and creating resources in the Azure portal to navigating the updated Azure AI Studio for mo …

Read More

Guide to Testing Your Terms and Conditions Page

Ensuring that users understand and agree to the terms and conditions (T&C) of your applications is a very important step for every application developer. Most software teams don't think to test this page, and so I created this blog post …

Read More

Autofill with React Hook Form, Yup, and MUI.

Autofill is an essential feature for web forms. It saves time and minimizes errors by automatically filling in previously entered data. However, certain things might not work when you use autofill in your forms, such as validation. In this …

Read More

Deploying .NET Web API as AWS Lambda

In this post I will describe how to host a .NET Web API on AWS Lambda – it's actually really easy! I will also explain step-by-step, how to add Terraform support to be able to set up the AWS resources automatically. Create a Lambda ASP.NET …

Read More

Using CSS Variables in Your Angular Applications

CSS variables are not anything new in the CSS world, but they are a powerful and flexible way to centralize and manage styling properties, provide consistency, make maintenance easier, and give dynamic control over visual elements across an …

Read More

Using Respawn with Integration Testing

Integration Testing In software testing, integration tests are used to test the interaction between different parts of the system, such as the interaction between the database and other APIs and services. Observing the testing pyramid, inte …

Read More

When Serverless Architecture is The Best Choice

In recent years, serverless architecture has emerged as a game-changer, promising scalability, cost-efficiency, and ease of deployment. However, amidst the hype surrounding serverless, it's crucial to recognize that it's not a one-size-fits …

Read More

Trailhead Interviewed on SSW TV

Recently, Trailhead's very own Jonathan "J." Tower was at NDC Sydney, and sat down with Matt Wicks from SSW TV to discuss YARP: Your Gateway to Effortless Project Migrations. During this insightful conversation, J. walks Matt through Micros …

Read More

Understanding Objects vs. Maps in JavaScript

In JavaScript, the data structures you use plays an important role in how you organize and manage data in your applications. Occasionally, you might find yourself deciding between using Objects and Maps. Both of these can store and manage d …

Read More

Implementing Health Checks in .NET

Introduction Ensuring the health and reliability of your applications is important for minimizing lost revenue and maximizing the user experience. By adding health checks to your application, you can continuously monitor the pulse of applic …

Read More

Just-In-Time Security Scanning

Overview Continuous delivery is a cornerstone of contemporary software development, enabling teams to deliver high-quality software quickly. However, it can be a challenge to integrate software security scanning practices like static analys …

Read More

Quantum-Safe Cryptography in .NET

Cryptographic algorithms hide behind the curtain of so much of the digital communication that supports our daily lives online. As quantum computers continue to advance, the likelihood increases of computers that can defeat all of our curren …

Read More

Testing CSV File Imports: A Comprehensive Guide

In modern software, using CSV files (and other similar flat file formats) for imports and exports has become very common as a way to integrate between systems. The processes of importing CSVs can be deceptively intricate, and full of potent …

Read More

Leveraging ChatGPT in Manual QA Testing

AI is already at our doorstep, signaling that it's time for everyone to learn how to use it more effectively and responsibly. In exploring how to utilize ChatGPT, I found no ready-made solutions for helping with software QA processes. Howev …

Read More

Integration Strategy: A Guide for IT Leaders

At Trailhead, we understand that a successful business will often need to have a variety of software systems, leading to disparate systems that don't always talk to each other. This demands a seamless way to connect those systems to avoid o …

Read More

Transforming a Flutter Mobile App Into a Web App

When I started to look at the Flutter framework as a powerful and flexible tool for cross-platform mobile development, I was pretty fascinated with the idea of transforming a Flutter mobile app into a web application. To test it out, I deci …

Read More

A Generic Builder Pattern Implementation in C#

The builder pattern stands out as a design pattern that is a particularly useful solution to object creation problems in object-oriented programming. It is particularly suited to dynamically creating objects in a step-by-step process. Typic …

Read More

Top 10 Metrics That Elevate Software Quality

Defects in software are not merely glitches; they are golden opportunities for refining our craft, enhancing user experience, and building software that stands the test of perfection. Unknown Author In this article, I would like to look at …

Read More

Trailhead's Design System Elevates Your Business

What's a Design System? A design system is a set of standards to manage design at scale by reducing redundancy. They also create a shared language and visual consistency across different pages and channels. At Trailhead Technology Partners, …

Read More

Testing Mobile App Push Notifications

In this blog post, I'll explore what is required to thoroughly test push notifications in mobile apps. I'll start by exploring the functionality behind these notifications and then provide you with the comprehensive checklist I use for test …

Read More

Scanning Uploaded Files for Malware in C#

With cyber threats multiplying daily, it can be overwhelming to try to stay on top of security in our software applications. When faced with the daunting task of writing code to mitigate the risk of malware, viruses, and other types of thre …

Read More

Introducing AI in the Software Quality Process

Artificial Intelligence (AI) and Large Language Models (LLMs) have impacted every aspect of technology work, giving software engineers (programmers, QA, designers, and leadership) a useful new tool to enhance their daily work. As it relates …

Read More

The Powerful Options Configuration Pattern in .NET

Introduction The .NET Options Pattern is a powerful and flexible way to handle configuration settings in your applications. Whether you are building a web application, a desktop application, or a microservice, effective configuration manage …

Read More

Selecting a Software Composition Analysis Tool

So, you have decided to take the plunge and implement a tool for Software Composition Analysis (SCA). This is a big step toward improving the security of your applications and the security posture of your organization as a whole. Congratula …

Read More

Manage Your Windows Applications With Winget

Winget, Microsoft's native package manager for Windows 10 (version 1709 and later) and Windows 11, offers a streamlined CLI for efficient application management. This blog post introduces Winget's installation and basic commands for install …

Read More

Exploring What's New in .NET 8

In the early days of the .NET Framework, releases were infrequent and timed with Windows releases. The shift to an open-source platform brought a welcome change. Now, we anticipate an annual .NET release tied to the .NET Conf event every No …

Read More

7 Tips to Optimize React Web Applications

Front-end performance plays a crucial role in the success of all web applications, including the ones build with React. Users expect fast-loading pages and smooth interactions, making it imperative for front-end developers to optimize their …

Read More

Testing the Bluetooth Features of Mobile Apps

Testing a mobile app with Bluetooth features is all about making sure that the app can connect to Bluetooth devices and that all Bluetooth-related features within the app work as expected. In this article, I use a mobile app as an example t …

Read More

Why Engineers Should Embrace Verbosity

In the fast-paced world of software development, brevity is often hailed as a virtue. Software engineers, with their affinity for efficiency, are notorious for distilling complex concepts into succinct messages–sometimes even a little too s …

Read More

Quality Gates in Software Development

Introduction In this blog, I will show you the pivotal role Quality Gates (QGs) can have within the software development process. I will delve into their application, benefits, and indispensable function in guiding your software projects to …

Read More

Trailhead Interviewed on The Azure DevOps Podcast

In the quickly evolving landscape of software, keeping pace with advancements is crucial to avoid having your application become a dreaded "legacy" application. Recently, Trailhead's very own Jonathan "J." Tower had the privilege of being a …

Read More

A Strapi Headless CMS Quick Start Guide

Introduction In the rapidly evolving realm of content management systems, the notion of a "headless" content management system (CMS) has gained significant traction due to its adaptability and scalability. Strapi is an exceptional example o …

Read More

Are You Prepared for the End of Xamarin Support?

In October 2022, Microsoft announced that Xamarin and Xamarin.Forms apps will no longer be supported after May 1, 2024, which is just eight months from the writing of this post. The reason for this deadline is that Xamarin is being replaced …

Read More

.Net MAUI + Azure Pipelines + iOS TestFlight!

In this post, I want to show you how to publish a .NET MAUI app via TestFlight from an Azure Pipeline. These tools allow you to create cross-platform Android and iOS apps, then use pipelines to build the app any time its code changes, and d …

Read More

Handling Time Zone Challenges in Software Testing

Time Zones Are Challenging Without a doubt, time and time zones is one of the most "painful" and difficult topics for everyone who is involved in software development in one way or another. And we are not even talking about major internatio …

Read More

Our Process for Designing an App Logo

Why Do I Need to Design an App Logo? Whenever Trailhead starts designing an app logo, we believe it's more than just creating something that looks good. Rather, an app logo should convey your app's purpose, as well as your company's values, …

Read More

When To Use Serverless vs Containers

Everyone is talking about containers and serverless, but when should you use each in your projects? Anyone who has worked with containers and orchestration much will tell you how much more complex they can make your application’s infrastruc …

Read More

Single Dash vs Double Dashes in Shell Commands

When you’re using a shell command, it’s common to pass options to that command using dashes—which are also called hyphens. These options can be specified with either a single dash (-) or a double dash (—). But have you ever wondered when to …

Read More

Document APIs Done Right

At Trailhead, we have built many enterprise-grade .NET APIs that deal with managing documents – files, photos, PDFs, etc – and in this blog I will distill some best practices that will help you optimize your API and download performance, re …

Read More

Slow .NET API? Redis Caching May Be the Answer

Just like venturing into the wilderness requires the proper gear, developing REST APIs with ASP.NET Core also requires the right tools and equipment for your application to perform at its best.  At Trailhead, Redis caching is one such …

Read More

Properly Tracking Manual Testing in Azure DevOps

Ensuring a software application is thoroughly tested is crucial for most software projects. By conducting comprehensive testing, any potential bugs or defects can be identified and addressed before they have a chance to cause any negative e …

Read More

Adding a New Android Permission in a Xamarin App

As you know, Android is always adding features in its new versions and now the Post Notifications permission has been introduced from Android 13. In this blog, we are going to explore how to request it in our Xamarin.Android projects. Sampl …

Read More

Google Maps Markers for Angular

The full reference to the API can be found in the Google Maps API Docs and the Angular implementation in the source code. The post Google Maps Markers for Angular appeared first on Trailhead Technology Partners. …

Read More

Publishing NPM Packages in Azure NPM Registry

Many organizations have their own tried-and-true components or in-house tools which they use from project to project. Instead of copying these from project to project, it's a good idea to share them as private packages. If you're already us …

Read More

Memorizing Everything: How Mnemonics Aid in Testing

When analyzing a lot of information, it's always a challenge to retain things in memory. In order to facilitate this process, mnemonics were invented — simple mechanisms of tweaking your brain to memorize and later recall some sequence of a …

Read More

An Introduction to Domain Testing

Preview and Definition In this blog I will describe the techniques of domain testing. These techniques are popular with a lot of testers because of the way they have absorbed a little bit of the best of several other simple-but-effective te …

Read More

Why Angular Typed Forms Don’t Work as Expected

Angular has a very powerful feature called reactive forms. As powerful as this feature is, though, reactive forms have had one significant drawback for while—the lack of strict typing. Finally, this shortcoming was improved in Angular v14. …

Read More

Google Maps for Angular

Google Maps provides powerful mapping technology that is available to use inside your own applications. In this blog, I'll explain how you can get started using it inside an Angular web app. Before You Start Before you can start working wit …

Read More

Top-Level Statements in C#

This article is part of C# Advent 2022. During the month of December, two new articles are posted each day until December 25th. These articles will be about something in the C# language, and are written by experts from around the C# co …

Read More

Should a Tester Have Knowledge of the Database?

Most greenfield software projects start with a database design, usually followed by an API implementation that often happens in parallel with the user interface (UI) implementation. Before the UI is ready to wire up to the API with real dat …

Read More

Shadows Everywhere in Xamarin.Forms

As you know, Xamarin.Forms (and now .NET MAUI) allows us to create cross-platform mobile apps. However, one of the biggest challenges with these technologies is knowing how to customize your Controls and UI. In this blog, we are going to ex …

Read More

Onboarding QA: Getting Up to Speed on New Projects

QA engineers often must jump in to already running projects and start testing and adding value as soon as possible. When this occurs, we must gain knowledge of the system architecture, business logic, project process, QA process, legacy iss …

Read More

Using Serilog for Logging in ASP.NET Core

In .NET, there is built-in API that supports logging (Microsoft.Extensions.Logging) and there are many third-party logging providers that implement that API. For simple use cases, the built-in logging can be sufficient, but for many or our …

Read More

Azure Functions in Late 2022

I've been catching up with Azure Functions recently, and one thing I learned is that setting up your development environment, project structure and Azure DevOps pipeline is not as straightforward as I'd expect. The goal of this article is t …

Read More

Decomposition in Software Testing

The mightiest rivers lose their force when split up into several streams. Ovid What Is Decomposition? The academic definition of decomposition is “a method that allows us to replace the solution of a complex problem with the solutions of ma …

Read More

What's New in .NET 7?

At Trailhead, we think that .NET is the world’s most powerful and flexible framework for custom development. That’s why we are so excited that .NET 7 was officially released this week. When you see what’s new in .NET 7, we think you will ag …

Read More

Natural Keys and Surrogate Keys in Entity Framework

In a nutshell, this post is going to be about using natural and surrogate keys in Entity Framework. Definitions and a Simple Example A surrogate key is a key (the type doesn't really matter) with no business meaning that is used to uniquely …

Read More

RESTful API Testing Guidelines

In this blog I've compile some of my API testing guidelines for testing RESTful APIs. I've tried to cover most of the basic cases as well as some more advanced ones. When you're testing an API, it can be hard to think of everything, so I ho …

Read More

How to Deploy a React Application for Free

React has changed web application development. It has become quite a bit easier to make a good interactive website than it used to be. A React application in its compiled and deployed state is just a static website, or website that contains …

Read More

Migrating an Azure DevOps Repo to GitHub

A popular topic nowadays is integration or migration between GitHub and Azure DevOps. Most people who work with .NET are used to working with Azure DevOps, but GitHub is getting more and more popular with that crowd as a topic of conversati …

Read More

Securing Your Software Supply Chain

The Problem The principle of code reuse is a foundational axiom of software development. This best practice has manifested itself, in part, in the form of centralized package repositories like Nuget and NPM from which developers can access …

Read More

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 c …

Read More

gRPC with Angular

About gRPC Google Remote Procedure Call (gRPC) is a modern, high-performance framework for APIs that evolves the age-old remote procedure call (RPC) protocol. At the application level, gRPC streamlines messaging between clients and back-end …

Read More

Using Testing Checklists: In Theory and Practice

Definition and Main Characteristics In this blog I want to talk about using checklists as an important—and even necessary—part of the testing process. You might use a checklist to smoke test an application after a release or to regression t …

Read More

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 ins …

Read More

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 …

Read More

Software Security For Humans

How secure is your software? Pondering this question can provoke uncertainty (or even fear) depending on the experience level of your software team and the maturity of your control processes. However, this does not need to be the case for m …

Read More

Using Postman with SignalR WebSockets Development

SignalR from Microsoft .NET is a great tool for adding real-time websocket functionality to web applications. The latest libraries simplify the process to add Hubs to your .NET API projects, and the technology makes sending messages between …

Read More

A Few Tips to Improve Your Test Automation Scripts

Today I want to talk about how you can improve your test automation scripts, and give you two of my favorite tips on how to accomplish that. If you are new to test automation, these two tips will definitely help you. If you have some AQA (a …

Read More

Controls with NControl!

We occasionally want to include a specific UI design in our mobile apps that should look exactly the same on both Android and iOS, but we don't want to construct custom controls to do so. This is when the NControl package comes into play an …

Read More

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 reaso …

Read More

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 …

Read More

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 abo …

Read More

SignalR Scaling with Azure SignalR Service

SignalR is the best way to enable real-time communication in modern .NET web applications. So let's say you have built your first app with SignalR, deployed it to Azure, and everything is working great. After seeing a huge influx of new use …

Read More

Yes, And…

I learned a lot in college that is applicable to my life and career…and some of it was even in my classes. Nowhere was that more true than with my time doing comedy improvisation. At the beginning of my sophomore year in college, I tr …

Read More

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 c …

Read More

Using the Xamarin REPL Tool

Xamarin REPL (read-eval-print-loop) is one of the most important tools for building Xamarin.UITest tests. It’s a console-like environment in which we can see the structure of the visible part of our application using queries and commands. I …

Read More

Migrate from .NET Framework to .NET 5

.NET 5 has been available for some time now and .NET 6 will be released in late 2021, but perhaps your team is still using .NET Framework 4.7 or 4.8. You may have preferred to stick with what your team knows, or with the time-tested platfor …

Read More

Create Your Free Azure and Cosmos DB Account

Creating a free Azure account Did you know you could create a free Microsoft Azure account for learning and testing purposes? Doing so will provide you with 12 months of free access to popular services, a $200 credit for the first 30 days, …

Read More

Getting Started with Azure Functions

Azure Functions is a serverless solution to run code in the cloud. The functions run inside a function app. You can develop functions directly in the Azure portal, or use VS Code or Visual Studio. I see the functions as a way to write small …

Read More

Microsoft Build 2021: .NET News

Microsoft Build 2021 just wrapped up, and a lot of the new coverage was about things like the upcoming major updates to Windows, the retirement of IE and pre-Chromium Edge, and the new Windows app store that is being developed. However, thi …

Read More

Getting Started with Azure CLI

What is Azure Command-Line Interface (CLI) Azure CLI is a set of commands used to manage Azure resources. The advantages to using it are that you can access functionality not available in the portal, and you can automate your work. You can …

Read More

Performance and Load testing with JMeter

Basics JMeter is an open-source software application that can be used for both performance and load testing. Performance testing focuses on how a system performs overall under a given configuration. It gives you diagnostic information which …

Read More

Rendering QR Codes on fillable PDFs

I was recently working on a project where a fillable PDF form was populated with data and a QR code needed to be placed on the form. Here an easy way to accomplish that: First, load the form – in this example I just read it from a file. I a …

Read More

Estimating Software Projects More Accurately

Software projects are notoriously difficult to estimate accurately. After years of building successful custom software projects, I've learned a lot of helpful DOs and DON'Ts for creating accurate estimates and had the opportunity to test th …

Read More

Trailhead Goes Carbon Neutral, And So Can You

We were inspired recently when Microsoft announced that it was going carbon neutral by 2030, and completely paying back its historic carbon debt by 2040. Amazon has also made the similar, though slightly less lofty pledge to be carbon neutr …

Read More

One Dash vs Two Dashes in Shell Commands

When you're using a shell command, it's common to pass options to that command using dashes–which are also called hyphens. These options can be specified with either a single dash (-) or a double dash (–). But have you ever wondered when to …

Read More

Rotate everything with SkiaSharp and Xamarin

In this post, I'm going to explain object rotation from the mathematical point of view and demonstrate different methods of how to draw rotated objects in SkiaSharp. Rotation and Math So, what is rotation? Usually, when someone says that he …

Read More

Building a Floating Label Entry with Xamarin.Forms

The Float Label Pattern was introduced as a UI concept back in 2013 by Matt (@mds). Less than a year later it became a part of the "Material" design guidelines. There are a number of ways to implement floating labels in a Xarmarin Forms pro …

Read More

Gradient Label Control in Xamarin.Forms

As Xamarin.Forms developers we often face cases when controls are not customizable enough to meet our requirements. Luckily for us, the Xamarin team has foreseen these needs and offered a way of how the rendering process can be overridden t …

Read More

Expandable UITableView with Xamarin iOS

Expandable UITableViewCells with variable height, beautiful animations and no 3rd party libraries – all with just a few lines of code. Interested? Let me show you how I got all of these. Let’s start by taking a look at the final result: The …

Read More

Working from Home for Fun and Profit

I've been working remotely–or telecommuting, as it is often known–for nearly 10 years, and in that time I've learned a few DOs and DON'Ts for being a successful remote worker. I'm far from perfect, and am still learning and getting it wrong …

Read More

AspNetCore – multi tenant tips and tricks

In two recent posts, I blogged about SignalR in .AspNet Core 2.1, and automating boilerplate multitenancy code in Entity Framework Core 2.1. Both these blogs alluded to knowing the identity of the calling user through claims and dependency …

Read More

Hello, ASP.NET Core 2.1

UPDATE, 2018 May 30: It's alive. The dotnet team officially announces 2.1 on their blog! The newest version of ASP.NET Core will be released in just a few days, the team announced this week. They're targeting Wednesday, May 30, 2018, with a …

Read More

SignalR as a service in Azure

In a previous post, I wrote about using SignalR in AspNetCore. Today, I tried the next step up – SignalR as a service! You will find the announcement here. This page has more details. So why would you want to run SignalR as a service, rathe …

Read More

SignalR in AspNetCore

We've all been waiting for the first production release of SignalR for AspNetCore, and supposedly it's going to be out there any day now. Impatient as I am, I started using 1.0.0-preview2-final – and it rocks!  Here are some tips and t …

Read More

A simple, generic Excel file exporter

I recently needed to write a routine that exports a query to an Excel file, and came up with a generic solution I thought might be helpful to share. The code is in an AspNetCore project, but the same principles would work in other .NET scen …

Read More

Gradient backgrounds in Xamarin iOS

Did you notice that graphic designers love gradients? It was a trend in mobile designs that started in 2017 and now it’s getting even more popular. Let me share a few useful code snippets that will help you to make awesome looking iOS appli …

Read More

Xamarin.Forms Fancy Animations

Xamarin.Forms includes its own animation infrastructure that allows for easy creation of simple animations, while also being versatile enough to create complex animations. Let’s take a look how we can reproduce some popular animations with …

Read More

Time to Update that Silverlight Application

A decade ago, Silverlight was king and I loved every minute of it. XAML provided precise and flexible layout, the Silverlight plugin alleviated most browser compatibility issues, MVVM and data binding allowed you to reduce coupling, and WCF …

Read More

Solidity Development: Setting up the environment

Nowadays, everything related to the crypto-world is becoming more and more popular. I bet you've also thought about launching your own successful startup with millions in investments! As the saying goes, though, no pain no gain. But at …

Read More

Securing Angular Applications

Single Page Applications or SPA have become the gold standard for modern web applications. Almost every application contains two major areas: secured and unsecured. Today we will learn how to restrict access to the secured area for non-auth …

Read More

Android App Shortcuts in Xamarin

Great mobile apps and luxury cars are similar, in that a lot of attention is paid to even the smallest details. Since Android version 7.1 (API 25) there is a new feature that lets users get to a specific screen or an action right from the h …

Read More

It's Alive! My First Azure Bot Service

Microsoft CEO Satya Nadella says "bots are the new apps." If that's the case, then developers are going to need a cross-platform way to build those bots, just like they have cross-platform frameworks for building mobile app. Good news, beca …

Read More

Kendo Grid with Angular2: From Scratch

At Trailhead, we've been making the switch from Angular 1 to Angular 2 for our new web front-end projects. The selection of tools and components for Angular 2 has been slowly expanding, but it is still young and somewhat limited at times, w …

Read More

VSTS: Build and Deploy on your own Server

Visual Studio Team Services provides an excellent cloud-based solution for project management and code repositories (both TFS and Git). Part of our standard process at Trailhead is to set up Continuous Integration builds and deployments so …

Read More

Restoring a SQL Server backup to Amazon RDS

The other day I was faced with this task, and ran into quite a few issues on the way. Despite intense googling and corresponding on the AWS forums, I ended up having to resolve it myself, so by blogging about it I hope it might make someone …

Read More

What's all the hoopla about Containers and Docker?

I don’t know about you, but in my circles I hear a growing buzz about Containers, Docker, and how this will revolutionize the way we deploy software. What is this new thing and how will it affect you? The Short Version The short version is …

Read More

Trailhead Welcomes Josh Eastburn

Trailhead Technology Partners is very pleased to announce the addition of our newest partner, Josh Eastburn. Current partners, J. and John, give their thoughts about the expanded partnership below, and welcome Josh to the team. Josh also sh …

Read More

Trailhead + ASP.NET Core 1.0

In this Edition Introducing ASP.NET Core 1.0 Trailhead's Experience with .NET Core Our ASP.NET Core services: "ASP.NET Core" Online Training > Consulting Services > Introducing: ASP.NET Core 1.0 On June 27, Microsoft announced the o …

Read More

Our first .netcore 1.0 project!

.NET Core 1.0 just shipped, and we just finished converting one of our projects from .net core RC2 to RTM. Thanks to Shawn Wildermuth and Rick Strahl for your helpful tips. It was way easier than going from RC1 to RC2! Ths pr …

Read More

Controlling lighting with a Raspberry Pi

Today I had a lot of fun cobbling together lots of the puzzle peices of the Internet of Things (IoT), Cloud and Mobile that everyone is talking about. My project allows a Raspberry Pi 3 running Windows IoT to control 12V landscape lighting, …

Read More

Microsoft Build – Day One

Recap of Build 2016 day-one announcements: Windows 10's 270M install base, Xamarin on Windows, the Anniversary Update, Bash on Windows, Microsoft Ink, the unified Windows/Xbox store, HoloLens dev kits shipping, conversation-as-a-platform, and Cortana growing up. …

Read More

Feb 2016 – The Mobile Future comes into focus!

Recently, we sent out the following newsletter that explains some exciting recent developments in cross platform mobile development. You can use the signup form to the right to add yourself to the newsletter list, we would love to stay in t …

Read More

January 2016 – New Year’s Outlook

Recently, we sent out the following newsletter to those we thought might be interested in what's happening on the technology front this year. You can use the signup form to the right to add yourself to the newsletter list, we would love to …

Read More

Hello, World!

J. Tower About a year-and-a-half ago, I had a dream of starting a company with several of my favorite friends and colleagues, and today that dream is starting to come true. Please allow me to introduce Trailhead Technology Partners. Trailhe …

Read More

Want Even More? Check Out Our Newsletter!

Along with checking back here from time to time, another great way to stay current on trends in software development is to subscribe to the Trailhead newsletter. If you’re interested, just sign up below and you’ll receive our newsletter—and only that. You can always unsubscribe whenever you like.

We won't SPAM you. We promise!

Check Out Our Newsletter!​

This field is for validation purposes and should be left unchanged.
We want you to have access to the industry news, insights, and other information we use to make decisions when developing your custom software solutions and systems architecture.

And this blog enables us to do exactly that for you.

Feel free to come back whenever you’re interested in seeing what’s new or broadening your own knowledge base.

Our Gear Is Packed and We're Excited to Explore With You

Ready to come with us? 

Together, we can map your company’s software journey and start down the right trails. If you’re set to take the first step, simply fill out our contact form. We’ll be in touch quickly – and you’ll have a partner who is ready to help your company take the next step on its software journey. 

We can’t wait to hear from you! 

Main Contact

This field is for validation purposes and should be left unchanged.

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the form below. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Montage Portal

Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.

Project Background

Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.

Logistics

We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:

Custom App and Software Development

We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.

Cloud and Mobile Applications

The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.

User Experience and Interface (UX/UI) Design

We want your end users to have optimal experiences with tech that is highly intuitive and responsive.

DevOps

This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.

Trailhead stepped into a challenging project – building our new web architecture and redeveloping our portals at the same time the business was migrating from a legacy system to our new CRM solution. They were able to not only significantly improve our web development architecture but our development and deployment processes as well as the functionality and performance of our portals. The feedback from customers has been overwhelmingly positive. Trailhead has proven themselves to be a valuable partner.

– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services

Technologies Used

When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

Expertise

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

  • Project Management
  • Architecture
  • Web App Development
  • Cloud Development
  • DevOps
  • Process Improvements
  • Legacy System Integration
  • UI Design
  • Manual QA
  • Back end/API/Database development

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

Our Gear Is Packed and We're Excited to Explore with You

Ready to come with us? 

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Thank you for reaching out.

You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.

Montage Portal

Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.

Project Background

Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.

Logistics

We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:

Custom App and Software Development

We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.

Cloud and Mobile Applications

The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.

User Experience and Interface (UX/UI) Design

We want your end users to have optimal experiences with tech that is highly intuitive and responsive.

DevOps

This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.

Trailhead stepped into a challenging project – building our new web architecture and redeveloping our portals at the same time the business was migrating from a legacy system to our new CRM solution. They were able to not only significantly improve our web development architecture but our development and deployment processes as well as the functionality and performance of our portals. The feedback from customers has been overwhelmingly positive. Trailhead has proven themselves to be a valuable partner.

– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services

Technologies Used

When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

Expertise

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

  • Project Management
  • Architecture
  • Web App Development
  • Cloud Development
  • DevOps
  • Process Improvements
  • Legacy System Integration
  • UI Design
  • Manual QA
  • Back end/API/Database development

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

Our Gear Is Packed and We're Excited to Explore with You

Ready to come with us? 

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Thank you for reaching out.

You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.