Davide Bellone
Principal Backend developer | Microsoft MVP | Blogger
Principal Backend developer | Microsoft MVP| Blogger
Turin, Italy
Actions
Davide Bellone is a Principal Backend Developer, Content Creator and Microsoft MVP.
He's been developing software with .NET since 2014, along with other technologies such as Microsoft SharePoint, ASP.NET MVC5, MongoDB, Docker, and Azure.
He loves to explore new tools and libraries, going the extra mile when writing blog posts and delivering tech sessions.
He also runs Code4IT.dev, a tech blog where he shares tips and tricks for .NET and Azure developers and, in general, stuff that most Backend Developers will find interesting.
Davide Bellone è un Principal Backend Developer, Content Creator e Microsoft MVP.
Ha iniziato a lavorare con .NET nel 2014, affiancando tecnologie come Microsoft SharePoint, ASP.NET, MongoDB, Docker e Azure.
Adora esplorare nuovi tool e librerie, facendo sempre quel passo in piú per poter scrivere articoli e creare sessioni tecniche sempre interessanti e non banali.
Davide é la mente dietro Code4IT.dev, un blog nel quale condivide "tips and tricks" riguardanti .NET, C#, Azure, ed, in generale, gli argomenti piú interessanti ed importanti per uno sviluppatore backend.
Links
Area of Expertise
Topics
Azure DevOps: plan, build, and release projects en it
Azure DevOps is the platform provided by Microsoft to help teams collaborate using shared tools.
In this session, we're going to see what Azure DevOps is from a high-level perspective, and then we'll deep dive into Build and Release pipelines to improve our team workflows and to perform faster and better releases.
We will build a .NET application and publish it on Azure by using the CI/CD capabilities provided by Azure DevOps.
This talk is language agnostic, even though the examples showcased are built with .NET Core.
The preferred session duration is 1h.
Azure DevOps: plan, build, and release projects en it
Azure DevOps é la piattaforma fornita da Microsoft per aiutare la collaborazione dei team tramite tools condivisi.
In questa sessione andremo a vedere quali funzionalitá Azure DevOps ci fornisce con una visione ad alto livello, e spiegheró come usare le pipeline di Build e Release per migliorare i workflow all'interno del team ed effettuare release piú rapide e qualitativamente migliori.
Questo talk non fa riferimento ad un particolare linguaggio di programmazione, anche se il progetto usato come esempio é sviluppato con .NET Core.
La durata di questa sessione é di circa 1 ora.
Getting started with asynchronous messaging with Azure Service Bus en it
In a world of asynchronous communication, we can use Azure Service Bus, the message broker service provided by Azure, to send messages from one service to another.
In this session, we will talk about the main concepts of Azure Service Bus, and we will answer a simple - yet not so obvious - question: what is the difference between Queue, Topic, and Subscription?
We will also see how Azure Service Bus works on a .NET application, by sending and receiving messages between services.
Introduzione ad Azure Service Bus per la comunicazione asincrona tra servizi en it
In un mondo ricco di comunicazione asincrona, Azure Service Bus ci permette di far comunicare servizi diversi tramite code.
In questa sessione introdurremo Azure Service Bus e risponderemo ad alcune domande, come: quali sono le differenze tra Queue, Topic e Subscription?
Lo scopriremo con una sessione di live coding, nella quale faremo comunicare diversi servizi .NET tramite code.
.NET 5, 6, 7, and 8 for developers in a rush en it
Many developers are still using .NET Core 3.1, even though it reached EOL in 2022.
We now have .NET 5, .NET 6, and .NET 7 available, each with some improvements and new functionalities.
In this session, we're going to explore the most important things a .NET developer should know about the newest versions of the framework.
We will cover different topics, such as:
- new syntax (eg: new() for object initialization, primary constructor for classes, and more)
- new data types (eg: record types, PriorityQueues, DateOnly)
- new methods (eg: LINQ's minBy, ArgumentException's guard clauses)
This session targets C# developers who know that there are new versions of .NET but missed the improvements of the latest releases.
On average, this session takes 1 hour. I can add or remove topics to adjust its duration.
.NET 5, 6, 7, and 8 for developers in a rush en it
Molti sviluppatori usando ancora .NET Core 3.1, che peró ha raggiunto la fine del supporto a dicembre 2022.
Negli anni sono state rilasciate nuove versioni di .NET, arrivando a .NET 9. Ogni versione ha portato particolari migliorie e nuove funzionalitá.
In questa sessione vedremo alcune delle novitá piú importanti del mondo .NET, con particolare attenzione a C#:
- nuova sintassi (ad esempio, new(), primary constructors, switch statements)
- nuovi tipi di dato (DateOnly, PriorityQueue, records, e altro)
- nuovi metodi (MinBy, Guard clauses, e molto altro)
Partecipando a questa sessione, il pubblico scoprirà piccole e grandi cose che ogni sviluppatore rimasto a .NET Core 3.1 dovrebbe conoscere.
Questa sessione dura circa 1 ora. Si può regolare la durata togliendo o aggiungendo argomenti.
Zero to Hero: How to master Settings, Configurations and Feature Flags on .NET and Azure en it
If you need to handle complex settings, you need to find a way to centralize your settings - a central place simplifies your life.
In this session, you will learn how to manage configurations in our .NET applications, starting from the simple local definition and moving to Azure App Configurations, an incredibly useful tool that allows you to manage application settings centrally and Feature Flags, and we will integrate it with a .NET application.
I will talk about:
- Configurations in .NET, and how to read them from your local configs;
- IOptions, IOptionsSnapshot, and IOptionsMonitor;
- Moving configurations to Azure App Configuration;
- Feature Flags in .NET APIs;
- How to handle Feature Flags with Azure App Configuration.
Attendees will learn proper ways to simplify their setting management, moving their settings to Azure. They will also learn how to use Feature Flags to release different versions of the same codebase to different users to enable seamless rollout of new functionalities.
This session includes both live coding and slides.
It requires an internet connection.
Master of settings: come gestire configurazioni e Feature Flags con .NET e Azure App Configuration en it
Se hai molte configurazioni da gestire, hai bisogno di un modo per centralizzarne la gestione. Come fare?
In questa sessione imparerai a utilizzare e gestire le configurazioni in applicativi .NET. Partiremo dalla gestione in locale delle configurazioni, e poi ci muoveremo sul cloud usando Azure App Configuration.
In questa sessione parleremo di:
- definizione delle configurazioni in .NET, gestite in locale;
- differenze tra IConfiguration, IOptions, IOptionsSnapshot e IOptionsMonitor;
- come spostare le configurazioni su Azure App Configuration, e come leggerle usando .NET;
- cosa sono e come gestire i Feature Flag usando Azure App Configuration e .NET
Al termine della sessione, i partecipanti avranno imparato come gestire al meglio le configurazioni in progetti di elevata complessità, ed i benefici (e gli svantaggi) di utilizzare Feature Flags per il rilascio incrementale di parti del codice.
.NET, Serilog e SEQ - un buon trio per loggare facilmente it en
É fantastico passare una settimana a sviluppare applicativi. É molto meno bello passare una settimana a capire la causa di un bug, soprattutto se non c'é una buona strategia di logging.
Ok, abbiamo i nostri log. E ora, dove li salviamo?
In questa sessione impareremo a usare Serilog, una libreria per la gestione avanzata dei log, e SEQ, un tool che permette di salvare i log e eseguire delle query per migliorare la nostra gestione dei log.
.NET, Serilog, and SEQ - a great trio to perform logging. it en
We all love spending one full week writing code. I'm pretty sure you wouldn't like spending one week trying to figure out the root cause of a bug, especially if you can't rely on logs.
So, here's the first step: write some logs. How?
Next: where can we store them?
In this session, you will learn why logging is one of the most crucial (yet underestimated) parts of any software system. You will meet some logging best practices, and you will learn how to use Serilog as a library for logs on steroids.
We will talk about:
- Why logging is more important than you think;
- Logging, with pros and cons;
- How to log on Console with .NET;
- How to integrate Serilog in our .NET applications;
- How to integrate SEQ to store our logs, query the data, and create custom dashboards.
After this session, you will be able to understand if your logging strategy is effective, how to improve it, and how to integrate Serilog and SEQ for storing and analyzing logs.
The ideal session duration is 40 minutes.
If necessary, I can add more topics to make it fit a 1-hour slot.
This session includes some real examples and some live coding. I will need to have access to an Internet connection.
100% Code Coverage should NOT be your testing target en it
Does 100% Code Coverage ensure you have no bugs at all? Of course, no!
If your team aims at reaching 100% Code Coverage with Unit Tests, then this session is for you!
In this session, I will explain
- what is Code Coverage, and what are the benefits of a high coverage percentage
- how to generate Code Coverage reports in Visual Studio (with examples in C#)
- why you should NOT aim at 100% Coverage
- how is it possible to have 100% Code Coverage and yet have an unreliable system
- how to create valuable tests (Testing Pyramid vs Testing Diamond)
- how to create Integration Tests with NUnit
Attendees will learn practical and actionable lessons about why their 100% Code Coverage may not be as reliable as they think.
They will learn how to change their approach to tests - quality over quantity!
Performance improvements war stories in .NET API: from 12 to 2 seconds en it
The endpoint was slow.
The time to fix it was little.
In this session, I share what I learned about improving a legacy API performance from 12 to 2 seconds.
I will talk about:
- how to profile the performance of a legacy project by using Miniprofiler and Rin
- why performance bottlenecks are not only related to slow code
- how to improve your C# code to improve performance
It's not all about getting the best out of the code details: you also need the right mindset, domain knowledge, and tools to create the most performant code.
Attendees will learn practical tips for dealing with slow endpoints and why it's not only your code fault.
Storie di trincea: come ho migliorato le performance di un endpoint da 12 a 2 secondi. en it
Quell'endpoint era lento. Molto lento.
Il tempo a disposizione per migliorarne le performance era poco.
Cosa fare?
In questa sessione vi parleró di come ho migliorato le performance di questo endpoint API da 12 secondi a meno di 2.
Vi mostreró:
- come fare profiling di codice legacy usando Miniprofiler e Rin;
- perché le performance non sono solamente causate da problemi del codice;
- come ottimizzare codice C# per ottenere migliori performance.
In fondo, non si tratta solo di sapere come ottenere il meglio dal codice: bisogna guardare il problema da diverse prospettive.
I partecipanti a questa sessione impareranno un modo per analizzare il problema di endpoint poco performanti, capendo che spesso non é solamente un problema di codice.
100% Code Coverage NON deve essere lo scopo dei tuoi test en it
Siamo sicuri che raggiungere il 100% di Code Coverage possa assicurarti di non avere bug nel progetto? Certo che no!
Se il tuo team punta a raggiungere il 100% di Code Coverage tramite unit test solo per vedere quel bel numero, questa sessione fa per te!
In questa sessione vedremo:
- cos'è la Code Coverage, e quali benefici porta avere un avere una buona percentuale di Coverage;
- come generare report di Code Coverage in Visual Studio (con esempi in C#);
- perchè NON dovresti puntare ciecamente al 100% di Code Coverage;
- come è possibile avere il 100% di Code Coverage ed avere comunque un software inaffidabile;
-come creare test che portino effettivo vantaggio;
- Testing Pyramid vsTesting Diamond;
- come creare Integration Tests con NUnit;
I partecipanti impareranno, tramite esempi pratici, perchè il solo fatto di avere raggiunto il 100% di Code Coverage non rende automaticamente il loro sistema piú affidabile.
E che, come si dice, "quality over quantity"!
Cape Town MS Developer User Group (@CPTMSDUG) Monthly User group Sessionize Event Upcoming
WeAreDevelopers World Congress 2024 Sessionize Event
.NET Conference Italia 2023 Sessionize Event
.NET Community Austria
.NET 5, 6, 7, and 8 for busy developers
DotnetSheff Meetup
.NET 5, 6, and 7 for busy developers
Johannesburg MS Developer User Group (@JHBMSDUG) Monthly Sessionize Event
Codegen 2023 Sessionize Event
Torino .NET
.NET 5, 6, and 7 for busy developers.
An informal talk about the news in the .NET world.
Global Azure Torino 2022 Sessionize Event
Virtual Global Azure - Verona 2021 Sessionize Event
Global Azure Virtual 2021 Sessionize Event
Torino .NET User group - remote Meetup
Azure DevOps: plan, build, and release projects.
I've talked about some general aspects of Azure DevOps and of the DevOps practices, then I drilled down into some practical usage of Build and Release pipelines to implement CI/CD processes.
YouTube link: https://www.youtube.com/watch?v=cszxbDQ7hfs
Azure Meetup Torino
"Azure DevOps - consegna spesso, consegna meglio"
-- translation:
"Azure DevOps - deliver often, deliver better"
https://www.youtube.com/watch?v=hSCwzEm4M1A
Davide Bellone
Principal Backend developer | Microsoft MVP | Blogger
Turin, Italy
Links
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top