• 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

  • Adding Custom Arguments to Topshelf

    07 Dec 2016

    Topshelf is an amazing framework that let you easily host and build Windows services.

    Topshelf is really extensible, but recently I struggled to find how to configure a custom argument to the service.

    This post is simple tip to help you create custom arguments to a Topshelf service and use it in the command line.

    Read more

  • Create a Web Deployment Package with Cake Build

    04 Nov 2016

    This is simple tip to help you create Web Deployment Packages with Cake.

    Read more

  • NetPonto - Como construir software altamente eficiente com CQRS

    19 Sep 2016

    Esta semana tive a oportunidade de falar um pouco sobre a minha experiência com CQRS na Comunidade NetPonto.

    Se não tiveste a oportunidade de assistir, coloco aqui os slides, o vídeo da sessão, bem como algumas referências sobre o tema.

    Read more

  • Azure WebJobs dependency injection with Unity

    08 Aug 2016

    In the early days of Azure WebJobs use Dependency Injection was a little bit tricky because the Triggered methods were only static methods.

    Since the WebJobs SDK 1.0.1 you are no longer limited to static methods and that can change how you approach Dependency Injection on WebJobs.

    In this blog post I will show how you can use Unity to inject dependencies into your WebJobs.

    Read more

  • The shining new C# Scripting API

    03 Feb 2016

    Say hello to the new Scripting Language: C#!

    Since the first days the .NET platform lacks scripting capabilities compared to dynamic languages like JavaScript or Ruby, but those days are over.

    Why this is awesome?! If you are familiar with the capabilities that VBA brings the Office users and how many "Excel VBA Programming" books were sold to non developers, you will understand why. And it's open source!!!

    Read more

  • Is CQRS too complicated? No!

    09 Nov 2015

    How do you feel after reading a few articles about CQRS (Command Query Responsibility Segregation)? Confused?!

    The good news is that's not your problem.

    CQRS is a simple concept, but usually is presented side by side with other patterns creating the perception that CQRS requires a ton of elements to work.

    This post pretends to demonstrate that CQRS can be a simple concept that can evolve according to your needs.

    Read more