• Leading Improvement through Honest Feedback

    16 Jul 2019

    if it hurts, do it more often

    When was the last time that a waitress asked about your meal and you were really honest?

    Don’t feel ashamed. I’ve definitively been there. Saying that the meal was good when It was dry or too salty for your taste, is more common than we can think.

    Unfortunately, being honest when something is wrong isn’t something that we humans tend to feel comfortable about.

    Probably you are asking: why the hell should I be honest and risk to advancing into a difficult conversion?!

    Because the worst kind of feedback is fake feedback.

    Read more

  • Logging gRPC requests using Serilog

    10 Apr 2019

    Using a Middleware to log Api Requests in ASP.NET Core is a no brainer.

    If you have given a try to gRPC, probably you want to follow the same technique and you will wish that the experience was the same.

    I've faced this challenge, in order to log the requests to my RPC services and I've been looking for a solution where:

    • I can use Serilog to log the requests
    • I know all the requests made to my services
    • I know how long each request takes to respond
    • I know the response status
    • I can correlate each log entry using a Correlation ID

    Read more

  • Versioning .net Core applications using Cake

    27 Jun 2018

    If you are moving to .net Core and you want to implement a versioning strategy in your application, now you have an awesome alternative to the good old fellow "AssemblyInfo".

    The alternative is the Directory.build.props file. If you place these file in the root folder that contains your source code, when MSBuild runs will add to every project the properties defined in the Directory.build.props.

    In this post, we will see how to quickly setup a solution with multiple projects and use Directory.build.props with Cake to build and increment the version number.

    Read more

  • Exploring the Docker Container metaphor

    05 Mar 2018

    This post is my interpretation of the Container metaphor and how I use it to understand the concepts and explain containers to others.

    Containers is one of the hot topics in the Software Development world and Docker is the technology that everyone wants to play with.

    Thanks to this hype, everyone has at least a brief idea of what a container is. The problem is that we can easily be confused about what containers really are and the advantages of it.

    I faced the same problem and, in my case, explore the container metaphor helped me to understand it.

    So, why containers?

    Read more

  • JSON Patch Builder Online

    08 Jan 2018

    Do you know the JSON Patch format? The RFC6902 defines the structure to express a list of operations to apply over a JSON Document. This format is designed to be the payload of an HTTP PATCH method.

    The format isn't difficult, you can easily understand the rules and build it manually. But, I confess that sometimes I struggle with it, specially when I'm testing a PATCH to a complex object. So... I built a Tool to help me.

    Read more

  • Implementing the HTTP Prefer Header with an ASP.NET Core Filter

    15 Nov 2017

    Have you heard about Prefer Header for HTTP? The RFC-7240 defines how this header can be used by a client, in order to request that certain behaviors be employed by a server while processing a request.

    Why does it matter? You probably have consumed API's where you use the HTTP POST or PUT method to modify a resource and the server returns a complete representation of the resource. In other cases the API only returns the Identifier of the resource created, for example.

    What if you want to defer to the client to specify which optional behavior is preferred? That's why you need to know about the HTTP Prefer Header.

    Read more

  • Please don't name it "Utils"!

    12 Sep 2017

    Imagine that you are working on a code base that you are really proud of. Everything is building up together with great quality and you reach the moment where you need to send a mail. Simple task to you for sure.

    You know that eventually you will need to send emails in other points of your application and because you master the DRY principle you decide to write an "Utils" class.

    Good idea, isn't it? NO!!!! Absolutely no!

    Why not? What's wrong with an "Utils" folder or an Utility class?

    Read more

  • Rebuilding SQL Database indexes using Azure Function

    20 Jul 2017

    Do you know that index management is under your responsibility and you need to pay attention to how fragmented they are? If you are reading this post, probably you know that (I hope that you didn't find it in the hard way).

    Azure SQL Database takes care of a lot of maintenance tasks, but keeping your Indexes healthy isn't one of them.

    Indexes get fragmented and fragmented indexes is a performance killer. The good news is that I can help you dealing with that.

    Read more

  • 5 reasons to convince your boss to adopt Cake (C# Make)

    26 Jun 2017

    Have you taken a look into Cake Build?! It's awesome, isn't it?

    Probably you are already convinced, but you are having trouble convincing your boss that it's worth to give him a chance.

    To help you I give you here five compelling reasons they can't argue with.

    Read more

  • Tuga IT - Build Automation? It's a piece of Cake

    23 May 2017

    It was a huge privilege to share my experience with Cake Build at Tuga IT.

    You can find here the slides and demos that have been used, as well as some references related to the theme.

    Read more