-
3 Common Problems with ClaimsIdentity and ClaimsPrincipal in ASP.NET Core
In .NET Core, the ClaimsIdentity class represents a user in your application. It helps describe who they are and helps manage the list of claims which describe what they can do. But if you use the wrong constructor on ClaimsIdentity or provide the subtly wrong information to that constructor, you might see some strange behavior. …
-
Profile a Unit Test in Visual Studio Fails with “File contains no data buffers”
Visual Studio has a fantastic feature in it that lets you quickly run the performance profiler against a unit test. Got a test that is running slow and you want to find out why? Go to Test Explorer, right-click that test and choose Profile. That’ll automatically run that test with the profiler attached. It usually…
-
A Handy Script for .NET Developer Containers on Docker
I’m a .NET Core developer and I mostly work on a Mac. Before docker and containers, this would have been hard to do. But now there are containers for SQL Server, the Azure Storage emulator, and the CosmosDb emulator. Developing on a Mac is easy now. And developing on a Mac makes it easy to…
-
Azure DevOps YAML Pipelines: How to Set an Environment Variable during a Build or Release
I got a question from a user of my EF Core Migrations deploy utilities last week. He was running into problems where “dotnet ef database update” was picking up the wrong version of his appsettings.json config file. At first, it looked like it was a problem with my utility’s code but after some more digging,…
-
ASP.NET Core Integration Tests with Selenium & WebApplicationFactory
WebApplicationFactory<T> is one of those awesome features in ASP.NET Core that practically nobody knows about. WebApplicationFactory<T> lets you quickly and easily run integration tests against your ASP.NET Core MVC or Web API application without having to deploy the app to an actual server like Kestrel or IIS. Instead of running in a “real” server, your…
-
Tip: How to Skip a Continuous Integration Build for an Azure DevOps Git Commit
It doesn’t happen a lot but sometimes you’ve got a git commit that you know that there’s no reason to build. For example, you’re committing a change to a Git repo and that change only has some minor documentation change. Basically, it’s something that would never effect a build or a release so there’s no…
-
“TF31002: Unable to connect” error from Visual Studio 2013, Visual Studio 2012, & Visual Studio 2010
I recently ran into a strange problem while doing an upgrade from Team Foundation Server to Azure DevOps Server 2020 for a client. Everything upgraded smoothly but users running older versions of Visual Studio couldn’t connect. They were getting the dreaded “TF31002: Unable to connect to this Team Foundation Server” error if they tried to…
-
Azure DevOps Server 2020: Missing Sprint Burndown Dashboard Widgets
I recently did an Azure DevOps Server 2020 upgrade for a client. We took their Team Foundation Server 2017 (TFS2017) instance, migrated the data to new hardware, and upgraded it to Azure DevOps 2020. Everything seemed to be fine but we got a report of a strange issue with the project Dashboards. This user wanted…
-
“I’m Not Getting Anything Done”
I’ve given the same advice to almost all of my clients — “you need a clearer product backlog”, “you’re working really hard but you’re not getting anything done”, and “you need to cut scope, launch your product with a more focused scope, launch it, and then get feedback.” It’s always seemed so simple to me:…
-
Test-Driven Development (TDD) vs. Unit Testing vs. Integration Testing: What’s the difference? Why should I care?
When I work with teams to help them improve their quality and automated testing practices, I’m surprised by how often people get worked up about terminology. “What’s Test-Driven Development?” “What’s Unit Testing?” “What’s Integration Testing?” Etc. etc. etc. Those devs aren’t wrong – there are some differences. But rather than getting freaked out about terminology,…