Advanced C#

Programmazione avanzata in C#

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