Code coverage report generation for dotnet core applications

In "Working Effectively with Legacy Code" Michael Feathers introduced a definition of legacy code as code without tests, since a code without tests is difficult to maintain, extend and evolve. It doesn't matter if you are using the latest technologies, if you don't test your code, it will hard to change without breaking anything, which will make it rigid and difficult to maintain. Remember that unit tests are the base in the testing pyramid. In order to ensure that you are covering with unit tests the most important part of our application, code coverage can be helpful to detect where you have lack of tests.Code coverage is a tool offered by products like ReSharper or the Enterprise version of Visual Studio. However, these products are not free and you might not want to pay for this essential feature.But if you are working with dotnet core, it is quite easy to get a code coverage report thanks to ReportGenerator package.In order to generate your tests, first yo…

Making DDD and CQRS Microservices easy with dotnet templates

Introduction If you are working with Microservices, you might have noticed that you are repeating over and over the scaffolding for your new microservices. In order to make easier the creation of new microservices, you can build your own custom dotnet core template.

Apart from saving time, building a custom template will help to promote good practices, a proper architecture, right dependencies, etc. With this purpose, I have built my custom template, so it can help us to create easily new microservices based on CQRS and DDD, without having to build the same scaffolding each time we have to create a new service.
Microservice architecture In microservices architecture, each service can be different, according to the problem it has to solve. However, it is likely that you have a reference architecture that will provide some consistency and it will promote good practices.

In our case, the main patterns that drive our microservice architecture are Domain Driven Design (DDD) and Command and Qu…