I recently migrated my ASP.NET Core 2.2 app to ASP.NET Core 3.1 so I thought I will document some experiences and learnings from this exercise. The ASP.NET Core 2.2 app … Continue reading Migrating ASP.NET Core 2.2 App to ASP.NET Core 3.1 on Azure App Services
“I’ve already written code once, now why I do need to repeat the same thing in text?”
Tracer Bullet Testing or Synthetic Transactions or Synthetic Monitoring is a way of testing your service/app in production where its supposed to run but without affecting users/clients/external systems.
Couple of days ago, we had an outage in one of our production APIs that’s built with ASP.NET Core 2.0 and all we got to see in all our logging … Continue reading Reporting Model Validation Errors in ASP.NET Core 2.0
In this post I will show how I recently set-up a multi-environment (Testing, Acceptance and Production) CI/CD pipeline to build my application in Azure DevOps but deploy to Azure AppService using Octopus with all the steps scripted using Cake.
Monitoring the health of your application in production is a crucial aspect of software development because at any given point in time, you want to be reasonably certain about how your business critical application is performing and you want to be alerted to any problems that might be brewing up in the application before your customers do.
Many articles talk about the what of this style but in my view, not enough talk about the how. In this post, I am going to try and show one way to actually structure the solution to be more in line with the hexagonal ports and adapters style.
This is the continuation of the previous article where I implemented the Pipes and Filters integration pattern but left out the continuous deployment aspect of it.
The new csproj is lightweight, you don’t have to unload the project to edit the csproj file and you can add package references directly to the csproj file…
…the whole business process can be divided into smaller asynchronous sub-processes with each one feeding i.e. “piping” its output into the input of the subsequent process(es). At each stage some processing is done for e.g. data enriching, filtering etc and this processing generically is termed as a “filter”.