Skip to main content

Posts

NuGet - Lock files

A feature I wasn’t aware of that it existed for NuGet is the concept of a lock file. This allows to lock the project dependency graph guaranteeing that the same packages are restored every time. I was thinking that NuGet guarantees this by default but there are some situations where NuGet will not come up with the same dependency graph on every restore . Some examples: nuget.config mismatch : Different package sources can be used in different nuget.config files resulting in different packages to be used Intermediate versions : A missing version of the package, matching PackageReference version requirements, is published Package deletion : Though nuget.org does not allow package deletions, not all package repositories have this constraint. Deletion of a package version results in NuGet finding the best match when it cannot resolve to the deleted version. Floating versions : When you use floating versions like <PackageReference Include...

Know the magic word(s)

For my kids, the magic word is ‘please'. But what are the magic words for a leader? The answer is simple: I don't know. As a leader you can have the feeling that you need to have the answer to every question. Of course you don’t want to look bad in front of your peers and your team. But let’s face it, a leader can’t know everything. So don’t be afraid to use these magic words, they are essential in building psychological safety in your team. If you dare to admit you don’t have all the answers all the time, your team members will have it easier to use these magic words as well and ask for help when needed. This is far better than the alternative where they stay blocked or make poor decisions. Remark: Of course you need to use these magic words appropriately. A leader who doesn’t know anything isn’t useful either. So let it not be an excuse for being sloppy. So share your understanding of the context, explain the gaps in your knowledge, ask questions and most of...

Use cost as an architecture fitness function

As more and more applications are deployed to the cloud, cost becomes a first class architectural driver when designing and developing applications. In this post I want to explain how you can use cost as an architecture fitness function. What are architecture fitness functions? I first encountered fitness functions in the Building Evolutionary Architectures book by Rebecca Parsons, Neal Ford and Patrick Kua. They describe how close an architecture is to achieving an architectural aim. Fitness functions introduces  continuous feedback on the architecture level and inform the development process as it happens, rather than after the fact(for example when doing an architecture review). They help to ensure that a system's architecture aligns with its intended goals, meets the desired quality attributes, and adheres to best practices. Some examples of architecture fitness functions I used in the past are: Latency Monitoring: Ensure that response times for critical services d...

Azure Pipelines- Error parsing solution file

After installing the latest Visual Studio Build tools(17.7.2) on our build server, some of our (older) pipelines started to fail with the following error message: ##[error]The nuget command failed with exit code(1) and error (System.AggregateException: One or more errors occurred. ---> NuGet.CommandLine.CommandLineException: Error parsing solution file at D:\b\3\_work\154\s\Source\Example.sln: Exception has been thrown by the target of an invocation. NuGet Version: 4.1.0.2450 at NuGet.CommandLine.MsBuildUtility.GetAllProjectFileNamesWithMsBuild(String solutionFile, String msbuildPath) MSBuild auto-detection: using msbuild version '17.7.2.37605' from 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild. at NuGet.CommandLine.RestoreCommand.ProcessSolutionFile(String solutionFileFullPath, PackageRestoreInputs restoreInputs) at NuGet.CommandLine....

DevToys–A swiss army knife for developers

As a developer there are a lot of small tasks you need to do as part of your coding, debugging and testing activities.  DevToys is an offline windows app that tries to help you with these tasks. Instead of using different websites you get a fully offline experience offering help for a large list of tasks. Many tools are available. Here is the current list: Converters JSON <> YAML Timestamp Number Base Cron Parser Encoders / Decoders HTML URL Base64 Text & Image GZip JWT Decoder Formatters JSON SQL XML Generators Hash (MD5, SHA1, SHA256, SHA512) UUID 1 and 4 Lorem Ipsum Checksum Text Escape / Unescape Inspector & Case Converter Regex Tester Text Comparer XML Validator Markdown Preview Graphic Col...

ID4175–The issuer of the security token was not recognized by the IssuerNameRegistry

Yesterday I worked in close collaboration with one of my clients to renew the certificates on their ADFS server. Of course this wouldn't be an interesting post if nothing went wrong and there was nothing to learn. Changing the certificate is quite easy. First upload the certificate to your ADFS instance through the ADFS Management UI: Open Server Manager Click on “Tools”. Select “AD FS Management” from the menu. Expand “Service” node and click on “Certificates”. Click on “Set Service Communication Certificate” on the right side. Now you can activate this certificate using the following command: Set-AdfsSslCertificate -Thumbprint {thumbprint} That’s the easy part. So where did we get into trouble? After changing the certificate, some of our .NET applications started to fail with the following error message: ID4175: The issuer of the security token was not recognized by the IssuerNameRegistry. To accept security tokens from this issuer, configure the Issu...

Azure DevOps - How to get the list of organisations linked to your Azure tenant?

Every Azure DevOps organisation can be linked to an Azure tenant. When you activate this link Azure DevOps relies on an Azure Tenant for authenticating users accessing the resources inside an instance of Azure DevOps. Azure DevOps users will be mapped to corresponding identities in Azure AD. Today I had a meeting with some colleagues from the Netherlands where I got the question of how many organisations are linked to our Azure tenant. This isn't a question I get every day so I didn't know immediatelly how to get the answer. Turns out it is not that hard to get this information: Go to the Organization settings Click on Azure Active Directory Hit the Download button on the Azure Active Directory page That’s all!