The Daily Friction

A daily newsletter about automation and eliminating friction.

Improving Optimization?

Improving Optimization? The traditional steps of Optimization: 1. Eliminate 2. Automate or 3. Delegate What if we added a missing element? Simplify. Before automating a convoluted workflow or delegating a tangled task, strip away the unnecessary. Make processes leaner...

read more

Unit tests for Dataverse plugins?

Unit tests for Dataverse plugins? I must admit, I almost never write unit tests for Dataverse plugins. Plugins are often quite simple, testing them in isolation is not particularly useful. Often you only test a couple of if-statements. Unit tests don't bring a lot of...

read more

New Dynamics 365 browser extension

New Dynamics 365 browser extension I'm trying out the new -Power Roles- extension and it looks very promising. You browse to a Dynamics 365 (or Power Apps) app and then you press -record-. It will then monitor all the action you do in the app and propose which...

read more

SpecFlow: Great concept, flawed execution.

SpecFlow: Great concept, flawed execution. SpecFlow, a BDD framework designed to make writing scenarios a breeze for requirement analysts. The problem: It falls short of its promise. ❌ The reality? Analysts rarely, if ever, write the specs themselves. Instead,...

read more

What if…? Production has a Staging slot.

What if...? Production has a Staging slot. Staging or QA environment needs to be the same or as close to production as it can be. Preferably, you want to restore a recent backup πŸ’Ύ from Production as Staging and then deploy your changes πŸ”„. Kudos πŸ‘ if you've fully...

read more

UUID v7 coming in .NET 9

UUID v7 coming in .NET 9 For those that didn't know, you can create Guids in different ways (algorithms). System.Guid supports UUID v4 out-of-the-box, the most used version. UUID v7 is now added, which creates Guids based on the current time. This means Guids can be...

read more

Unlock the power of .NET’s latest collection types!

Unlock the power of .NET's latest collection types! Here's a guide for when to best use the new Readonly, Immutable, and Frozen collections. You won't believe how it can optimize your code! πŸ‘‡ 1️⃣ Readonly Readonly is a readonly view of the original collection it was...

read more

πŸ’‘Tip: Convert FetchXml to a Query expression

πŸ’‘Tip: Convert FetchXml to a Query expression Have you had a situation where you have a FetchXml query, but you needed to inspect, tweak, or extend it a little? You can load it into a XElement or XDocument and fiddle with it. But you can ask Dataverse to convert your...

read more

ReadOnlySet is coming in .NET 9

ReadOnlySet is coming in .NET 9 Say goodbye to issues with IReadOnlySet interface. No more casting back to mutable sets or creating custom read-only sets! The latest Preview 6 version brings this new type. I often prefer ISet above IList in Domain Driven Design. Why?...

read more

External authentication with Dataverse ServiceClient

For a while now we can use the new Dataverse ServiceClient that replaced the old CrmServiceClient. It has three big improvements: Works for .NET 5.0 and up (.NET Core) Uses the newer MSAL.NET instead of ADAL.NET (which is out of support) for authentication Support for...

read more

Visual Studio only runs on Windows.

Visual Studio only runs on Windows. I hear this argument a lot when comparing C# with other programming languages. I don't understand this argument. First it assumes you need Visual Studio to write C#. You don't. You can also use VS Code or JetBrains Rider. But then...

read more

Subscribe to
The Daily Friction

A daily newsletter on automation and eliminating friction