Novità di .NET Framework 4

In questo argomento sono incluse informazioni sui miglioramenti e sulle funzionalità principali di .NET Framework versione 4. Non vengono fornite informazioni complete su tutte le nuove funzionalità e l'argomento è soggetto a modifiche.

In .NET Framework 4 viene introdotto un modello di sicurezza migliorato. Per ulteriori informazioni, vedere Modifiche della sicurezza in .NET Framework 4.

Altre funzionalità nuove e migliorate di .NET Framework 4 vengono presentate nelle sezioni seguenti:

  • Distribuzione e compatibilità delle applicazioni

  • Miglioramenti e nuove funzionalità principali

  • Managed Extensibility Framework

  • Elaborazione parallela

  • Servizi di rete

  • Web

  • Client

  • Dati

  • Windows Communication Foundation

  • Windows Workflow Foundation

Vedere Nuovi tipi e membri in .NET Framework 4 per elenchi dei nuovi spazi dei nomi, dei nuovi tipi e dei nuovi membri aggiunti ai tipi esistenti.

Visual Studio 2010 Service Pack 1 (SP1) include un aggiornamento a .NET Framework 4.

Distribuzione e compatibilità delle applicazioni

.NET Framework 4 è altamente compatibile con applicazioni compilate con le versioni precedenti di .NET Framework, tranne per alcune modifiche apportate per migliorare la sicurezza, la conformità degli standard, la correttezza, l'affidabilità e le prestazioni.

.NET Framework 4 non utilizza automaticamente la propria versione di Common Language Runtime per eseguire applicazioni compilate con versioni precedenti di .NET Framework. Per eseguire un'applicazione precedente con .NET Framework 4, è necessario compilarla con la versione di .NET Framework di destinazione specificata nelle proprietà per il progetto in Visual Studio oppure specificare il runtime supportato con Elemento <supportedRuntime> in un file di configurazione dell'applicazione.

Se l'applicazione o il componente non funziona dopo l'installazione di .NET Framework 4, inviare un bug nel sito Web Microsoft Connect. È possibile testare la compatibilità come descritto nell'argomento Compatibilità delle applicazioni .NET Framework 4, nonché ottenere ulteriori informazioni sulle nuove funzionalità utilizzando le Procedure dettagliate di Visual Studio 2010 e .NET Framework 4.

Per informazioni sulla migrazione a .NET Framework 4, vedere Guida di migrazione a .NET Framework 4 e Compatibilità tra le versioni in .NET Framework

Nelle sezioni seguenti vengono descritti i miglioramenti apportati alla distribuzione.

Client Profile

.NET Framework 4 Client Profile supporta più piattaforme rispetto alle versioni precedenti e consente una distribuzione rapida delle applicazioni. Diversi nuovi modelli di progetto sono ora destinati a Client Profile per impostazione predefinita. Per ulteriori informazioni, vedere Profilo client .NET Framework.

Esecuzione side-by-side in-process

Questa funzionalità consente a un'applicazione di caricare e avviare più versioni di .NET Framework nello stesso processo. Ad esempio, è possibile eseguire applicazioni mediante le quali vengono caricati componenti aggiuntivi (o componenti) basati su .NET Framework 2.0 SP1 e componenti aggiuntivi basati su .NET Framework 4 nello stesso processo. I componenti precedenti continuano a utilizzare la versione di .NET Framework precedente, mentre i nuovi componenti utilizzano la nuova versione di .NET Framework. Per ulteriori informazioni, vedere Esecuzione side-by-side in-process.

Libreria di classi portabile

Quando si installano Visual Studio 2010 Service Pack 1 (SP1) e il componente Portable Library Tools, è possibile creare librerie di classi portabili che è possibile eseguire in diverse piattaforme .NET Framework senza ricompilazione. Per ulteriori informazioni, vedere Libreria di classi portabile.

Torna all'inizio

Miglioramenti e nuove funzionalità principali

Nelle sezioni seguenti vengono descritte le funzionalità nuove e migliorate disponibili in Common Language Runtime e nelle librerie di classi di base.

Diagnostica e prestazioni

Nelle versioni precedenti di .NET Framework non era possibile determinare se un particolare dominio dell'applicazione influenzava altri domini dell'applicazione, poiché le API e gli strumenti del sistema operativo, ad esempio Gestione attività Windows, erano precisi solo a livello di processo. A partire da .NET Framework 4, è possibile ottenere stime sull'utilizzo del processore e della memoria per ogni dominio dell'applicazione.

È possibile monitorare l'utilizzo della CPU e della memoria di singoli domini applicazione. Il monitoraggio delle risorse del dominio dell'applicazione è disponibile tramite le API di hosting gestite e native e tramite la funzionalità Traccia eventi per Windows (ETW, Event Tracing for Windows). Dopo essere stata abilitata, questa funzionalità consente di raccogliere statistiche per tutti i domini dell'applicazione nel processo per la durata del processo stesso. Vedere la nuova proprietà AppDomain.MonitoringIsEnabled.

È ora possibile accedere agli eventi ETW a scopi diagnostici per migliorare le prestazioni. Per ulteriori informazioni, vedere Eventi ETW di CLR e Controllo della registrazione di .NET Framework. Vedere anche Contatori delle prestazioni e applicazioni affiancate in-process.

L'attributo System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute consente al codice gestito di gestire le eccezioni che indicano uno stato di processo danneggiato.

Globalizzazione

.NET Framework 4 offre nuove impostazioni cultura neutre, ovvero non associate ad alcun paese, e specifiche, valori aggiornati delle proprietà, miglioramenti nella gestione delle stringhe e altri miglioramenti. Per ulteriori informazioni, vedere Novità relative alla globalizzazione e alla localizzazione.

Garbage Collection

In .NET Framework 4 è disponibile la funzionalità di Garbage Collection in background. Questa funzionalità sostituisce la modalità di Garbage Collection simultanea delle versioni precedenti e garantisce prestazioni migliori. Per ulteriori informazioni, vedere Principi fondamentali di Garbage Collection.

Contratti di codice

I contratti di codice consentono di specificare informazioni contrattuali non rappresentate solo dalla firma di un metodo o di un tipo. Il nuovo spazio dei nomi System.Diagnostics.Contracts contiene classi che forniscono una modalità indipendente dalla lingua per esprimere presupposti di codifica in forma di precondizioni, postcondizioni e invarianti di oggetto. I contratti migliorano i test grazie al controllo in fase di esecuzione, consentono la verifica statica e supportano la generazione di documentazione. Per ulteriori informazioni, vedere Contratti di codice.

Assembly di interoperabilità disponibili solo nella fase di progettazione

Non è più necessario fornire assembly di interoperabilità primari per distribuire applicazioni che interagiscono con oggetti COM. In .NET Framework 4 i compilatori possono incorporare informazioni sul tipo da assembly di interoperabilità, selezionando solo i tipi effettivamente utilizzati da un'applicazione (ad esempio un componente aggiuntivo). L'indipendenza dai tipi viene assicurata da Common Language Runtime. Vedere Utilizzo di tipi COM nel codice gestito e Procedura dettagliata: incorporamento delle informazioni sui tipi da assembly di Microsoft Office (C# e Visual Basic).

Dynamic Language Runtime

Dynamic Language Runtime (DLR) è un nuovo ambiente di runtime che aggiunge a CLR un set di servizi per linguaggi dinamici. DLR semplifica lo sviluppo di linguaggi dinamici eseguibili in .NET Framework nonché l'aggiunta di funzionalità dinamiche a linguaggi tipizzati in modo statico. Per supportare DLR, a .NET Framework viene aggiunto il nuovo spazio dei nomi System.Dynamic.

Le strutture ad albero delle espressioni includono nuovi tipi che rappresentano il flusso di controllo, ad esempio System.Linq.Expressions.LoopExpression e System.Linq.Expressions.TryExpression. I nuovi tipi sono utilizzati da DLR (Dynamic Language Runtime), non da LINQ.

Allo spazio dei nomi System.Runtime.CompilerServices vengono inoltre aggiunte diverse nuove classi che supportano l'infrastruttura .NET Framework. Per ulteriori informazioni, vedere Cenni preliminari su Dynamic Language Runtime.

Covarianza e controvarianza

Molte interfacce e delegati generici supportano ora la covarianza e la controvarianza. Per ulteriori informazioni, vedere Covarianza e controvarianza nei generics.

Numeri BigInteger e complessi

La nuova struttura System.Numerics.BigInteger è un tipo di dati Integer con precisione arbitraria che supporta tutte le operazioni con dati Integer standard, inclusa la modifica dei bit. Questa struttura può essere utilizzata con qualsiasi linguaggio .NET Framework. Alcuni dei nuovi linguaggi .NET Framework (ad esempio F# e IronPython) includono inoltre supporto incorporato per questa struttura.

La nuova struttura System.Numerics.Complex rappresenta un numero complesso che supporta le operazioni aritmetiche e trigonometriche con i numeri complessi.

Tuple

In .NET Framework 4 è disponibile la classe System.Tuple per la creazione di oggetti tupla che contengono dati strutturati. Sono inoltre disponibili classi tupla generiche che supportano tuple che includono da uno a otto componenti (da singleton a ottuple). Per supportare oggetti tupla che includono nove o più componenti, è disponibile una classe tupla generica con sette parametri di tipo e un ottavo parametro di un qualsiasi tipo di tupla.

Miglioramenti nell'enumerazione del file system

I nuovi metodi di enumerazione dei file migliorano le prestazioni delle applicazioni che accedono a directory di file di grandi dimensioni o scorrono le righe di file di grandi dimensioni. Per ulteriori informazioni, vedere Procedura: enumerare directory e file.

File mappati alla memoria

In .NET Framework sono ora supportati i file mappati alla memoria. È possibile utilizzare file mappati alla memoria per modificare file molto grandi e per creare memoria condivisa per la comunicazione interprocesso.

Processi e sistemi operativi a 64 bit

È possibile identificare i processi e i sistemi operativi a 64 bit con le proprietà Environment.Is64BitOperatingSystem e Environment.Is64BitProcess.

È possibile specificare una vista a 32 bit o 64 bit del Registro di sistema con l'enumerazione Microsoft.Win32.RegistryView quando si aprono chiavi di base.

Altre nuove funzionalità

Nell'elenco seguente vengono descritte ulteriori novità in fatto di funzionalità, miglioramenti e comodità. In parecchi casi le novità sono basate sui suggerimenti dei clienti.

  • Per supportare la formattazione dipendente dalle impostazioni cultura, la struttura System.TimeSpan include nuovi overload dei metodi ToString, Parse e TryParse, nonché i nuovi metodi ParseExact e TryParseExact.

  • Il nuovo metodo String.IsNullOrWhiteSpace indica se una stringa è Null, vuota o costituita solo da spazi vuoti. Sono stati aggiunti nuovi overload ai metodi String.Concat e String.Join che consentono di concatenare i membri di insiemi System.Collections.Generic.IEnumerable<T>.

  • Il metodo String.Concat consente di concatenare ogni elemento in un insieme enumerabile senza prima convertire gli elementi in stringhe.

  • Sono disponibili due nuovi metodi pratici: StringBuilder.Clear e Stopwatch.Restart.

  • Il nuovo metodo Enum.HasFlag consente di determinare se uno o più flag o campi di bit sono impostati in un valore di enumerazione. Il metodo Enum.TryParse restituisce un valore booleano che indica se è possibile analizzare correttamente un valore intero o stringa.

  • L'enumerazione System.Environment.SpecialFolder contiene diverse nuove cartelle.

  • È ora possibile copiare in modo semplice un flusso in un altro con il metodo CopyTo nelle classi che ereditano dalla classe System.IO.Stream.

  • I nuovi overload del metodo Path.Combine consentono di combinare percorsi di file.

  • Le nuove interfacce System.IObservable<T> e System.IObserver<T> forniscono un meccanismo generalizzato per le notifiche basate su push.

  • Le classi System.IntPtr e System.UIntPtr includono ora il supporto per gli operatori di addizione e sottrazione.

  • È ora possibile attivare l'inizializzazione differita per qualsiasi tipo personalizzato eseguendo il wrapping del tipo in una classe System.Lazy<T>.

  • La nuova classe System.Collections.Generic.SortedSet<T> fornisce una struttura ad albero auto-bilanciata che mantiene i dati ordinati dopo operazioni di inserimento, eliminazione e ricerca. Questa classe implementa la nuova interfaccia System.Collections.Generic.ISet<T>.

  • Gli algoritmi di compressione per le classi System.IO.Compression.DeflateStream e System.IO.Compression.GZipStream sono stati migliorati in modo che dati già compressi non vengano più ingranditi. La restrizione di 4 gigabyte relativa alla dimensione per la compressione di flussi è stata inoltre rimossa.

  • Il nuovo overload del metodo Monitor.Enter(Object, Boolean) accetta un riferimento booleano e lo imposta in modo atomico su true se il monitoraggio viene immesso correttamente.

  • È possibile utilizzare il metodo Thread.Yield per fare in modo che il thread chiamante ceda l'esecuzione a un altro thread pronto per essere eseguito nel processore corrente.

  • La struttura System.Guid ora contiene i metodi TryParse e TryParseExact.

  • La nuova enumerazione Microsoft.Win32.RegistryOptions consente di specificare una chiave del Registro di sistema volatile che non persiste dopo il riavvio del computer.

  • La lunghezza delle chiavi del Registro di sistema non è più limitata a un massimo di 255 caratteri.

Torna all'inizio

Managed Extensibility Framework

Managed Extensibility Framework (MEF) è una nuova libreria in .NET Framework 4 che consente di compilare applicazioni estendibili e componibili. MEF consente di specificare i punti in cui è possibile estendere un'applicazione, di esporre servizi da offrire ad altre applicazioni estendibili e di creare parti che possono essere utilizzate dalle applicazioni estendibili. Questa libreria semplifica inoltre l'individuazione delle parti disponibili in base ai metadati, senza che sia necessario caricare gli assembly per le parti. Per ulteriori informazioni, vedere Cenni preliminari su Managed Extensibility Framework e la pagina Managed Extensibility Framework. Per un elenco dei tipi MEF, vedere lo spazio dei nomi System.ComponentModel.Composition.

Torna all'inizio

Elaborazione parallela

In .NET Framework 4 viene introdotto un nuovo modello di programmazione per la scrittura di codice a thread multipli e asincrono che semplifica notevolmente il lavoro degli sviluppatori di applicazioni e librerie. Il nuovo modello consente agli sviluppatori di scrivere codice parallelo efficiente, con granularità fine e scalabile in un linguaggio naturale senza dover utilizzare direttamente i thread o il pool di thread. Questo nuovo modello è supportato dal nuovo spazio dei nomi System.Threading.Tasks e da altri tipi correlati. Parallel LINQ (PLINQ), che è un'implementazione parallela di LINQ to Objects, consente funzionalità simili tramite la sintassi dichiarativa. Per ulteriori informazioni, vedere Programmazione parallela in .NET Framework.

Torna all'inizio

Servizi di rete

I miglioramenti relativi alla rete includono:

Torna all'inizio

Web

ASP.NET versione 4 introduce nuove funzionalità nelle aree riportate di seguito:

  • Servizi di base, incluso una nuova API che consente di estendere la memorizzazione nella cache, supporto per la compressione dei dati di stato sessione e una nuova gestione del precaricamento delle applicazioni (funzionalità di avvio automatico).

  • Web Form, incluso maggior supporto integrato per il routing ASP.NET, miglior supporto per gli standard Web, supporto del browser aggiornato, nuove funzionalità per i controlli dei dati e nuove funzionalità per la gestione dello stato di visualizzazione.

  • Controlli Web Form, incluso un nuovo controllo Chart.

  • MVC, incluso nuovi metodi di supporto per le visualizzazioni, supporto per le applicazioni MVC partizionate e controller asincroni.

  • Dynamic Data, incluso supporto per le applicazioni Web esistenti, supporto per relazioni molti-a-molti e per l'ereditarietà, nuovi attributi e modelli di campo e filtro dei dati migliorato.

  • Microsoft Ajax, incluso supporto aggiuntivo per le applicazioni AJAX basate sul client in Microsoft Ajax Library.

  • Visual Web Developer, incluso IntelliSense per JScript migliorato, nuovi frammenti di completamento automatico per markup HTML e ASP.NET e compatibilità CSS migliorata.

  • Distribuzione, incluso nuovi strumenti per automatizzare le attività di distribuzione tipiche.

  • Multitargeting, incluso un miglior filtro per le funzionalità non disponibili nella versione di destinazione di .NET Framework.

Per ulteriori informazioni su queste funzionalità, vedere Novità di ASP.NET 4 e Visual Web Developer.

Torna all'inizio

Client

In Windows Presentation Foundation (WPF) versione 4 sono stati apportati miglioramenti e modifiche nelle aree seguenti:

  • Nuovi controlli, tra cui Calendar, DataGrid e DatePicker.

  • VisualStateManager supporta la modifica degli stati dei controlli.

  • La funzionalità di tocco e modifica consente di creare applicazioni in grado di ricevere contemporaneamente input da più tocchi in Windows 7.

  • La funzionalità di grafica e animazione supporta arrotondamento del layout, Pixel Shader versione 3.0, composizione memorizzata nella cache e funzioni di interpolazione.

  • Il testo offre un rendering migliorato e supporta la personalizzazione del colore del cursore e la selezione del colore nelle caselle di testo.

  • L'associazione è supportata nella proprietà Command di un oggetto InputBinding, negli oggetti dinamici e nella proprietà Text.

  • Le applicazioni browser XAML (XBAP, XAML Browser Application) supportano la comunicazione con la pagina Web e la distribuzione con attendibilità totale.

  • I nuovi tipi dello spazio dei nomi System.Windows.Shell consentono di comunicare con la barra delle applicazioni di Windows 7 e di passare dati alla shell di Windows.

  • In WPF e Silverlight Designer in Visual Studio 2010 sono stati apportati diversi miglioramenti alla finestra di progettazione, al fine di agevolare la creazione di applicazioni WPF e Silverlight.

Per ulteriori informazioni, vedere Novità di WPF versione 4.

Torna all'inizio

Dati

ADO.NET

ADO.NET fornisce nuove funzionalità per Entity Framework, tra cui oggetti che non riconoscono la persistenza, funzioni nelle query LINQ e generazione personalizzata del codice a livello di oggetti. Per ulteriori informazioni, vedere Novità di ADO.NET.

Dynamic Data

Per ASP.NET 4, Dynamic Data è stato migliorato per fornire una potenza ancora maggiore per la compilazione rapida di siti Web basati sui dati. I miglioramenti includono quanto segue:

  • Convalida automatica basata su vincoli definiti nel modello di dati.

  • Possibilità di modificare facilmente il markup generato per i campi nei controlli GridView e DetailsView tramite modelli di campo che fanno parte di un progetto Dynamic Data.

Per ulteriori informazioni, vedere Novità di ASP.NET 4 e Visual Web Developer.

Servizi dati WCF

ADO.NET Data Service è stato rinominato in WCF Data Services e offre le nuove funzionalità seguenti:

  • Associazione dati.

  • Conteggio di entità in un set di entità.

  • Paging basato su server.

  • Proiezioni di query.

  • Provider di servizi dati personalizzati.

  • Flusso di risorse binarie.

Per ulteriori informazioni, vedere What's New in WCF Data Services.

Torna all'inizio

Windows Communication Foundation

Windows Communication Foundation (WCF) offre i miglioramenti seguenti:

  • Attivazione basata sulla configurazione, che elimina la necessità di disporre di un file con estensione svc.

  • Integrazione di System.Web.Routing, che garantisce un maggiore controllo sull'URL del servizio consentendo l'utilizzo di URL senza estensione.

  • Supporto per più associazioni di siti IIS, che consente di disporre di più indirizzi di base con lo stesso protocollo nello stesso sito Web.

  • Servizio di routing, che consente di instradare i messaggi in base al contenuto.

  • Supporto per WS-Discovery, che consente di creare e cercare servizi individuabili.

  • Endpoint standard, ovvero endpoint predefiniti che consentono di specificare solo determinate proprietà.

  • Servizi di flusso di lavoro, che consentono l'integrazione tra WCF e WF grazie ad attività per l'invio e la ricezione di messaggi, la possibilità di correlare i messaggi in base al contenuto e un host dei servizi di flusso di lavoro.

  • Funzionalità di WCF REST:

    • Memorizzazione nella cache HTTP Web, che consente di memorizzare nella cache le risposte dei servizi HTTP Web.

    • Supporto per i formati HTTP Web, che consente di determinare in modo dinamico il formato migliore per la risposta di un'operazione del servizio.

    • Pagina della Guida dei servizi HTTP Web, una pagina della Guida automatica relativa ai servizi HTTP Web, simile alla pagina della Guida dei servizi WCF.

    • Gestione degli errori HTTP Web, che consente ai servizi HTTP Web di restituire le informazioni sugli errori nello stesso formato dell'operazione.

    • Supporto JavaScript tra domini HTTP Web, che consente l'utilizzo di JSON Padding (JSONP).

  • Configurazione semplificata, che riduce le operazioni di configurazione richieste da un servizio.

Per ulteriori informazioni, vedere What's New in Windows Communication Foundation.

Torna all'inizio

Windows Workflow Foundation

Windows Workflow Foundation (WF) offre miglioramenti nelle aree seguenti:

  • Modello di attività del flusso di lavoro migliorato, grazie alla classe Activity che fornisce l'astrazione di base del comportamento del flusso di lavoro.

  • Opzioni delle attività composite avanzate, grazie alle quali i flussi di lavoro traggono vantaggio dalle nuove attività di controllo del flusso che modellano le strutture tradizionali di controllo del flusso, tra cui Flowchart, TryCatch e Switch<T>.

  • Libreria di attività incorporata estesa, con nuove funzionalità che includono nuove attività di controllo del flusso, attività per la modifica dei dati dei membri e attività per il controllo delle transazioni.

  • Modello di dati delle attività esplicito, con nuove opzioni per l'archiviazione o lo spostamento dei dati che includono argomenti variabili e direzionali.

  • Opzioni migliorate di hosting, persistenza e rilevamento, con miglioramenti all'hosting che includono un numero maggiore di opzioni per l'esecuzione dei flussi di lavoro, persistenza esplicita tramite l'utilizzo dell'attività Persist, persistenza senza scaricamento, aree di non persistenza che consentono di impedire la persistenza, utilizzo di transazioni di ambiente dall'host, registrazione delle informazioni di traccia nel log eventi e ripresa dei flussi di lavoro in sospeso tramite un oggetto Bookmark.

  • Maggiore semplicità di estensione di Progettazione WF, il nuovo strumento basato su Windows Presentation Foundation (WPF) che fornisce un modello più semplice da utilizzare in caso di riallocazione di Progettazione WF all'esterno di Visual Studio.

Per ulteriori informazioni, vedere What's New in Windows Workflow Foundation.

Torna all'inizio

Vedere anche

Concetti

Novità di Visual Studio 2010

Novità di ASP.NET 4 e Visual Web Developer

Novità di WPF versione 4

Novità di ADO.NET

Novità di Visual Basic 2010

Novità di Visual C# 2010

Novità di Visual C++ 2010

Novità di Visual F# 2010

Altre risorse

Nuovi tipi e membri in .NET Framework 4

What's New in Windows Communication Foundation

What's New in Windows Workflow Foundation

What's New in WCF Data Services