.Net Developer roadmap 2024.
Apprendimento delle basi dello sviluppatore:
- Assicurarsi di conoscere le nozioni di base elencate di seguito.
- Capire come funziona Internet.
- Protocolli HTTP / HTTPS.
- Concetti di API.
- Codici di stato HTTP.
- Imparare i concetti di programmazione orientata agli oggetti.
- Migliorare le capacità di risoluzione dei problemi.
- Imparare le strutture dati e gli algoritmi di base.
- Essere fluenti nella ricerca di soluzioni su Internet.
- Acquisire familiarità con i prompt di ChatGPT.
- Imparare GIT in modo approfondito.
- Esplorare GitHub con un uso pratico.
Nel mondo di .NET Developer roadmap 2024
Per iniziare a lavorare con .NET, è necessario apprendere le seguenti nozioni di base.
Conoscere l’ecosistema .NET.
- Imparare le sintassi e le caratteristiche di base del linguaggio C#. C# 12 è l’ultima versione del linguaggio che viene fornita con .NET 8.
- Iniziare dalle basi, costruendo una semplice applicazione .NET Console.
- Imparare a conoscere le variabili, gli if, gli else, i while e tutti gli elementi di base.
- Diventare esperti nell’uso dei comandi .NET CLI.
- Padroneggiare IDE come Visual Studio o altro editor di codice come Visual Code.
- Comprendere la gestione dei pacchetti NuGet.
- Concentrarsi solo su .NET 6 o superiore. Idealmente, .NET 8 è ciò che si dovrebbe guardare.
C# avanzato
- Una volta apprese le nozioni di base, si può procedere avanti.
- Imparare le basi delle pratiche di codice pulito (“clean code”).
- Comprendere i vari modelli di progetto C#. Usare la .NET CLI!
- Esercitarsi a scrivere codice disaccoppiato.
- Comprendere le interfacce, l’iniezione di dipendenza e l’inversione di dipendenza.
- Imparare i principi SOLID.
- I design pattern sono importanti. Conoscerne almeno alcuni.
- Partecipare a revisioni paritetiche/contributi open source per ottenere più feedback.
- Non complicare il codice, mantenerlo semplice e pulito
- Leggere molto codice! Ci sono tonnellate di progetti C# open-source su GitHub
- Scrivere test unitari
Fondamenti di database nel .Net Developer roadmap 2024
Un passo fondamentale nel percorso di apprendimento.
- Imparare a conoscere la progettazione dei database e i concetti correlati.
- È necessario conoscere le sintassi SQL.
- Aggiungete anche le Stored Procedures (non è detto che venga usato regolarmente, ma è bene conoscerle).
- Capire quali sono i database relazionali e quali quelli NoSQL e quando scegliere, cosa scegliere.
- Conoscere le ottimizzazioni dei database.
- Lavorare con RDMS come PostgreSQL, MSSQL, ecc. come MongoDB, AWS DynamoDB, Azure ComsosDB, ecc,
ASP.net Core
E’ bene concentrarsi su ASP.NET Core e sullo sviluppo web. Si utilizza questa
tecnologia per costruire potenti API.
- Creare un’API Web ASP.NET Core di esempio e imparare le basi.
- Comprendere il ciclo di vita di una richiesta in un’applicazione ASP.NET Core.
- Conoscere i controllori e le API minimali.
- Comprendere i middleware.
- Instradamento.
- Filtri e attributi.
- Varie architetture API come API REST, GraphQL e gRPC.
- Convenzioni dell’API REST.
- Comprendere il modello MVC.
- Come caricare le configurazioni e il pattern IOptions.
- Cicli di vita dei servizi (Scoped, Transient e Singleton), e
- Iniezione di dipendenza (DI).
- Autenticazione e autorizzazione
- Metodi di estensione.
- Gestione delle eccezioni con IExceptionHandler.
ORM: Mappatura relazionale degli oggetti
Una tecnica per creare un ponte tra le classi C# e un database vero e proprio. In altre parole, un modo affidabile per integrare le applicazioni .NET con un database.
Entity Framework Core (altamente consigliato)
- Approcci “Code First” e “Database First”.
- Migrazioni e comandi CLI di .NET EF.
- LINQ è il vostro amico.
- Varie strategie di caricamento dei dati.
- DbContext, filtri di query e schemi.
- Intercettori in EF Core.
- Dapper, se si cerca un modo più RAW per eseguire i comandi e le query SQL. Comandi e query SQL.
- MongoDB, AWS DDB o altri driver e integrazioni di database NoSQL.
- integrazione.
Autenticazione e autorizzazione
Un passo fondamentale nel percorso di apprendimento.
- Capire perché abbiamo bisogno di autenticazione e autorizzazione.
- Creare il proprio semplice sistema di Autenticazione in ASP.NET Core WebAPI consentendo a un utente di inviare un’e-mail/una password, di provare a crittografare la password e memorizzarla in un database.
- Imparare ASP.NET Core Identity.
- Endpoint di identità in .NET 8.
- Utenti, ruoli e permessi.
- Conoscere i cookie.
- Token Web JSON (JWT).
- Server di identità.
- Autenticazione OpenID.
- Protocolli OAuth 2.0 e diversi flussi di autenticazione.
- Conoscere i fornitori di OAuth come KeyCloak, Auth0, AWS
- Cognito o Azure AD.
- Gestione delle richieste e dei permessi.
- Multitenancy con Finbuckle.
Progettazione di sistemi e soluzioni
Dopo aver acquisito una conoscenza di base della costruzione di un’applicazione .NET, è necessario concentrarsi sull’apprendimento dei concetti di progettazione del sistema.
Meglio è iniziare a costruire applicazioni facili da mantenere e leggibili.
Sviluppare una buona conoscenza della progettazione del sistema per sistemi in pezzi più piccoli per risolvere i problemi.
Imparare a conoscere i Monolith e i Microservizi e capire quando utilizzarli.
Architettura guidata dagli eventi.
Praticare l’architettura pulita con la separazione delle preoccupazioni.
Architettura a fette verticali.
Concetti di Domain Driven – Eventi di dominio, oggetti di valore, modellazione del dominio ricca
contro la modellazione anemica del dominio, contesti vincolati.
Microservizi
Per costruire sistemi veramente disaccoppiati, è necessario conoscere i
I microservizi.
- Quando usare i microservizi.
- I compromessi e i vantaggi.
- La comunicazione tra i servizi utilizzando broker di messaggi e
- bus come RabbitMQ o Kafka.
- Masstransit.
- Sourcing degli eventi e coerenza eventuale.
- Osservabilità.
- Containerizzazione e orchestrazione.
- Segreti.
- Gateway API come YARP, Ocelot.
- Bilanciamento del carico.
- E molto altro ancora!
Testing
Questo è un aspetto che spesso tendiamo a saltare o a rimandare a un secondo momento. Ma assicuratevi di scrivere i casi di test.
- Test unitari.
- Test di integrazione.
- Pacchetti NuGet xUnit / NUnit.
- Asserzioni fluenti (consigliate).
- Bogus per la generazione di dati fittizi.
- K6 per i test di carico.
- Programmazione guidata dai test. Rendere il codice testabile e garantire
- una buona copertura del codice.
Caching
- Una funzione cruciale per migliorare le prestazioni delle applicazioni Web.
- Imparate i vari concetti di cache.
- Tecniche di invalidazione della cache.
- Scadenze della cache: finestra scorrevole, scadenza assoluta.
- Caching in memoria / in processo.
- Caching distribuito con Redis.
- Caching a livello di applicazione (Response Caching, EF Caching).
Logging
- Migliorare l’osservabilità delle applicazioni e il tracciamento dei bug.
- Interfaccia ILogger di Microsoft
- Serilog: Questo popolare pacchetto di logging è spesso l’unico
- e rappresenta il mio strumento preferito per ogni nuovo progetto C# su cui lavoro!
- progetto C# su cui lavoro!
- Imparate a conoscere i vari sink.
- Registrazione strutturata.
- Registrazione SEQ Serilog per scopi di sviluppo.
- Configurazioni e CoRelationId di Serilog.
- NLog: una buona alternativa.
- Imparate anche a conoscere Kibana e lo stack ELK!
(Fonte)
Innovaformazione, scuola informatica specialistica promuove la cultura IT fra privati ed aziende.
Nell’ambito dei corsi .Net trovate l’offerta formativa sul nostro sito su questo LINK.
INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)
