Introduzione
Chi si avvicina al mondo C# e .NET spesso rimane confuso da termini come .NET Framework, .NET Core, .NET 5/6/7/8/9 e dalle differenze tra runtime, SDK e CLR.
Questa guida nasce per fare chiarezza e fornire una panoramica aggiornata e semplice da consultare.
.NET Framework: l’origine
- Lanciato nel 2002 insieme al linguaggio C#.
- Funziona solo su Windows.
- Includeva librerie per desktop (WinForms, WPF), ASP.NET WebForms e servizi Windows.
- È oggi in manutenzione, non più sviluppato attivamente (ultima versione stabile: .NET Framework 4.8.1).
Quando usarlo?
Solo se si lavora su progetti legacy Windows che non possono essere migrati.
.NET Core: la svolta cross-platform
- Introdotto nel 2016 come risposta alla necessità di avere un framework open source, modulare e multipiattaforma (Windows, Linux, macOS).
- Ha portato con sé ASP.NET Core, Entity Framework Core e un sistema di runtime più performante.
- Ultima versione: .NET Core 3.1, rilasciata nel 2019 e terminata il 13 dicembre 2022 (End Of Life).
Oggi (2025) .NET Core non è più supportato: è stato completamente sostituito da .NET 5 e successivi.
Da .NET 5 in poi: unificazione
Nel 2020 Microsoft ha unificato .NET Core e .NET Framework sotto un unico nome: .NET.
Timeline delle versioni moderne
- .NET 5 (2020) → primo passo verso un framework unico, STS.
- .NET 6 (2021) → versione LTS (Long Term Support).
- .NET 7 (2022) → versione STS, supporto terminato nel maggio 2024.
- .NET 8 (2023) → LTS, attualmente la versione più stabile e diffusa in produzione.
- .NET 9 (2024) → STS, rilasciato a novembre 2024, supporto fino a maggio 2026.
- .NET 10 (2025) → LTS previsto a novembre 2025, sarà la nuova base stabile per i prossimi anni.
Terminologia chiave
- CLR (Common Language Runtime): il motore di esecuzione di .NET.
- BCL (Base Class Library): le librerie di base (stringhe, collezioni, IO).
- SDK (Software Development Kit): tutto ciò che serve per sviluppare (compiler, strumenti, librerie).
- Runtime: il motore che esegue il codice compilato.
- LTS (Long Term Support): supporto a lungo termine (3 anni).
- STS (Standard Term Support): supporto breve (18 mesi), più innovazione.
Quale versione usare oggi?
- Nuovi progetti → usa sempre l’ultima versione LTS (oggi .NET 8, presto .NET 10).
- Progetti enterprise → LTS garantisce stabilità e patch di sicurezza a lungo termine.
- Progetti sperimentali o interni → puoi optare per STS (es. .NET 9) per avere le novità più fresche.
Tabella comparativa versioni .NET
Versione | Anno rilascio | Supporto | Note principali |
---|---|---|---|
.NET Framework 4.8.1 | 2019 | In manutenzione | Solo Windows, legacy |
.NET Core 3.1 | 2019 | EOL dic 2022 | Ultima versione Core |
.NET 5 | 2020 | EOL mag 2022 | Prima unificazione |
.NET 6 | 2021 | LTS fino a nov 2024 | Stabile, ancora usato |
.NET 7 | 2022 | EOL mag 2024 | Versione breve |
.NET 8 | 2023 | LTS fino a nov 2026 | Oggi la più diffusa |
.NET 9 | 2024 | STS fino a mag 2026 | Novità in AI & cloud |
.NET 10 | 2025 | LTS fino a nov 2028 | Prossima base stabile |
Conclusione
Il mondo .NET ha vissuto un’evoluzione significativa: da framework legato a Windows a piattaforma open source e cross-platform.
Oggi, il consiglio è chiaro: usa .NET (6, 8, 10…) e abbandona il vecchio .NET Framework, salvo obblighi di legacy.
FAQ – Domande frequenti su .NET
❓ Qual è la differenza tra .NET Framework e .NET Core?
- Risposta breve: .NET Framework funziona solo su Windows ed è usato per progetti legacy, mentre .NET Core è multipiattaforma, open source e oggi sostituito da .NET 5+.
- Dettaglio: .NET Framework include tecnologie storiche (WinForms, WPF, ASP.NET WebForms), mentre .NET Core ha introdotto ASP.NET Core, EF Core e un runtime più leggero.
❓ Esiste ancora supporto per .NET Framework?
- Risposta breve: Sì, ma solo in manutenzione: riceve patch di sicurezza ma nessuna nuova funzionalità.
- Dettaglio: L’ultima versione è .NET Framework 4.8.1 ed è ancora supportata per applicazioni Windows legacy.
❓ Quale versione di .NET usare per un nuovo progetto?
- Risposta breve: Per nuovi progetti scegli sempre l’ultima versione LTS: oggi .NET 8, presto .NET 10.
- Dettaglio: Le versioni LTS garantiscono 3 anni di supporto, ideali per produzione enterprise.
❓ Cosa significano LTS e STS in .NET?
- Risposta breve: LTS significa supporto a lungo termine (3 anni), STS supporto breve (18 mesi).
- Dettaglio: Le versioni STS includono le ultime novità ma vanno aggiornate più spesso, mentre LTS privilegia stabilità e sicurezza.
❓ Posso migrare da .NET Framework a .NET 8 o 10?
- Risposta breve: Sì, ma la complessità dipende dal tipo di applicazione: app moderne migrano facilmente, quelle legacy richiedono refactoring.
- Dettaglio: API come WebForms e WCF non sono supportate e vanno sostituite (es. gRPC al posto di WCF).
❓ C# e .NET sono la stessa cosa?
- Risposta breve: No: C# è un linguaggio di programmazione, .NET è la piattaforma che lo esegue.
- Dettaglio: C# è solo uno dei linguaggi supportati da .NET, insieme a F# e VB.NET.
❓ Quando esce .NET 10?
Dettaglio: Sarà la nuova base stabile per progetti enterprise e cloud-native.
Risposta breve: .NET 10 sarà rilasciato a novembre 2025 come versione LTS con supporto fino al 2028.
Risorse consigliate per approfondire
- Microsoft: .NET and .NET Core Support Policy — policy ufficiale sul ciclo di vita di .NET e .NET Core, versioni supportate, date di fine supporto. Microsoft
- Microsoft: .NET Migration Documentation — guida per migrare applicazioni da .NET Framework a .NET moderno. Microsoft Learn
- Microsoft: Microsoft .NET and .NET Core – Lifecycle — panoramica sul supporto delle versioni, storico e dettagli del ciclo di vita. Microsoft Learn
- Microsoft: .NET Framework official support policy — info su .NET Framework, versioni supportate, policy di distribuzione con Windows. Microsoft
- Microsoft: Porting da .NET Framework a .NET (Port from .NET Framework to .NET) — cosa considerare, compatibilità, strumenti e strategie per il porting. Microsoft Learn
- Microsoft: Migrate from ASP.NET Core in .NET 7 to .NET 8 — guida operativa per aggiornare da .NET 7 ad .NET 8. Microsoft Learn