Approfondimenti di C#. Delegates, Lambda, Events, LINQ, SQLite, EF Core, Programmazione concorrente, Semafori, MultiThreading, Task, Programmazione di rete, REST API, Minimal API .NET
- Delegates
Functions delegates
- Lambda
Lambda expressions
- Events in C#
Eventi in C#
- LINQ
LINQ (Language Integrated Query)
- EF Core
A modern object-relation mapper that lets you build a clean, portable, and high-level data access layer with .NET (C#) across a variety of databases
- SQLite
A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine
- Getting started
Entity Framework (EF) Core overview and first examples
- DbContext
A session with the database that can be used to query and save instances of your entities
- Modeling
Creazione del modello dei dati
- Migrations
Generazione e aggiornamento dello schema di un database - Migrations
- Data Types
Tipi di dato nei database: come avviene il mapping dei tipi del C# in tipi del database sottostante
- Type Conversion
Conversioni dai tipi .NET ai tipi del database utilizzato
- Data Seeding
The process of populating a database with an initial set of data
- Esercizi
Esercitazioni guidate sulla creazione di database e sull'esecuzione di query da programma C#, mediante LINQ
- Concurrent Computing
- Processes vs Threads
Concetti di processo e di thread. Caratteristiche principali dei descrittori di un processo e di un thread. Richiami di architetture di Sistemi Operativi
- C# Threads
Creazione di un thread. Ciclo di vita di un thread. Concetto di Thread Pool. Problemi comuni alla gestione di più thread. Concetti di race condition e sezione critica. Stati transienti e interferenze
- Concurrent Programming
Tecniche di sincronizzazione tra thread. Semafori. Concetto di deadlock. Costrutti per la programmazione concorrente
- TPL
Task Parallel Library: programmazione parallela e asincrona basata su task