Novità di Microsoft .Net Framework 4.8.0

Microsoft ha rilasciato .Net Framework 4.8, l'ultima versione del framework di sviluppo delle applicazioni dell'azienda per Windows. L'aggiornamento apporta una serie di correzioni di bug, patch di sicurezza e miglioramenti a Common Language Runtime, ASP.Net, Windows Forms, Windows Presentation Foundation e Windows Communication Foundation. 

Dove scaricare .Net Framework 4.8

È possibile scaricare la versione di produzione di .Net Framework dal sito .Net di Microsoft. 

Versione attuale: le nuove funzionalità di .Net Framework 4.8

Rilasciato il 18 aprile 2019, .Net Framework 4.8 include le seguenti nuove funzionalità e miglioramenti:

  • Per NGEN (Native Image Generator), le immagini in .Net Framework non hanno più sezioni scrivibili ed eseguibili. Ciò riduce la superficie disponibile per gli attacchi che tentano di eseguire codice arbitrario modificando gli indirizzi di memoria NGEN.
  • La scansione anti-malware viene ora avviata per tutti gli assembly, caricati dal disco o dalla rete. In precedenza, il runtime .Net avviava solo le scansioni (da Windows Defender e da software anti-malware di terze parti che implementavano l'interfaccia di scansione antimalware) degli assembly caricati dal disco. 
  • Il compilatore .Net Framework 4.8 JIT è basato su .Net Core 2.1. Correzioni di bug e ottimizzazioni basate sulla generazione di codice da .Net Core 2.1 sono ora disponibili in .Net Framework.
  • Nella BCL (libreria di classi di base), la libreria di compressione esterna Zlib è stata migliorata, il numero di finalizzazioni di oggetti che si verificano a seguito dell'utilizzo di X509Certificate2 e dei tipi correlati è stato ridotto ed è stata aggiunta un'API per ottenere identificazione personale con un chiamante- algoritmo digest specificato.
  • Inoltre, il BCL in .Net Framework 4.8 riduce l'impatto FIPS (Federal Information Processing Standards) sulla crittografia. A partire da .Net Framework 2.0, le classi dei provider crittografici hanno generato un'eccezione quando le librerie crittografiche sono configurate in modalità FIPS. Con .Net 4.8, queste eccezioni non verranno più generate per impostazione predefinita.
  • I miglioramenti dell'accessibilità sono offerti per Windows Form, per migliorare la comunicazione dei dati delle applicazioni agli ipovedenti.
  • In ASP.Net, è stato risolto un problema relativo alla gestione di intestazioni HTTP multivalore che potrebbero influire sull'elaborazione dei dati in più parti.
  • Sono stati risolti i problemi di CLR (Common Language Runtime) in cui venivano inviati valori errati come EventListeners.
  • Le etichette abilitate in Windows Forms ora vengono sempre renderizzate tramite un colore del testo a contrasto elevato quando è abilitata una modalità a contrasto elevato. Ciò influisce sulle applicazioni ricompilate per target .Net Framework 4.8.
  • L'algoritmo di hash utilizzato per generare checksum dei file XOML durante la creazione di progetti con file XOML è stato modificato. Gli sviluppatori possono ancora utilizzare l'algoritmo precedente.
  • L'algoritmo di hashing per il calcolo delle chiavi delle cache di memoria interne è stato modificato. Gli sviluppatori possono ancora utilizzare l'algoritmo precedente.
  • È stata risolta una perdita di memoria che interessava HttpWebRequest durante la comunicazione con un server HTTPS tramite un proxy.
  • In Windows Presentation Foundation è stata risolta una perdita di memoria che si verificava durante la rimozione di elementi di dati dalle raccolte padre quando era presente UIAutomation.
  • Windows Presentation Foundation ha aggiunto il supporto per Per-Monitor V2 DPI Awareness e Mixed-Mode DPI.
  • In Windows Communication Foundation, è stato risolto un problema di accessibilità che causava un tema errato dei controlli ComboBox nei temi ad alto contrasto.
  • In Windows Communication Foundation, ServiceHealthBehavior è descritto come un comportamento del servizio aggiunto alla raccolta ServiceDescription.Behaviors. Può restituire lo stato di integrità del servizio con codici di risposta HTTP e abilitare la pubblicazione dell'integrità del servizio. 

Versione precedente: le nuove funzionalità di .Net Framework 4.7.2

Già popolare in tecnologie come Spring Framework, l'inserimento delle dipendenze consente a un oggetto di fornire le dipendenze di un altro oggetto. .Net Framework 4.7.2 semplifica l'utilizzo di questa funzionalità nei moduli Web ASP.net. Sono supportati l'inserimento basato su settaggio, interfaccia e costruttore e altri framework di inserimento delle dipendenze possono essere collegati.

Altre nuove funzionalità in .Net Framework 4.7.2 includono:

  • La SameSiteproprietà viene aggiunta al framework Web ASP.Net, per affermare che un cookie non deve essere inviato con richieste cross-site. L'obiettivo SameSitedell'attributo è ridurre la perdita di informazioni e proteggere dagli attacchi di falsificazione tra siti. La proprietà viene aggiunta in HttpCookieType. È anche presente nei cookie FormsAuthentication e SessionState.
  • Per migliorare la sicurezza e la conformità, l'autenticazione di Azure Active Directory è supportata tramite una parola chiave di autenticazione interattiva aggiunta all'autenticazione a più fattori. È un'estensione della stringa di connessione SqlClient.
  • Le API vengono aggiunte ai tipi di raccolta standard, abilitando nuove funzionalità come i costruttori HashSet che consentono di costruire HashSet con una capacità. Ciò offre un vantaggio in termini di prestazioni quando si sa qual è la dimensione dell'HashSet.
  • I miglioramenti crittografici semplificano la creazione di oggetti e chiamate RSA e DSA ImportParameters.
  • Windows Presentation Foundation (WPF) ha aggiunto la StaticResourcefunzionalità dei riferimenti che consente a un assistente diagnostico di ricevere una notifica quando StaticResourceviene risolto un riferimento. Ad esempio, un assistente diagnostico come la funzione Modifica e continua di Visual Studio potrebbe voler aggiornare gli usi di una risorsa quando cambia o sostituisce un valore in un dizionario risorse.
  • La WorkflowDesignerColorsclasse è stata aggiunta per migliorare le esperienze dell'interfaccia utente in modalità ad alto contrasto.
  • Tramite la decompressione Zlib, la velocità effettiva è stata migliorata per la decompressione di archivi Zip utilizzando un'implementazione nativa di Zip.
  • I carichi di lavoro .Net Framework ora possono generare richieste di firma del certificato, consentendo la generazione di richieste da organizzare negli strumenti esistenti.
  • È stato aggiunto il supporto per monitor per le applicazioni Windows Presentation Foundation e VSTO (Visual Studio Tools for Office) compatibili con HDPI distribuite tramite ClickOnce.
  • Il supporto è migliorato per .Net Standard 2.0.
  • Gli assistenti diagnostici possono individuare ResourceDictionaries creati da un determinato URI di origine.

Versione precedente: novità di .Net Framework 4.7.1

Con il rilascio da parte di Microsoft di .Net Framework 4.7.1 a metà ottobre 2017, la piattaforma di sviluppo ha ottenuto miglioramenti critici per la raccolta dei rifiuti, la sicurezza e la configurazione dell'applicazione. 

Per migliorare le prestazioni di allocazione della memoria, in particolare per le allocazioni di heap di oggetti di grandi dimensioni, una modifica dell'architettura al Garbage Collector divide l'allocazione di heap in heap di oggetti piccoli e grandi. Le applicazioni che eseguono molte allocazioni di heap di oggetti di grandi dimensioni dovrebbero subire una riduzione del conflitto di blocchi di allocazione e prestazioni migliori.

L'aggiornamento aggiunge anche opzioni hash sicure per l'autenticazione dei moduli ASP.Net, tra cui SHA-2 (Secure Hash Algorithm), il successore più potente di SHA-1. Per compatibilità, SHA-1 è ancora l'opzione predefinita. SHA-2 è supportato anche per Message.HashAlgorithm, che specifica l'algoritmo hash utilizzato dall'accodamento dei messaggi durante l'autenticazione. 

I nuovi costruttori di configurazione in .Net 4.7.1 consentono agli sviluppatori di inserire e creare la configurazione per le applicazioni in fase di runtime. I dati di configurazione possono essere presi da sorgenti oltre il file di configurazione; nelle versioni precedenti di .Net, la configurazione è statica. Tramite i builders di configurazione, le applicazioni sono in grado di applicare un set di builder definito in modo personalizzato a una sezione di config. I costruttori possono modificare i dati di configurazione contenuti in una sezione di configurazione o crearli da zero, anche disegnando nuovi dati da fonti diverse dai file statici.

Altre caratteristiche dell'aggiornamento includono:

  • Supporto per la specifica .Net Standard 2.0, che presenta un set di API condivise da più implementazioni .Net.
  • Miglioramenti dell'accessibilità in WPF (Windows Presentation Foundation) e Windows Form, inclusi miglioramenti a Contrasto elevato, modelli di interfaccia utente migliorati ed esperienze migliorate in strumenti come l'Assistente vocale.
  • Supporto della diagnostica visiva in WPF, che consente l'uso di strumenti per analizzare gli alberi visivi XAML.
  • Supporto del compilatore ReadOnlyReferences nel linguaggio C # 7.2, per il passaggio di variabili per riferimento ma senza esporre i dati a modifiche.
  • Un'API di rilevamento delle funzionalità di runtime per determinare se un runtime supporta una determinata funzionalità.
  • SystemValueTupleTipi serializzabili , che dovrebbero semplificare la migrazione dalla  System.Tuple nuova sintassi della tupla in C # 7.0 e Visual Basic 15.5.
  • Un'API ASP.Net che fornisce un modo standardizzato per creare un HttpCookieoggetto da una stringa e acquisire le proprietà dei cookie come la data di scadenza e il percorso.
  • Una funzionalità dei passaggi di esecuzione in ASP.Net, chiamata ExecutionStepInvoker, che consente agli sviluppatori di eseguire passaggi di esecuzione all'interno del loro codice, anziché nella pipeline predefinita di ASP.Net. Questa funzionalità è destinata alle librerie interessate al flusso di esecuzione dell'applicazione.