Novità di .NET FrameworkWhat's new in the .NET Framework

Questo articolo offre un riepilogo dei principali nuovi miglioramenti e funzionalità introdotti nelle versioni seguenti di .NET Framework:This article summarizes key new features and improvements in the following versions of the .NET Framework:

.NET Framework 4.7.1 .NET Framework 4.7.1
.NET Framework 4.7 .NET Framework 4.7
.NET Framework 4.6.2 .NET Framework 4.6.2
.NET Framework 4.6.1 .NET Framework 4.6.1
.NET 2015 e .NET Framework 4.6 .NET 2015 and .NET Framework 4.6
.NET Framework 4.5.2 .NET Framework 4.5.2
.NET Framework 4.5.1 .NET Framework 4.5.1
.NET Framework 4.5.NET Framework 4.5

Non vengono fornite informazioni complete su ogni nuova funzionalità e l'articolo è soggetto a modifiche.This article does not provide comprehensive information about each new feature and is subject to change. Per informazioni generali su .NET Framework, vedere Introduzione a .NET Framework.For general information about the .NET Framework, see Getting Started. Per informazioni sulle piattaforme supportate, vedere Requisiti di sistema di .NET Framework.For supported platforms, see System Requirements. Per i collegamenti per il download e le istruzioni di installazione, vedere Guida all'installazione.For download links and installation instructions, see Installation Guide.

Nota

Il team di .NET Framework rende disponibili anche alcune funzionalità fuori programma con NuGet per espandere le piattaforme supportate e introdurre nuove funzionalità, ad esempio le raccolte non modificabili e i tipi di vettore abilitati per SIMD.The .NET Framework team also releases features out of band with NuGet to expand platform support and to introduce new functionality, such as immutable collections and SIMD-enabled vector types. Per altre informazioni, vedere API e librerie di classi aggiuntive e .NET Framework e rilascio fuori programma.For more information, see Additional Class Libraries and APIs and The .NET Framework and Out-of-Band Releases. Vedere l'elenco completo dei pacchetti NuGet per .NET Framework oppure sottoscrivere questo feed.See a complete list of NuGet packages for the .NET Framework, or subscribe to our feed.

Introduzione a .NET Framework 4.7.1Introducing the .NET Framework 4.7.1

.NET Framework 4.7.1 è basato su .NET Framework 4.6, 4.6.1, 4.6.2 e 4.7 con l'aggiunta di molte nuove correzioni e diverse funzionalità, pur rimanendo un prodotto molto stabile.The .NET Framework 4.7.1 builds on the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 by adding many new fixes and several new features while remaining a very stable product.

Download e installazione di .NET Framework 4.7.1Downloading and installing the .NET Framework 4.7.1

È possibile scaricare .NET Framework 4.7.1 dalle posizioni seguenti:You can download the .NET Framework 4.7.1 from the following locations:

.NET Framework 4.7.1 può essere installato in Windows 10, Windows 8.1, Windows 7 SP1 e nelle piattaforme server corrispondenti a partire da Windows Server 2008 R2 SP1.The .NET Framework 4.7.1 can be installed on Windows 10, Windows 8.1, Windows 7 SP1, and the corresponding server platforms starting with Windows Server 2008 R2 SP1. È possibile installare .NET Framework 4.7.1 usando il programma di installazione Web o il programma di installazione offline.You can install the .NET Framework 4.7.1 by using either the web installer or the offline installer. Per la maggior parte degli utenti è consigliabile usare il programma di installazione Web.The recommended way for most users is to use the web installer.

Per .NET Framework 4.7.1 in Visual Studio 2012 o versioni successive è possibile installare .NET Framework 4.7.1 Developer Pack.You can target the .NET Framework 4.7.1 in Visual Studio 2012 or later by installing the .NET Framework 4.7.1 Developer Pack.

Novità di .NET Framework 4.7.1What's new in the .NET Framework 4.7.1

.NET Framework 4.7.1 include nuove funzionalità nelle aree seguenti:The .NET Framework 4.7.1 includes new features in the following areas:

Inoltre, un obiettivo principale di .NET Framework 4.7.1 è migliorare l'accessibilità, attraverso la quale un'applicazione può offrire un'esperienza appropriata agli utenti di Assistive Technology.In addition, a major focus in the .NET Framework 4.7.1 is improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology. Per informazioni sui miglioramenti apportati all'accessibilità in .NET Framework 4.7.1, vedere Nuove funzionalità di accessibilità in .NET Framework.For information on accessibility improvements in the .NET Framework 4.7.1, see What's new in accessibility in the .NET Framework.

BaseCore

Supporto per .NET Standard 2.0Support for .NET Standard 2.0

.NET Standard definisce un set di API che devono essere disponibili in ogni implementazione .NET conforme alla versione dello strumento standard..NET Standard defines a set of APIs that must be available on each .NET implementation that supports that version of the standard. .NET Framework 4.7.1 supporta completamente .NET Standard 2.0 e aggiunge circa 200 API, definite in .NET Standard 2.0 e non incluse in .NET Framework 4.6.1, 4.6.2 e 4.7.The .NET Framework 4.7.1 fully supports .NET Standard 2.0 and adds about 200 APIs that are defined in .NET Standard 2.0 and are missing from the .NET Framework 4.6.1, 4.6.2, and 4.7. Notare che queste versioni di .NET Framework supportano .NET Standard 2.0 solo se vengono distribuiti anche file di supporto aggiuntivi di .NET Standard nel sistema di destinazione. Per altre informazioni, vedere la sezione relativa al supporto di .NET Standard 2.0 nel post di blog .NET Framework 4.7.1 Runtime and Compiler Features (Funzionalità del runtime e del compilatore di .NET Framework 4.7.1).(Note that these versions of the .NET Framework support .NET Standard 2.0 only if additional .NET Standard support files are also deployed on the target system.) For more information, see "BCL - .NET Standard 2.0 Support" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Supporto per generatori di configurazioniSupport for configuration builders

I generatori di configurazioni consentono agli sviluppatori di inserire e compilare dinamicamente impostazioni di configurazione per le applicazioni in fase di esecuzione.Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. È possibile usare generatori di configurazioni personalizzati per modificare dati esistenti in una sezione di configurazione oppure per compilare una sezione di configurazione completamente da zero.Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Senza i generatori di configurazioni, i file con estensione config sono statici e le rispettive impostazioni vengono definite prima dell'avvio di un'applicazione.Without configuration builders, .config files are static, and their settings are defined some time before an application is launched.

Per creare un generatore di configurazioni personalizzato, è necessario derivare il generatore dalla classe astratta ConfigurationBuilder ed eseguire l'override di ConfigurationBuilder.ProcessConfigurationSection e ConfigurationBuilder.ProcessRawXml del generatore.To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. È necessario definire i generatori anche nel file con estensione config.You also define your builders in your .config file. Per altre informazioni, vedere la sezione relativa ai generatori di configurazioni nel post di blog .NET Framework 4.7.1 ASP.NET and Configuration Features (Funzionalità di ASP.NET e di configurazione di .NET Framework 4.7.1).For more information, see the "Configuration Builders" section in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Rilevamento delle funzionalità in fase di esecuzioneRun-time feature detection

La classe System.Runtime.CompilerServices.RuntimeFeature fornisce un meccanismo per determinare se una funzionalità predefinita è supportata in un'implementazione .NET specifica in fase di compilazione o di esecuzione.The System.Runtime.CompilerServices.RuntimeFeature class provides a mechanism for determine whether a predefined feature is supported on a given .NET implementation at compile time or run time. In fase di compilazione un compilatore può verificare se sia presente un campo specifico per determinare se la funzionalità è supportata. In questo caso, può emettere il codice che sfrutta questa funzionalità.At compile time, a compiler can check whether a specified field exists to determine whether the feature is supported; if so, it can emit code that takes advantage of that feature. In fase di esecuzione un'applicazione può chiamare il metodo RuntimeFeature.IsSupported prima di emettere il codice in fase di esecuzione.At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. Per altre informazioni, vedere Add helper method to describe features supported by the runtime (Aggiungere un metodo helper per descrivere le funzionalità supportate dal runtime).For more information, see Add helper method to describe features supported by the runtime.

I tipi di tupla di valori sono serializzabiliValue tuple types are serializable

A partire da .NET Framework 4.7.1, System.ValueTuple e i tipi generici associati sono contrassegnati come serializzabili, consentendo la serializzazione binaria.Starting with the .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. Questa novità dovrebbe semplificare la migrazione dei tipi di tupla, come Tuple<T1,T2,T3> e Tuple<T1,T2,T3,T4>, ai tipi di tupla di valori.This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier. Per altre informazioni, vedere la sezione relativa al compilatore e alla serializzazione di ValueTuple nel post di blog .NET Framework 4.7.1 Runtime and Compiler Features (Funzionalità del runtime e del compilatore di .NET Framework 4.7.1).For more information, see "Compiler -- ValueTuple is Serializable" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Supporto per riferimenti di sola letturaSupport for read-only references

In .NET Framework 4.7.1 è stato aggiunto System.Runtime.CompilerServices.IsReadOnlyAttribute.The .NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. Questo attributo viene usato dai compilatori dei linguaggi per contrassegnare i membri che hanno tipi o parametri restituiti per riferimenti di sola lettura.This attribute is used by language compilers to mark members that have read-only ref return types or parameters. Per altre informazioni, vedere la sezione relativa al compilatore e al supporto per ReadOnlyReferences nel post di blog .NET Framework 4.7.1 Runtime and Compiler Features (Funzionalità del runtime e del compilatore di .NET Framework 4.7.1).For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. Per informazioni sui valori restituiti per riferimenti, vedere Valori restituiti e variabili locali ref e Ref return values (Visual Basic) (Valori restituiti per riferimenti - Visual Basic).For information on ref return values, see Ref return values and ref locals (C# Guide) and Ref return values (Visual Basic).

Common Language Runtime (CLR)Common language runtime (CLR)

Miglioramento delle prestazioni di Garbage CollectionGarbage collection performance improvements

Le modifiche apportate a Garbage Collection in .NET Framework 4.7.1 migliorano le prestazioni complessive, in particolare per allocazioni di heap di oggetti grandi.Changes to garbage collection (GC) in the .NET Framework 4.7.1 improve overall performance, especially for Large Object Heap (LOH) allocations. In .NET Framework 4.7.1 vengono usati blocchi separati per allocazioni di heap di oggetti piccoli e heap di oggetti grandi, per consentire l'esecuzione di allocazioni di heap di oggetti grandi quando Garbage Collection in background elimina gli heap di oggetti piccoli.In the .NET Framework 4.7.1, separate locks are used for Small Object Heap (SOH) and LOH allocations, which allows LOH allocations to occur when Background GC (BGC) is sweeping the SOH. Di conseguenza, le applicazioni che eseguono una quantità elevata di allocazioni di heap di oggetti grandi riscontreranno una riduzione dei conflitti di blocco delle allocazioni e prestazioni migliori.As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance. Per altre informazioni, vedere la sezione relativa al runtime e ai miglioramenti per le prestazioni di Garbage Collection nel post di blog .NET Framework 4.7.1 Runtime and Compiler Features (Funzionalità del runtime e del compilatore di .NET Framework 4.7.1).For more information, see the "Runtime -- GC Performance Improvements" section in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Servizi di reteNetworking

Supporto di SHA-2 per Message.HashAlgorithmSHA-2 support for Message.HashAlgorithm

In .NET Framework 4.7 e versioni precedenti la proprietà Message.HashAlgorithm supporta solo i valori HashAlgorithm.Md5 e HashAlgorithm.Sha.In the .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. A partire da .NET Framework 4.7.1, sono supportati anche HashAlgorithm.Sha256, HashAlgorithm.Sha384 e HashAlgorithm.Sha512.Starting with the .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Il fatto che questo valore venga effettivamente usato dipende da MSMQ, perché l'istanza Message stessa non esegue alcun hashing, ma semplicemente passa i valori a MSMQ.Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ. Per altre informazioni, vedere la sezione relativa al supporto di SHA-2 per Message.HashAlgorithm nel post di blog .NET Framework 4.7.1 ASP.NET and Configuration Features (Funzionalità di ASP.NET e di configurazione di .NET Framework 4.7.1).For more information, see the "SHA-2 support for Message.HashAlgorithm" section in the .NET Framework 4.7.1 ASP.NET and Configuration features blog post.

ASP.NETASP.NET

Passaggi di esecuzione nelle applicazioni ASP.NETExecution steps in ASP.NET applications

ASP.NET elabora le richieste in una pipeline predefinita che include 23 eventi.ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET esegue ogni gestore eventi come passaggio di esecuzione.ASP.NET executes each event handler as an execution step. Nelle versioni di ASP.NET fino a .NET Framework 4.7, ASP.NET non può eseguire il flusso del contesto di esecuzione a causa del passaggio tra thread nativi e gestiti.In versions of ASP.NET up to the .NET Framework 4.7, ASP.NET can't flow the execution context due to switching between native and managed threads. ASP.NET esegue selettivamente il flusso solo di HttpContext.Instead, ASP.NET selectively flows only the HttpContext. A partire da .NET Framework 4.7.1, il metodo HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) consente anche ai moduli di ripristinare i dati di ambiente.Starting with the .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. Questa funzionalità è destinata alle librerie per quanto riguarda analisi, profilatura, diagnostica o transazioni, ad esempio, che si occupano del flusso di esecuzione per l'applicazione.This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application. Per altre informazioni, vedere la sezione relativa alla funzionalità dei passaggi di esecuzione di ASP.NET nel post di blog .NET Framework 4.7.1 ASP.NET and Configuration Features (Funzionalità di ASP.NET e di configurazione di .NET Framework 4.7.1).For more information, see the "ASP.NET Execution Step Feature" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Analisi HttpCookie di ASP.NETASP.NET HttpCookie parsing

.NET Framework 4.7.1 include un nuovo metodo, HttpCookie.TryParse, che offre un modo standardizzato per creare un oggetto HttpCookie da una stringa e assegnare accuratamente valori di cookie come la data di scadenza e il percorso.The .NET Framework 4.7.1 includes a new method, HttpCookie.TryParse, that provides a standardized way to create an HttpCookie object from a string and accurately assign cookie values such as expiration date and path. Per altre informazioni, vedere la sezione relativa all'analisi HttpCookie di ASP.NET nel post di blog .NET Framework 4.7.1 ASP.NET and Configuration Features (Funzionalità di ASP.NET e di configurazione di .NET Framework 4.7.1).For more information, see "ASP.NET HttpCookie parsing" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Opzioni di hash SHA-2 per le credenziali di autenticazione di ASP.NET FormsSHA-2 hash options for ASP.NET forms authentication credentials

In .NET Framework 4.7 e versioni precedenti, ASP.NET consente agli sviluppatori di archiviare le credenziali utente con password con hash in file di configurazione usando MD5 o SHA1.In the .NET Framework 4.7 and earlier versions, ASP.NET allowed developers to store user credentials with hashed passwords in configuration files using either MD5 or SHA1. A partire da .NET Framework 4.7.1, ASP.NET supporta anche nuove opzioni di hash SHA-2 sicure come SHA256, SHA384 e SHA512.Starting with the .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 resta l'opzione predefinita ed è possibile definire un algoritmo hash non predefinito nel file di configurazione Web.SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file. Ad esempio:For example:

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="~/login.aspx">
          <credentials passwordFormat="SHA512">
            <user name="jdoe" password="6D003E98EA1C7F04ABF8FCB375388907B7F3EE06F278DB966BE960E7CBBD103DF30CA6D61F7E7FD981B2E4E3A64D43C836A4BEDCA165C33B163E6BCDC538A664" />
          </credentials>
        </forms>
    </authentication>
</system.web>

Novità di .NET Framework 4.7What's new in the .NET Framework 4.7

.NET Framework 4.7 include nuove funzionalità nelle aree seguenti:The .NET Framework 4.7 includes new features in the following areas:

Per l'elenco delle nuove API aggiunte a .NET Framework 4.7, vedere l'argomento .NET Framework 4.7 API Changes (Modifiche alle API di .NET Framework 4.7) su GitHub.For a list of new APIs added to the .NET Framework 4.7, see .NET Framework 4.7 API Changes on GitHub. Per l'elenco delle correzioni di bug e dei miglioramenti apportati alle funzionalità in .NET Framework 4.7, vedere l'argomento .NET Framework 4.7 List of Changes (Elenco delle modifiche di .NET Framework 4.7) su GitHub.For a list of feature improvements and bug fixes in the .NET Framework 4.7, see .NET Framework 4.7 List of Changes on GitHub. Per altre informazioni, vedere l'annuncio di .NET Framework 4.7 in .NET Blog.For additional information, see Announcing the .NET Framework 4.7 in the .NET blog.

BaseCore

.NET Framework 4.7 migliora la serializzazione di DataContractJsonSerializer:The .NET Framework 4.7 improves serialization by the DataContractJsonSerializer:

Funzionalità migliorate con l'algoritmo ECC (Elliptic Curve Cryptography)*Enhanced functionality with Elliptic Curve Cryptography (ECC)*

In .NET Framework 4.7, sono stati aggiunti i metodi ImportParameters(ECParameters) alle classi ECDsa e ECDiffieHellman per consentire a un oggetto di rappresentare una chiave già stabilita.In the .NET Framework 4.7, ImportParameters(ECParameters) methods were added to the ECDsa and ECDiffieHellman classes to allow for an object to represent an already-established key. È stato anche aggiunto un metodo ExportParameters(Boolean) per l'esportazione della chiave usando parametri della curva esplicita.An ExportParameters(Boolean) method was also added for exporting the key using explicit curve parameters.

.NET Framework 4.7 aggiunge anche il supporto per le curve aggiuntive (inclusa la suite di curve Brainpool) e ha aggiunto definizioni predefinite per semplificare la creazione attraverso i nuovi metodi factory Create e Create.The .NET Framework 4.7 also adds support for additional curves (including the Brainpool curve suite), and has added predefined definitions for ease-of-creation through the new Create and Create factory methods.

È possibile visualizzare un esempio dei miglioramenti alla crittografia di .NET Framework 4.7 su GitHub.You can see an example of .NET Framework 4.7 cryptography improvements on GitHub.

Supporto migliorato per i caratteri di controllo da DataContractJsonSerializerBetter support for control characters by the DataContractJsonSerializer

In .NET Framework 4.7 DataContractJsonSerializer serializza i caratteri di controllo in conformità con lo standard ECMAScript 6.In the .NET Framework 4.7, the DataContractJsonSerializer serializes control characters in conformity with the ECMAScript 6 standard. Questo comportamento è abilitato per impostazione predefinita per le applicazioni che utilizzano .NET Framework 4.7 ed è una funzionalità che prevede il consenso esplicito per le applicazioni che sono in esecuzione con .NET Framework 4.7, ma sono destinate a una versione precedente di .NET Framework.This behavior is enabled by default for applications that target the .NET Framework 4.7, and is an opt-in feature for applications that are running under the .NET Framework 4.7 but target a previous version of the .NET Framework. Per altre informazioni, vedere Reindirizzamento delle modifiche in .NET Framework versione 4.7.For more information, see Retargeting Changes in the .NET Framework 4.7.

Servizi di reteNetworking

.NET Framework 4.7 aggiunge la seguente funzionalità relativa alla rete:The .NET Framework 4.7 adds the following network-related feature:

Supporto del sistema operativo predefinito per i protocolli TLS*Default operating system support for TLS protocols*

Lo stack TLS, che viene usato da System.Net.Security.SslStream e i componenti up-stack, ad esempio HTTP, FTP e SMTP, consentono agli sviluppatori di usare i protocolli TLS predefiniti supportati dal sistema operativo.The TLS stack, which is used by System.Net.Security.SslStream and up-stack components such as HTTP, FTP, and SMTP, allows developers to use the default TLS protocols supported by the operating system. Gli sviluppatori non devono più impostare come hardcoded una versione TLS.Developers need no longer hard-code a TLS version.

ASP.NETASP.NET

In .NET Framework 4.7, ASP.NET include le nuove funzionalità seguenti:In the .NET Framework 4.7, ASP.NET includes the following new features:

Estendibilità della cache oggettiObject Cache Extensibility

A partire da Framework .NET 4.7, ASP.NET aggiunge un nuovo set di API che consente agli sviluppatori di sostituire le implementazioni di ASP.NET predefinite per la cache di oggetti in memoria e il monitoraggio della memoria.Starting with the .NET Framework 4.7, ASP.NET adds a new set of APIs that allow developers to replace the default ASP.NET implementations for in-memory object caching and memory monitoring. Gli sviluppatori possono ora sostituire uno qualsiasi dei seguenti tre componenti se l'implementazione di ASP.NET non è sufficiente:Developers can now replace any of the following three components if the ASP.NET implementation is not adequate:

  • Archivio cache oggetti.Object Cache Store. Usando la nuova sezione di configurazione dei provider di cache, gli sviluppatori possono inserire nuove implementazioni di una cache oggetti per un'applicazione ASP.NET con la nuova interfaccia ICacheStoreProvider.By using the new cache providers configuration section, developers can plug in new implementations of an object cache for an ASP.NET application by using the new ICacheStoreProvider interface.

  • Monitoraggio della memoria.Memory monitoring. Il monitoraggio della memoria predefinito in ASP.NET invia una notifica alle applicazioni quando stanno per raggiungere il limite di byte privati configurato per il processo o quando la RAM fisica totale disponibile nel computer è insufficiente.The default memory monitor in ASP.NET notifies applications when they are running close to the configured private bytes limit for the process, or when the machine is low on total available physical RAM. Quando si approssimano questi limiti, vengono generate le notifiche.When these limits are near, notifications are fired. Per alcune applicazioni, le notifiche vengono generate troppo vicino ai limiti configurati per consentire reazioni utili.For some applications, notifications are fired too close to the configured limits to allow for useful reactions. Gli sviluppatori possono ora scrivere monitoraggi della memoria personalizzati in modo da sostituire quello predefinito usando la proprietà ApplicationMonitors.MemoryMonitor.Developers can now write their own memory monitors to replace the default by using the ApplicationMonitors.MemoryMonitor property.

  • Reazioni al limite di memoria.Memory Limit Reactions. Per impostazione predefinita, ASP.NET prova a ridurre la cache oggetti e a chiamare periodicamente GC.Collect quando si approssima il limite di byte privati per il processo.By default, ASP.NET attempts to trim the object cache and periodically call GC.Collect when the private byte process limit is near. Per alcune applicazioni, la frequenza delle chiamate a GC.Collect o la quantità di cache che verrà tagliata sono inefficienti.For some applications, the frequency of calls to GC.Collect or the amount of cache that is trimmed are inefficient. Gli sviluppatori possono ora sostituire o integrare il comportamento predefinito sottoscrivendo le implementazioni IObserver al monitoraggio della memoria dell'applicazione.Developers can now replace or supplement the default behavior by subscribing IObserver implementations to the application's memory monitor.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

Windows Communication Foundation (WCF) aggiunge le seguenti funzionalità e modifiche:Windows Communication Foundation (WCF) adds the following features and changes:

Possibilità di configurare le impostazioni predefinite di sicurezza dei messaggi su TLS 1.1 o TLS 1.2Ability to configure the default message security settings to TLS 1.1 or TLS 1.2

A partire da .NET Framework 4.7, WCF consente di configurare TSL 1.1 o TLS 1.2, oltre a SSL 3.0 e TSL 1.0, come protocollo di sicurezza del messaggio predefinito.Starting with the .NET Framework 4.7, WCF allows you to configure TSL 1.1 or TLS 1.2 in addition to SSL 3.0 and TSL 1.0 as the default message security protocol. Questa funzionalità prevede il consenso esplicito e occorre quindi aggiungere la voce seguente al file di configurazione dell'applicazione:This is an opt-in setting; to enable it, you must add the following entry to your application configuration file:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols=false;Switch.System.Net.DontEnableSchUseStrongCrypto=false" /> 
</runtime>

Miglioramento dell'affidabilità le applicazioni WCF e della serializzazione WCFImproved reliability of WCF applications and WCF serialization

WCF include un numero di modifiche al codice che eliminano le race condition, migliorando così le prestazioni e l'affidabilità delle opzioni di serializzazione.WCF includes a number of code changes that eliminate race conditions, thereby improving performance and the reliability of serialization options. Sono inclusi:These include:

  • Supporto migliorato per la combinazione di codice sincrono e asincrono nelle chiamate a SocketConnection.BeginRead e SocketConnection.Read.Better support for mixing asynchronous and synchronous code in calls to SocketConnection.BeginRead and SocketConnection.Read.
  • Maggiore affidabilità durante l'interruzione di una connessione con SharedConnectionListener e DuplexChannelBinder.Improved reliability when aborting a connection with SharedConnectionListener and DuplexChannelBinder.
  • Maggiore affidabilità delle operazioni di serializzazione quando si chiama il metodo FormatterServices.GetSerializableMembers(Type).Improved reliability of serialization operations when calling the FormatterServices.GetSerializableMembers(Type) method.
  • Maggiore affidabilità durante la rimozione di un oggetto waiter con la chiamata del metodo ChannelSynchronizer.RemoveWaiter.Improved reliability when removing a waiter by calling the ChannelSynchronizer.RemoveWaiter method.

Windows FormWindows Forms

In Framework .NET 4.7, Windows Form migliora il supporto per i monitor di valori DPI alti.In the .NET Framework 4.7, Windows Forms improves support for high DPI monitors.

Supporto di valori DPI altiHigh DPI support

A partire dalle applicazioni destinate a .NET Framework 4.7, le funzionalità di .NET Framework prevedono il supporto dei di valori DPI alti e dinamici per Windows Forms Application.Starting with applications that target the .NET Framework 4.7, the .NET Framework features high DPI and dynamic DPI support for Windows Forms applications. Il supporto di valori DPI alti migliora il layout e l'aspetto dei moduli e dei controlli nei monitor di valori DPI alti.High DPI support improves the layout and appearance of forms and controls on high DPI monitors. I valori DPI cambiano il layout e l'aspetto dei moduli e dei controlli quando l'utente modifica i valori DPI o visualizza il fattore di scala di un'applicazione in esecuzione.Dynamic DPI changes the layout and appearance of forms and controls when the user changes the DPI or display scale factor of a running application.

Il supporto di valori DPI alti è una funzionalità che prevede il consenso esplicito e si configurare definendo una sezione <System.Windows.Forms.ConfigurationSection> nel file di configurazione dell'applicazione.High DPI support is an opt-in feature that you configure by defining a <System.Windows.Forms.ConfigurationSection> section in your application configuration file. Per altre informazioni sull'aggiunta del supporto di valori DPI elevati e dinamici a un'applicazione Windows Form, vedere Supporto di valori DPI elevati in Windows Form.For more information on adding high DPI support and dynamic DPI support to your Windows Forms application, see High DPI Support in Windows Forms.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In .NET Framework 4.7, WPF include i miglioramenti seguenti:In the .NET Framework 4.7, WPF includes the following enhancements:

Supporto per lo stack di tocco/stilo basato sui messaggi basato sui messaggi WM_POINTER WindowsSupport for a touch/stylus stack based on Windows WM_POINTER messages

È ora possibile scegliere di usare uno stack di tocco/stilo basato sui messaggi WM_POINTER invece che su WISP (Windows Ink Services Platform).You now have the option of using a touch/stylus stack based on WM_POINTER messages instead of the Windows Ink Services Platform (WISP). È una funzionalità di .NET Framework che prevede il consenso esplicito.This is an opt-in feature in the .NET Framework. Per altre informazioni, vedere Reindirizzamento delle modifiche in .NET Framework versione 4.7.For more information, see Retargeting Changes in the .NET Framework 4.7.

Nuova implementazione per le API di stampa WPFNew implementation for WPF printing APIs

Le API di stampa di WPF nella classe System.Printing.PrintQueue chiamano l'API di gestione del pacchetto dei documenti di stampa invece dell'API di stampa XPS deprecata.WPF's printing APIs in the System.Printing.PrintQueue class call the Windows Print Document Package API instead of the deprecated XPS Print API. Per l'impatto di questa modifica sulla compatibilità delle applicazioni, vedere Reindirizzamento delle modifiche in .NET Framework versione 4.7.For the impact of this change on application compatibility, see Retargeting Changes in the .NET Framework 4.7.

Novità di .NET Framework 4.6.2What's new in the .NET Framework 4.6.2

.NET Framework 4.6.2.NET Framework 4.6.2 include nuove funzionalità nelle aree seguenti:The .NET Framework 4.6.2.NET Framework 4.6.2 includes new features in the following areas:

Per un elenco delle nuove API aggiunte a .NET Framework 4.6.2, vedere l'argomento sulle modifiche apportate all'API di .NET Framework 4.6.2 su GitHub.For a list of new APIs added to the .NET Framework 4.6.2, see .NET Framework 4.6.2 API Changes on GitHub. Per l'elenco dei miglioramenti apportati alle funzionalità e delle correzioni di bug in .NET Framework 4.6.2, vedere l'argomento .NET Framework 4.6.2 List of Changes (Elenco delle modifiche in .NET Framework 4.6.2) su GitHub.For a list of feature improvements and bug fixes in the .NET Framework 4.6.2, see .NET Framework 4.6.2 List of Changes on GitHub. Per altre informazioni, vedere l'annuncio di .NET Framework 4.6.2 in .NET Blog.For additional information, see Announcing .NET Framework 4.6.2 in the .NET blog.

ASP.NETASP.NET

In .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET include i miglioramenti seguenti:In the .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET includes the following enhancements:

Migliore supporto per i messaggi di errore localizzati nei validator di annotazioni dei dat I validator di annotazioni dei dati consentono di eseguire la convalida aggiungendo uno o più attributi a una proprietà di classe.Improved support for localized error messages in data annotation validators Data annotation validators enable you to perform validation by adding one or more attributes to a class property. L'elemento ValidationAttribute.ErrorMessage dell'attributo definisce il testo del messaggio di errore se la convalida non riesce.The attribute's ValidationAttribute.ErrorMessage element defines the text of the error message if validation fails. A partire da .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET semplifica la localizzazione dei messaggi di errore.Starting with the .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET makes it easy to localize error messages. I messaggi di errore verranno localizzati se:Error messages will be localized if:

  1. ValidationAttribute.ErrorMessage viene indicato nell'attributo di convalida.The ValidationAttribute.ErrorMessage is provided in the validation attribute.

  2. Il file di risorse è archiviato nella cartella App_LocalResources.The resource file is stored in the App_LocalResources folder.

  3. Il nome del file di risorse localizzato ha il formato DataAnnotation.Localization.{nome}.resx, dove nome è il nome delle impostazioni cultura con il formato codicelingua-codicepaese/area geografica o codicelingua.The name of the localized resources file has the form DataAnnotation.Localization.{name}.resx, where name is a culture name in the format languageCode-country/regionCode or languageCode.

  4. Il nome della chiave della risorsa è la stringa assegnata all'attributo ValidationAttribute.ErrorMessage e il relativo valore è il messaggio di errore localizzato.The key name of the resource is the string assigned to the ValidationAttribute.ErrorMessage attribute, and its value is the localized error message.

Ad esempio, l'attributo di annotazione dei dati seguente definisce il messaggio di errore delle impostazioni cultura predefinite per una classificazione non valida.For example, the following data annotation attribute defines the default culture's error message for an invalid rating.

public class RatingInfo
{
   [Required(ErrorMessage = "The rating must be between 1 and 10.")]
   [Display(Name = "Your Rating")]
   public int Rating { get; set; }
}
Public Class RatingInfo
   <Required(ErrorMessage = "The rating must be between 1 and 10.")>
   <Display(Name = "Your Rating")>
   Public Property Rating As Integer = 1
End Class

È quindi possibile creare il file di risorse DataAnnotation.Localization.fr.resx, la cui chiave è la stringa del messaggio di errore e il cui valore è il messaggio di errore localizzato.You can then create a resource file, DataAnnotation.Localization.fr.resx, whose key is the error message string and whose value is the localized error message. Il file deve essere salvato nella cartella App.LocalResources.The file must be found in the App.LocalResources folder. Ad esempio, di seguito vengono riportati la chiave e il relativo valore in un messaggio di errore in lingua francese (fr):For example, the following is the key and its value in a localized French (fr) language error message:

nomeName ValoreValue
La classificazione deve essere compresa tra 1 e 10.The rating must be between 1 and 10. La note doit être comprise entre 1 et 10.La note doit être comprise entre 1 et 10.

Questo file può quindiThis file can then

La localizzazione dell'annotazione dei dati è anche estensibile.In addition, data annotation localization is extensible. Gli sviluppatori possono collegare il proprio provider di localizzazione delle stringhe implementando l'interfaccia di IStringLocalizerProvider per archiviare la stringa di localizzazione in un posto diverso da un file di risorse.Developers can plug in their own string localizer provider by implementing the IStringLocalizerProvider interface to store localization string somewhere other than in a resource file.

Supporto per le operazioni asincrone con i provider dello stato sessione ASP.NET offre ora metodi con restituzione di Task da usare con i provider dello stato sessione, consentendo quindi alle app ASP.NET di usufruire dei vantaggi della scalabilità delle operazioni asincrone.Async support with session-state store providers ASP.NET now allows task-returning methods to be used with session-state store providers, thereby allowing ASP.NET apps to get the scalability benefits of async. Per supportare le operazioni asincrone con i provider dell'archivio per lo stato sessione, ASP.NET include una nuova interfaccia, System.Web.SessionState.ISessionStateModule, che eredita da IHttpModule e consente agli sviluppatori di implementare i propri provider di moduli dello stato sessione e di archiviazione asincrona delle sessioni.To supports asynchronous operations with session state store providers, ASP.NET includes a new interface, System.Web.SessionState.ISessionStateModule, which inherits from IHttpModule and allows developers to implement their own session-state module and async session store providers. L'interfaccia viene definita come segue:The interface is defined as follows:

public interface ISessionStateModule : IHttpModule {
    void ReleaseSessionState(HttpContext context);
    Task ReleaseSessionStateAsync(HttpContext context);
}

La classe SessionStateUtility include anche due nuovi metodi, IsSessionStateReadOnly e IsSessionStateRequired, che possono essere usati a supporto delle operazioni asincrone.In addition, the SessionStateUtility class includes two new methods, IsSessionStateReadOnly and IsSessionStateRequired, that can be used to support asynchronous operations.

Supporto per le operazioni asincrone con i provider di cache di output A partire da .NET Framework 4.6.2.NET Framework 4.6.2, i metodi con restituzione di Task possono essere usati con i provider di cache di output per usufruire dei vantaggi della scalabilità delle operazioni asincrone.Async support for output-cache providers Starting with the .NET Framework 4.6.2.NET Framework 4.6.2, task-returning methods can be used with output-cache providers to provide the scalability benefits of async. I provider che implementano questi metodi riducono i blocchi dei thread su un server Web e migliorano la scalabilità di un servizio ASP.NET.Providers that implement these methods reduce thread-blocking on a web server and improve the scalability of an ASP.NET service.

Per supportare i provider di cache di output asincroni sono state aggiunte le API seguenti:The following APIs have been added to support asynchronous output-cache providers:

Categorie di caratteriCharacter categories

I caratteri in .NET Framework 4.6.2.NET Framework 4.6.2 sono classificati in base allo standard Unicode, versione 8.0.0.Characters in the .NET Framework 4.6.2.NET Framework 4.6.2 are classified based on the Unicode Standard, Version 8.0.0. In .NET Framework 4.6.NET Framework 4.6 e .NET Framework 4.6.1.NET Framework 4.6.1, i caratteri sono stati classificati in base alle categorie di caratteri Unicode 6.3.In .NET Framework 4.6.NET Framework 4.6 and .NET Framework 4.6.1.NET Framework 4.6.1, characters were classified based on Unicode 6.3 character categories.

Il supporto per Unicode 8.0 è limitato alla classificazione dei caratteri della classe CharUnicodeInfo e ai tipi e metodi basati sulla stessa.Support for Unicode 8.0 is limited to the classification of characters by the CharUnicodeInfo class and to types and methods that rely on it. Sono inclusi la classe StringInfo, il metodo Char.GetUnicodeCategory in overload e le classi di caratteri riconosciute dal motore delle espressioni regolari di .NET Framework.These include the StringInfo class, the overloaded Char.GetUnicodeCategory method, and the character classes recognized by the .NET Framework regular expression engine. Il confronto e l'ordinamento di stringhe e caratteri non sono interessati da questa modifica e continuano a basarsi sul sistema operativo sottostante o, nei sistemi Windows 7, sui dati dei caratteri provenienti da .NET Framework.Character and string comparison and sorting is unaffected by this change and continues to rely on the underlying operating system or, on Windows 7 systems, on character data provided by the .NET Framework.

Per informazioni sulle modifiche nelle categorie di caratteri da Unicode 6.0 a Unicode 7.0, vedere The Unicode Standard, Version 7.0.0 nel sito Web The Unicode Consortium.For changes in character categories from Unicode 6.0 to Unicode 7.0, see The Unicode Standard, Version 7.0.0 at The Unicode Consortium website. Per informazioni sulle modifiche da Unicode 7.0 a Unicode 8.0, vedere The Unicode Standard, Version 8.0.0 nel sito Web The Unicode Consortium.For changes from Unicode 7.0 to Unicode 8.0, see The Unicode Standard, Version 8.0.0 at The Unicode Consortium website.

CrittografiaCryptography

Supporto per i certificati X509 contenenti l'algoritmo di firma digitale (DSA) FIPS 186-3 .NET Framework 4.6.2.NET Framework 4.6.2 supporta ora i certificati DSA (Digital Signature Algorithm) X509 le cui chiavi superano il limite di 1024 bit specificato da FIPS 186-2.Support for X509 certificates containing FIPS 186-3 DSA The .NET Framework 4.6.2.NET Framework 4.6.2 adds support for DSA (Digital Signature Algorithm) X509 certificates whose keys exceed the FIPS 186-2 1024-bit limit.

Oltre a supportare le dimensioni della chiave più grandi di FIPS 186-3, .NET Framework 4.6.2.NET Framework 4.6.2 consente di calcolare le firme con la famiglia SHA-2 di algoritmi hash (SHA256, SHA384 e SHA512).In addition to supporting the larger key sizes of FIPS 186-3, the .NET Framework 4.6.2.NET Framework 4.6.2 allows computing signatures with the SHA-2 family of hash algorithms (SHA256, SHA384, and SHA512). Il supporto per FIPS 186-3 è assicurato dalla nuova classe System.Security.Cryptography.DSACng.FIPS 186-3 support is provided by the new System.Security.Cryptography.DSACng class.

In conformità alle recenti modifiche apportate alla classe RSA in .NET Framework 4.6 e alla classe ECDsa in .NET Framework 4.6.1, la classe base astratta DSA in .NET Framework 4.6.2.NET Framework 4.6.2 offre ulteriori metodi per consentire ai chiamanti di usare questa funzionalità senza eseguire il cast.In keeping with recent changes to the RSA class in the .NET Framework 4.6 and the ECDsa class in the .NET Framework 4.6.1, the DSA abstract base class in .NET Framework 4.6.2.NET Framework 4.6.2 has additional methods to allow callers to use this functionality without casting. È possibile chiamare il metodo di estensione DSACertificateExtensions.GetDSAPrivateKey per firmare i dati, come illustrato nell'esempio seguente.You can call the DSACertificateExtensions.GetDSAPrivateKey extension method to sign data, as the following example shows.

public static byte[] SignDataDsaSha384(byte[] data, X509Certificate2 cert)
{
    using (DSA dsa = cert.GetDSAPrivateKey())
    {
        return dsa.SignData(data, HashAlgorithmName.SHA384);
    }
}
Public Shared Function SignDataDsaSha384(data As Byte(), cert As X509Certificate2) As Byte()
    Using DSA As DSA = cert.GetDSAPrivateKey()
        Return DSA.SignData(data, HashAlgorithmName.SHA384)
    End Using
End Function

Ed è possibile chiamare il metodo di estensione DSACertificateExtensions.GetDSAPublicKey per verificare i dati firmati, come illustrato nell'esempio seguente.And you can call the DSACertificateExtensions.GetDSAPublicKey extension method to verify signed data, as the following example shows.

public static bool VerifyDataDsaSha384(byte[] data, byte[] signature, X509Certificate2 cert)
{
    using (DSA dsa = cert.GetDSAPublicKey())
    {
        return dsa.VerifyData(data, signature, HashAlgorithmName.SHA384);
    }
}
 Public Shared Function VerifyDataDsaSha384(data As Byte(), signature As Byte(), cert As X509Certificate2) As Boolean
    Using dsa As DSA = cert.GetDSAPublicKey()
        Return dsa.VerifyData(data, signature, HashAlgorithmName.SHA384)
    End Using
End Function

Migliore chiarezza per gli input alle routine di derivazione della chiave ECDiffieHellman .NET Framework 3.5 supporta ora la chiave concordata Ellipic Curve Diffie-Hellman con tre diverse routine di funzione di derivazione di chiave (KDF).Increased clarity for inputs to ECDiffieHellman key derivation routines The .NET Framework 3.5 added support for Ellipic Curve Diffie-Hellman Key Agreement with three different Key Derivation Function (KDF) routines. Gli input per le routine e le routine stesse sono stati configurati usando le proprietà dell'oggetto ECDiffieHellmanCng.The inputs to the routines, and the routines themselves, were configured via properties on the ECDiffieHellmanCng object. Ma poiché non tutte le routine leggono tutte le proprietà di input, in passato era molto probabile che si creasse confusione per lo sviluppatore.But since not every routine read every input property, there was ample room for confusion on the past of the developer.

Per risolvere questo problema in .NET Framework 4.6.2.NET Framework 4.6.2, sono stati aggiunti i tre metodi seguenti alla classe base ECDiffieHellman per rappresentare in modo più chiaro le routine KDF e i relativi input:To address this in the .NET Framework 4.6.2.NET Framework 4.6.2, the following three methods have been added to the ECDiffieHellman base class to more clearly represent these KDF routines and their inputs:

Metodo ECDiffieHellmanECDiffieHellman method DescrizioneDescription
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[]) Deriva il materiale della chiave usando la formulaDerives key material using the formula

HASH(secretPrepend || x || secretAppend)HASH(secretPrepend || x || secretAppend)

HASH(secretPrepend OrElse x OrElse secretAppend)HASH(secretPrepend OrElse x OrElse secretAppend)

dove x è il risultato calcolato dell'algoritmo EC Diffie-Hellman.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) Deriva il materiale della chiave usando la formulaDerives key material using the formula

HMAC(hmacKey, secretPrepend || x || secretAppend)HMAC(hmacKey, secretPrepend || x || secretAppend)

HMAC(hmacKey, secretPrepend OrElse x OrElse secretAppend)HMAC(hmacKey, secretPrepend OrElse x OrElse secretAppend)

dove x è il risultato calcolato dell'algoritmo EC Diffie-Hellman.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) Deriva il materiale della chiave usando l'algoritmo di derivazione TLS della funzione pseudocasuale.Derives key material using the TLS pseudo-random function (PRF) derivation algorithm.

Supporto per la crittografia simmetrica con chiave permanente La libreria di crittografia di Windows (CNG) supporta ora l'archiviazione delle chiavi simmetriche persistenti e l'uso delle chiavi simmetriche archiviate nell'hardware e .NET Framework 4.6.2.NET Framework 4.6.2 rende possibile l'uso di questa funzionalità per gli sviluppatori.Support for persisted-key symmetric encryption The Windows cryptography library (CNG) added support for storing persisted symmetric keys and using hardware-stored symmetric keys, and the .NET Framework 4.6.2.NET Framework 4.6.2 mades it possible for developers to make use of this feature. Poiché le nozioni di nome della chiave e provider di chiavi sono specifiche dell'implementazione, questa funzionalità richiede l'uso del costruttore dei tipi di implementazione concreti anziché della modalità factory preferita, ad esempio la chiamata a Aes.Create.Since the notion of key names and key providers is implementation-specific, using this feature requires utilizing the constructor of the concrete implementation types instead of the preferred factory approach (such as calling Aes.Create).

Il supporto per la crittografia simmetrica con chiave persistente esiste per gli algoritmi AES (AesCng) e 3DES (TripleDESCng).Persisted-key symmetric encryption support exists for the AES (AesCng) and 3DES (TripleDESCng) algorithms. Ad esempio:For example:

public static byte[] EncryptDataWithPersistedKey(byte[] data, byte[] iv)
{
    using (Aes aes = new AesCng("AesDemoKey", CngProvider.MicrosoftSoftwareKeyStorageProvider))
    {
        aes.IV = iv;

        // Using the zero-argument overload is required to make use of the persisted key
        using (ICryptoTransform encryptor = aes.CreateEncryptor())
        {
            if (!encryptor.CanTransformMultipleBlocks)
            {
                throw new InvalidOperationException("This is a sample, this case wasn’t handled...");
            }

            return encryptor.TransformFinalBlock(data, 0, data.Length);
        }
    }
}
Public Shared Function EncryptDataWithPersistedKey(data As Byte(), iv As Byte()) As Byte()
    Using Aes As Aes = New AesCng("AesDemoKey", CngProvider.MicrosoftSoftwareKeyStorageProvider)
        Aes.IV = iv

        ' Using the zero-argument overload Is required to make use of the persisted key
        Using encryptor As ICryptoTransform = Aes.CreateEncryptor()
            If Not encryptor.CanTransformMultipleBlocks Then
                Throw New InvalidOperationException("This is a sample, this case wasn’t handled...")
            End If
            Return encryptor.TransformFinalBlock(data, 0, data.Length)
        End Using
    End Using
End Function

Supporto SignedXml per generazione di hash SHA-2 .NET Framework 4.6.2.NET Framework 4.6.2 offre il supporto per la classe SignedXml per i metodi di firma P RSA-SHA256, RSA-SHA384 e RSA-SHA512 PKCS#1 e SHA256, SHA384 e SHA512 fanno riferimento agli algoritmi con classificazione.SignedXml support for SHA-2 hashing The .NET Framework 4.6.2.NET Framework 4.6.2 adds support to the SignedXml class for RSA-SHA256, RSA-SHA384, and RSA-SHA512 PKCS#1 signature methods, and SHA256, SHA384, and SHA512 reference digest algorithms.

Le costanti URI sono tutte esposte in SignedXml:The URI constants are all exposed on SignedXml:

Campo SignedXmlSignedXml field CostanteConstant
XmlDsigSHA256Url "http://www.w3.org/2001/04/xmlenc#sha256""http://www.w3.org/2001/04/xmlenc#sha256"
XmlDsigRSASHA256Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256""http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
XmlDsigSHA384Url "http://www.w3.org/2001/04/xmldsig-more#sha384""http://www.w3.org/2001/04/xmldsig-more#sha384"
XmlDsigRSASHA384Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384""http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"
XmlDsigSHA512Url "http://www.w3.org/2001/04/xmlenc#sha512""http://www.w3.org/2001/04/xmlenc#sha512"
XmlDsigRSASHA512Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512""http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"

Tutti i programmi che hanno registrato un gestore personalizzato SignatureDescription in CryptoConfig per aggiungere il supporto per questi algoritmi continueranno a funzionare come prima, ma poiché ora esistono impostazioni predefinite nella piattaforma, la registrazione di CryptoConfig non è più necessaria.Any programs that have registered a custom SignatureDescription handler into CryptoConfig to add support for these algorithms will continue to function as they did in the past, but since there are now platform defaults, the CryptoConfig registration is no longer necessary.

SqlClientSqlClient

Il provider di dati .NET Framework per SQL Server (System.Data.SqlClient) include le nuove funzionalità seguenti in .NET Framework 4.6.2.NET Framework 4.6.2:.NET Framework Data Provider for SQL Server (System.Data.SqlClient) includes the following new features in the .NET Framework 4.6.2.NET Framework 4.6.2:

Pool e timeout di connessioni con i database di Azure SQL Quando il pool di connessioni è abilitato e si verifica un timeout o un altro errore di accesso, viene memorizzata un'eccezione nella cache e tale eccezione viene generata ad ogni tentativo di connessione effettuato nei 5 secondi successivi fino a 1 minuto.Connection pooling and timeouts with Azure SQL databases When connection pooling is enabled and a timeout or other login error occurs, an exception is cached, and the cached exception is thrown on any subsequent connection attempt for the next 5 seconds to 1 minute. Per altre informazioni, vedere Pool di connessioni SQL Server (ADO.NET).For more details, see SQL Server Connection Pooling (ADO.NET).

Questo comportamento è da evitare quando ci si connette ai database SQL di Azure, poiché i tentativi di connessione possono non riuscire per errori temporanei che in genere si risolvono rapidamente.This behavior is not desirable when connecting to Azure SQL Databases, since connection attempts can fail with transient errors that are typically recovered quickly. Per ottimizzare l'esperienza dei tentativi di connessione, il comportamento del periodo di blocco del pool di connessioni viene rimosso quando le connessioni ai database SQL di Azure hanno esito negativo.To better optimize the connection retry experience, the connection pool blocking period behavior is removed when connections to Azure SQL Databases fail.

L'aggiunta della nuova parola chiave PoolBlockingPeriod consente di selezionare il periodo di blocco più adatto per l'applicazione.The addition of the new PoolBlockingPeriod keyword lets you to select the blocking period best suited for your app. I valori includono:Values include:

Auto Il periodo di blocco del pool di connessioni per un'applicazione che si connette a un database di Azure SQL è disabilitato e il periodo di blocco del pool di connessioni per un'applicazione che si connette a qualsiasi altra istanza di SQL Server è abilitato.Auto The connection pool blocking period for an application that connects to an Azure SQL Database is disabled, and the connection pool blocking period for an application that connects to any other SQL Server instance is enabled. Rappresenta il valore predefinito.This is the default value. Se il nome dell'endpoint server termina in uno dei modi seguenti, vengono considerati i database SQL di Azure:If the Server endpoint name ends with any of the following, they are considered Azure SQL Databases:

  • .database.windows.net.database.windows.net

  • .database.chinacloudapi.cn.database.chinacloudapi.cn

  • .database.usgovcloudapi.net.database.usgovcloudapi.net

  • .database.cloudapi.de.database.cloudapi.de

AlwaysBlock Il periodo di blocco del pool di connessioni è sempre abilitato.AlwaysBlock The connection pool blocking period is always enabled.

NeverBlock Il periodo di blocco del pool di connessioni è sempre disabilitato.NeverBlock The connection pool blocking period is always disabled.

Miglioramenti per Always Encrypted SQLClient introduce due miglioramenti per Always Encrypted:Enhancements for Always Encrypted SQLClient introduces two enhancements for Always Encrypted:

  • Per migliorare le prestazioni delle query con parametri su colonne di database crittografate, i metadati di crittografia per i parametri di query ora vengono memorizzati nella cache.To improve performance of parameterized queries against encrypted database columns, encryption metadata for query parameters is now cached. Con la proprietà SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled impostata su true, ovvero il valore predefinito, se la stessa query viene chiamata più volte, il client recupera i metadati dei parametri dal server una sola volta.With the SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled property set to true (which is the default value), if the same query is called multiple times, the client retrieves parameter metadata from the server only once.

  • Le voci delle chiavi di crittografia delle colonne nella cache delle chiavi ora vengono eliminate dopo un intervallo di tempo configurabile, impostato usando la proprietà SqlConnection.ColumnEncryptionKeyCacheTtl.Column encryption key entries in the key cache are now evicted after a configurable time interval, set using the SqlConnection.ColumnEncryptionKeyCacheTtl property.

Windows Communication FoundationWindows Communication Foundation

In .NET Framework 4.6.2.NET Framework 4.6.2 Windows Communication Foundation è stato ottimizzato nelle aree seguenti:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Communication Foundation has been enhanced in the following areas:

Supporto della sicurezza del trasporto WCF per i certificati archiviati tramite CNG La sicurezza del trasporto WCF supporta i certificati archiviati tramite la libreria di crittografia di Windows (CNG).WCF transport security support for certificates stored using CNG WCF transport security supports certificates stored using the Windows cryptography library (CNG). In .NET Framework 4.6.2.NET Framework 4.6.2 questo supporto è limitato all'utilizzo dei certificati con una chiave pubblica che ha un esponente di lunghezza non superiore a 32 bit.In the .NET Framework 4.6.2.NET Framework 4.6.2, this support is limited to using certificates with a public key that has an exponent no more than 32 bits in length. Quando un'applicazione ha come destinazione .NET Framework 4.6.2.NET Framework 4.6.2, questa funzionalità è attivata per impostazione predefinita.When an application targets the .NET Framework 4.6.2.NET Framework 4.6.2, this feature is on by default.

Per le applicazioni destinate a .NET Framework 4.6.1.NET Framework 4.6.1 e versioni precedenti, ma eseguite in .NET Framework 4.6.2.NET Framework 4.6.2, questa funzionalità può essere abilitata aggiungendo la riga seguente alla sezione <runtime> del file app.config o web.config.For applications that target the .NET Framework 4.6.1.NET Framework 4.6.1 and earlier but are running on the .NET Framework 4.6.2.NET Framework 4.6.2, this feature can be enabled by adding the following line to the <runtime> section of the app.config or web.config file.

<AppContextSwitchOverrides
    value="Switch.System.ServiceModel.DisableCngCertificates=false"
/>

L'operazione può essere eseguita anche a livello di codice nel modo seguente:This can also be done programmatically with code like the following:

private const string DisableCngCertificates = @"Switch.System.ServiceModel.DisableCngCertificates";
AppContext.SetSwitch(disableCngCertificates, false);
Const DisableCngCertificates As String = "Switch.System.ServiceModel.DisableCngCertificates"
AppContext.SetSwitch(disableCngCertificates, False)

Miglioramento del supporto per più regole di regolazione dell'ora legale tramite la classe DataContractJsonSerializer Better support for multiple daylight saving time adjustment rules by the DataContractJsonSerializer class
I clienti possono usare un'impostazione di configurazione dell'applicazione per determinare se la classe DataContractJsonSerializer supporta più regole di regolazione per un singolo fuso orario.Customers can use an application configuration setting to determine whether the DataContractJsonSerializer class supports multiple adjustment rules for a single time zone. È una funzionalità che prevede il consenso esplicito.This is an opt-in feature. Per abilitarla aggiungere la seguente impostazione nel file di configurazione dell'applicazione:To enable it, add the following setting to your app.config file:

<runtime>
     <AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseTimeZoneInfo=false" />
</runtime>

Quando questa funzionalità è abilitata, un oggetto DataContractJsonSerializer usa il tipo TimeZoneInfo anziché il tipo TimeZone per deserializzare i dati di data e ora.When this feature is enabled, a DataContractJsonSerializer object uses the TimeZoneInfo type instead of the TimeZone type to deserialize date and time data. TimeZoneInfo supporta più regole di regolazione, quindi consente di lavorare con i dati cronologici relativi al fuso orario, al contrario di TimeZone.TimeZoneInfo supports multiple adjustment rules, which makes it possible to work with historic time zone data; TimeZone does not.

Per altre informazioni sulla struttura di TimeZoneInfo e sulle regolazioni per il fuso orario, vedere Panoramica sul fuso orario.For more information on the TimeZoneInfo structure and time zone adjustments, see Time Zone Overview.

Ricerca più accurata con NetNamedPipeBinding NetNamedPipeBinding best match
WCF offre una nuova impostazione di applicazione che può essere specificata sulle applicazioni client in modo da assicurare che si connettano sempre al servizio in ascolto sull'URI che meglio corrisponde a quello richiesto.WCF has a new app setting that can be set on client applications to ensure they always connect to the service listening on the URI that best matches the one that they request. Con questa impostazione impostata su false (impostazione predefinita), i client che usano NetNamedPipeBinding sono in grado di tentare la connessione a un servizio in ascolto su un URI che è una sottostringa dell'URI richiesto.With this app setting set to false (the default), it is possible for clients using NetNamedPipeBinding to attempt to connect to a service listening on a URI that is a substring of the requested URI.

Ad esempio, un client tenta di connettersi a un servizio in ascolto su net.pipe://localhost/Service1, ma un altro servizio in esecuzione nello stesso computer con privilegi di amministratore è in ascolto su net.pipe://localhost.For example, a client tries to connect to a service listening at net.pipe://localhost/Service1, but a different service on that machine running with administrator privilege is listening at net.pipe://localhost. Con l'impostazione di applicazione impostata su false, il client tenterebbe di connettersi al servizio errato.With this app setting set to false, the client would attempt to connect to the wrong service. Dopo aver impostato l'impostazione di applicazione su true, il client si connetterà sempre al servizio più pertinente.After setting the app setting to true, the client will always connect to the best matching service.

Nota

I client che usano NetNamedPipeBinding trovano i servizi basati sull'indirizzo di base del servizio, se esiste, anziché sull'indirizzo completo dell'endpoint.Clients using NetNamedPipeBinding find services based on the service's base address (if it exists) rather than the full endpoint address. Per assicurarsi che l'impostazione funzioni sempre, il servizio deve usare un indirizzo di base univoco.To ensure this setting always works the service should use a unique base address.

Per abilitare questa modifica, aggiungere la seguente impostazione di applicazione al file di configurazione dell'applicazione o del Web dell'applicazione client:To enable this change, add the following app setting to your client application's App.config or Web.config file:

<configuration>
    <appSettings>
        <add key="wcf:useBestMatchNamedPipeUri" value="true" />
    </appSettings>
</configuration>

SSL 3.0 non è un protocollo predefinito Quando si usa NetTcp con la sicurezza di trasporto e un tipo di credenziali di certificato, SSL 3.0 non è più un protocollo predefinito usato per negoziare una connessione protetta.SSL 3.0 is not a default protocol When using NetTcp with transport security and a credential type of certificate, SSL 3.0 is no longer a default protocol used for negotiating a secure connection. Nella maggior parte dei casi non vi sarà alcun impatto sulle applicazioni esistenti, poiché TLS 1.0 è incluso nell'elenco di protocolli per NetTcp.In most cases, there should be no impact to existing apps, because TLS 1.0 is included in the protocol list for NetTcp. Tutti i client esistenti devono essere in grado di negoziare una connessione usando almeno TLS 1.0.All existing clients should be able to negotiate a connection using at least TLS 1.0. Se è necessario il protocollo Ssl3, usare uno dei meccanismi di configurazione seguenti per aggiungerlo all'elenco dei protocolli negoziati.If Ssl3 is required, use one of the following configuration mechanisms to add it to the list of negotiated protocols.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In .NET Framework 4.6.2.NET Framework 4.6.2 Windows Presentation Foundation è stato ottimizzato nelle aree seguenti:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Presentation Foundation has been enhanced in the following areas:

Ordinamento di gruppo Un'applicazione che usa un oggetto CollectionView per raggruppare i dati ora può dichiarare esplicitamente in che modo ordinare i gruppi.Group sorting An application that uses a CollectionView object to group data can now explicitly declare how to sort the groups. L'ordinamento esplicito risolve il problema dell'ordinamento non intuitivo che si verifica quando un'applicazione aggiunge o rimuove in modo dinamico i gruppi o quando modifica il valore delle proprietà dell'elemento interessate dal raggruppamento.Explicit sorting addresses the problem of non-intuitive ordering that occurs when an app dynamically adds or removes groups, or when it changes the value of item properties involved in grouping. Può anche migliorare le prestazioni del processo di creazione dei gruppi spostando i confronti delle proprietà di raggruppamento dall'ordinamento della raccolta completa all'ordinamento dei gruppi.It can also improve the performance of the group creation process by moving comparisons of the grouping properties from the sort of the full collection to the sort of the groups.

Per supportare l'ordinamento dei gruppi, le nuove proprietà GroupDescription.SortDescriptions e GroupDescription.CustomSort descrivono come ordinare la raccolta di gruppi generata dall'oggetto GroupDescription.To support group sorting, the new GroupDescription.SortDescriptions and GroupDescription.CustomSort properties describe how to sort the collection of groups produced by the GroupDescription object. Questo comportamento è analogo al modo in cui le proprietà ListCollectionView omonime descrivono come ordinare gli elementi di dati.This is analogous to the way the identically named ListCollectionView properties describe how to sort the data items.

Due nuove proprietà statiche della classe PropertyGroupDescription, CompareNameAscending e CompareNameDescending, possono essere utilizzate per la maggior parte dei casi.Two new static properties of the PropertyGroupDescription class, CompareNameAscending and CompareNameDescending, can be used for the most common cases.

Ad esempio, il seguente XAML raggruppa i dati in base all'età, ordina i gruppi di età in ordine crescente e raggruppa gli elementi all'interno di ogni gruppo di età in base al cognome.For example, the following XAML groups data by age, sort the age groups in ascending order, and group the items within each age group by last name.

<GroupDescriptions>
     <PropertyGroupDescription 
         PropertyName="Age" 
         CustomSort= 
              "{x:Static PropertyGroupDescription.CompareNamesAscending}"/>
     </PropertyGroupDescription>
</GroupDescriptions>

<SortDescriptions>
     <SortDescription PropertyName="LastName"/>
</SortDescriptions>

Supporto per la tastiera su schermo Il supporto per la tastiera su schermo consente di rilevare lo stato attivo nelle applicazioni WPF chiamando e chiudendo automaticamente la nuova tastiera su schermo in Windows 10 quando l'input tocco viene ricevuto da un controllo in grado di accettare input testuale.Soft keyboard support Soft Keyboard support enables focus tracking in a WPF applications by automatically invoking and dismissing the new Soft Keyboard in Windows 10 when the touch input is received by a control that can take textual input.

Nelle versioni precedenti di .NET Framework, non è possibile attivare il rilevamento dello stato attivo nelle applicazioni WPF senza disabilitare il supporto WPF per il rilevamento dei movimenti di tocco e penna.In previous versions of the .NET Framework, WPF applications cannot opt into the focus tracking without disabling WPF pen/touch gesture support. Di conseguenza, le applicazioni WPF devono scegliere tra il supporto completo WPF per il tocco e la promozione del mouse di Windows.As a result, WPF applications must choose between full WPF touch support or rely on Windows mouse promotion.

Valori DPI del monitor Per supportare la recente proliferazione di ambienti a DPI elevato e a risoluzione ibrida per le app WPF, WPF in .NET Framework 4.6.2.NET Framework 4.6.2 consente di abilitare la sensibilità ai valori del monitor.Per-monitor DPI To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in the .NET Framework 4.6.2.NET Framework 4.6.2 enables per-monitor awareness. Per altre informazioni su come abilitare l'app WPF per la sensibilità ai valori DPI del monitor, vedere gli esempi e la guida per gli sviluppatori su GitHub.See the samples and developer guide on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.

Nelle versioni precedenti di .NET Framework, le applicazioni WPF sono compatibili con i valori DPI del sistema.In previous versions of the .NET Framework, WPF apps are system-DPI aware. In altre parole, l'interfaccia utente dell'applicazione viene adeguata in modo appropriato dal sistema operativo, in base alla risoluzione del monitor in cui viene eseguito il rendering dell'applicazione.In other words, the application's UI is scaled by the OS as appropriate, depending on the DPI of the monitor on which the app is rendered. ,,

Per le app eseguite in .NET Framework 4.6.2.NET Framework 4.6.2, è possibile disabilitare le modifiche dei valori DPI per monitor nelle app WPF aggiungendo un'istruzione di configurazione alla sezione <runtime> del file di configurazione dell'applicazione in questo modo:For apps running under the .NET Framework 4.6.2.NET Framework 4.6.2, you can disable per-monitor DPI changes in WPF apps by adding a configuration statement to the <runtime> section of your application configuration file, as follows:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
</runtime>

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

In .NET Framework 4.6.2.NET Framework 4.6.2 Windows Workflow Foundation è stato ottimizzato nell'area seguente:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Workflow Foundation has been enhanced in the following area:

Supporto per espressioni C# e IntelliSense nella progettazione di WF riallocata A partire da .NET Framework 4.5.NET Framework 4.5, WF supporta espressioni C# nella finestra di progettazione di Visual Studio e nei flussi di lavoro con codice.Support for C# expressions and IntelliSense in the Re-hosted WF Designer Starting with the .NET Framework 4.5.NET Framework 4.5, WF supports C# expressions in both the Visual Studio Designer and in code workflows. La riallocazione della progettazione del flusso di lavoro è una funzionalità chiave di WF che consente di usare la finestra di progettazione del flusso di lavoro in un'applicazione esterna a Visual Studio, ad esempio WPF.The Re-hosted Workflow Designer is a key feature of WF that allows for the Workflow Designer to be in an application outside Visual Studio (for example, in WPF). Windows Workflow Foundation offre la possibilità di supportare le espressioni C# e IntelliSense nell'utilità di progettazione del flusso di lavoro riallocata.Windows Workflow Foundation provides the ability to support C# expressions and IntelliSense in the Re-hosted Workflow Designer. Per altre informazioni, vedere il blog di Windows Workflow Foundation.For more information, see the Windows Workflow Foundation blog.

Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio Nelle versioni di .NET Framework precedenti a .NET Framework 4.6.2.NET Framework 4.6.2 IntelliSense viene interrotta nella finestra di progettazione del flusso di lavoro quando un cliente ricompila un progetto di flusso di lavoro da Visual Studio.Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio In versions of the .NET Framework prior to the .NET Framework 4.6.2.NET Framework 4.6.2, WF Designer IntelliSense is broken when a customer rebuilds a workflow project from Visual Studio. Anche se la compilazione del progetto ha esito positivo, i tipi di flusso di lavoro non vengono trovati nell'utilità di progettazione e vengono visualizzati alcuni avvisi di IntelliSense per i tipi di flusso di lavoro mancanti nella finestra Elenco errori.While the project build is successful, the workflow types are not found on the designer, and warnings from IntelliSense for the missing workflow types appear in the Error List window. .NET Framework 4.6.2.NET Framework 4.6.2 risolve questo problema e rende disponibile IntelliSense.The .NET Framework 4.6.2.NET Framework 4.6.2 addresses this issue and makes IntelliSense available.

Le applicazioni del flusso di lavoro V1 con la tracciabilità flusso di lavoro attivata vengono ora eseguite in modalità FIPS I computer con modalità di compatibilità FIPS abilitata sono ora in grado di eseguire correttamente un'applicazione di flusso di lavoro tipo versione 1 con la tracciabilità flusso di lavoro attivata.Workflow V1 applications with Workflow Tracking on now run under FIPS-mode Machines with FIPS Compliance Mode enabled can now successfully run a workflow Version 1-style application with Workflow tracking on. Per abilitare questo scenario, è necessario apportare le modifiche seguenti al file di configurazione dell'applicazione:To enable this scenario, you must make the following change to your app.config file:

<add key="microsoft:WorkflowRuntime:FIPSRequired" value="true" />

Se questo scenario non è abilitato, eseguire l'applicazione continua a generare un'eccezione con il messaggio "Questa implementazione non fa parte degli algoritmi crittografici convalidati per Windows Platform FIPS".If this scenario is not enabled, running the application continues to generate an exception with the message, "This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms."

Miglioramenti del flusso di lavoro quando si usa l'aggiornamento dinamico con Progettazione flussi di lavoro di Visual Studio Progettazione flussi di lavoro, ActivityDesigner Flowchart e gli altri strumenti di progettazione delle attività dei flussi di lavoro caricano e visualizzano correttamente i flussi di lavoro che sono stati salvati dopo la chiamata del metodo DynamicUpdateServices.PrepareForUpdate.Workflow Improvements when using Dynamic Update with Visual Studio Workflow Designer The Workflow Designer, FlowChart Activity Designer, and other Workflow Activity Designers now successfully load and display workflows that have been saved after calling the DynamicUpdateServices.PrepareForUpdate method. Nelle versioni di .NET Framework precedenti a .NET Framework 4.6.2.NET Framework 4.6.2 il caricamento di un file XAML in Visual Studio per un flusso di lavoro salvato dopo la chiamata di DynamicUpdateServices.PrepareForUpdate può causare i problemi seguenti:In versions of the .NET Framework before the .NET Framework 4.6.2.NET Framework 4.6.2, loading a XAML file in Visual Studio for a workflow that has been saved after calling DynamicUpdateServices.PrepareForUpdate can result in the following issues:

  • Progettazione flussi di lavoro non è in grado di caricare correttamente il file XAML se ViewStateData.Id si trova alla fine della riga.The Workflow Designer can't load the XAML file correctly (when the ViewStateData.Id is at the end of the line).

  • ActivityDesigner Diagramma di flusso o altri ActivityDesigner del flusso di lavoro possono visualizzare tutti gli oggetti nei propri percorsi predefiniti anziché i valori della proprietà associata.Flowchart Activity Designer or other Workflow Activity Designers may display all objects in their default locations as opposed to attached property values.

ClickOnceClickOnce

ClickOnce è stato aggiornato per supportare TLS 1.1 e TLS 1.2 oltre al protocollo 1.0 che supporta già.ClickOnce has been updated to support TLS 1.1 and TLS 1.2 in addition to the 1.0 protocol, which it already supports. ClickOnce rileva automaticamente il protocollo richiesto e non sono necessarie altre operazioni nell'applicazione ClickOnce per abilitare il supporto per TLS 1.1 e 1.2.ClickOnce automatically detects which protocol is required; no extra steps within the ClickOnce application are required to enable TLS 1.1 and 1.2 support.

Conversione di Windows Form e applicazioni WPF in applicazioni UWPConverting Windows Forms and WPF apps to UWP apps

Windows ora offre funzionalità che consentono di portare le applicazioni desktop Windows esistenti, incluse le applicazioni WPF e Windows Form, sulla piattaforma UWP (Universal Windows Platform).Windows now offers capabilities to bring existing Windows desktop apps, including WPF and Windows Forms apps, to the Universal Windows Platform (UWP). Questa tecnologia funge da ponte e consente di eseguire gradualmente la migrazione della codebase esistente a UWP, rendendo in tal modo l'applicazione disponibile in tutti i dispositivi Windows 10.This technology acts as a bridge by enabling you to gradually migrate your existing code base to UWP, thereby bringing your app to all Windows 10 devices.

Le applicazioni desktop convertite ottengono un'identità di applicazione simile a quella delle applicazioni UWP e in questo modo le API UWP diventano accessibili per abilitare funzionalità come i riquadri animati e le notifiche.Converted desktop apps gain an app identity similar to the app identity of UWP apps, which makes UWP APIs accessible to enable features such as Live Tiles and notifications. L'applicazione continua a comportarsi come in precedenza e viene eseguita come applicazione con attendibilità totale.The app continues to behave as before and runs as a full trust app. Dopo avere convertito l'applicazione, è possibile aggiungere un processo contenitore di applicazioni al processo di attendibilità totale esistente per aggiungere un'interfaccia utente adattiva.Once the app is converted, an app container process can be added to the existing full trust process to add an adaptive user interface. Quando tutte le funzionalità vengono spostate nel processo contenitore di applicazioni, il processo di attendibilità totale può essere rimosso e la nuova applicazione UWP può essere resa disponibile per tutti i dispositivi Windows 10.When all functionality is moved to the app container process, the full trust process can be removed and the new UWP app can be made available to all Windows 10 devices.

Miglioramenti apportati al debugDebugging improvements

L'API di debug non gestito è stata ottimizzata in .NET Framework 4.6.2.NET Framework 4.6.2 per l'esecuzione di un'ulteriore analisi quando viene generata un'NullReferenceException in modo che sia possibile determinare quale variabile in una singola riga di codice sorgente è null.The unmanaged debugging API has been enhanced in the .NET Framework 4.6.2.NET Framework 4.6.2 to perform additional analysis when a NullReferenceException is thrown so that it is possible to determine which variable in a single line of source code is null. A supporto di questo scenario, le API seguenti sono state aggiunte all'API di debug non gestito.To support this scenario, the following APIs have been added to the unmanaged debugging API.

Novità di .NET Framework 4.6.1What's new in the .NET Framework 4.6.1

.NET Framework 4.6.1.NET Framework 4.6.1 include nuove funzionalità nelle aree seguenti:The .NET Framework 4.6.1.NET Framework 4.6.1 includes new features in the following areas:

Per altre informazioni su .NET Framework 4.6.1.NET Framework 4.6.1, vedere gli argomenti seguenti:For more information on the .NET Framework 4.6.1.NET Framework 4.6.1, see the following topics:

Crittografia: supporto di certificati X509 contenenti ECDSACryptography: Support for X509 certificates containing ECDSA

In .NET Framework 4.6 è stato aggiunto il supporto RSACng per i certificati X509.The .NET Framework 4.6 added RSACng support for X509 certificates. .NET Framework 4.6.1.NET Framework 4.6.1 aggiunge il supporto di certificati X509 con ECDSA (Elliptic Curve Digital Signature Algorithm).The .NET Framework 4.6.1.NET Framework 4.6.1 adds support for ECDSA (Elliptic Curve Digital Signature Algorithm) X509 certificates.

Offrendo prestazioni migliori e trattandosi di un algoritmo di crittografia più sicuro rispetto a RSA, ECDSA rappresenta un'ottima scelta per ambienti in cui la scalabilità e le prestazioni TLS (Transport Layer Security) sono fattori importanti.ECDSA offers better performance and is a more secure cryptography algorithm than RSA, providing an excellent choice where Transport Layer Security (TLS) performance and scalability is a concern. L'implementazione di .NET Framework esegue il wrapping delle chiamate nelle funzionalità di Windows esistenti.The .NET Framework implementation wraps calls into existing Windows functionality.

L'esempio di codice seguente illustra quanto sia semplice generare una firma per un flusso di byte usando il nuovo supporto dei certificati X509 ECDSA incluso in .NET Framework 4.6.1.NET Framework 4.6.1.The following example code shows how easy it is to generate a signature for a byte stream by using the new support for ECDSA X509 certificates included in the .NET Framework 4.6.1.NET Framework 4.6.1.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class Net461Code
{
    public static byte[] SignECDsaSha512(byte[] data, X509Certificate2 cert)
    {
        using (ECDsa privateKey = cert.GetECDsaPrivateKey())
        {
            return privateKey.SignData(data, HashAlgorithmName.SHA512);
        }
    }

    public static byte[] SignECDsaSha512(byte[] data, ECDsa privateKey)
    {
        return privateKey.SignData(data, HashAlgorithmName.SHA512);
    }
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates

Public Class Net461Code
    Public Shared Function SignECDsaSha512(data As Byte(), cert As X509Certificate2) As Byte()
        Using privateKey As ECDsa = cert.GetECDsaPrivateKey()
            Return privateKey.SignData(data, HashAlgorithmName.SHA512)
        End Using
    End Function

    Public Shared Function SignECDsaSha512(data As Byte, privateKey As ECDsa) As Byte()
        Return privateKey.SignData(data, HashAlgorithmName.SHA512)
    End Function
End Class

Emerge una netta differenza rispetto al codice necessario per generare una firma in .NET Framework 4.6.This offers a marked contrast to the code needed to generate a signature in the .NET Framework 4.6.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class Net46Code
{
    public static byte[] SignECDsaSha512(byte[] data, X509Certificate2 cert)
    {
        // This would require using cert.Handle and a series of p/invokes to get at the
        // underlying key, then passing that to a CngKey object, and passing that to
        // new ECDsa(CngKey).  It's a lot of work.
        throw new Exception("That's a lot of work...");
    }

    public static byte[] SignECDsaSha512(byte[] data, ECDsa privateKey)
    {
        // This way works, but SignData probably better matches what you want.
        using (SHA512 hasher = SHA512.Create())
        {
            byte[] signature1 = privateKey.SignHash(hasher.ComputeHash(data));
        }

        // This might not be the ECDsa you got!
        ECDsaCng ecDsaCng = (ECDsaCng)privateKey;
        ecDsaCng.HashAlgorithm = CngAlgorithm.Sha512;
        return ecDsaCng.SignData(data);
    }
}   
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates

Public Class Net46Code
    Public Shared Function SignECDsaSha512(data As Byte(), cert As X509Certificate2) As Byte()
        ' This would require using cert.Handle and a series of p/invokes to get at the
        ' underlying key, then passing that to a CngKey object, and passing that to
        ' new ECDsa(CngKey).  It's a lot of work.
        Throw New Exception("That's a lot of work...")
    End Function

    Public Shared Function SignECDsaSha512(data As Byte(), privateKey As ECDsa) As Byte()
        ' This way works, but SignData probably better matches what you want.
        Using hasher As SHA512 = SHA512.Create()
            Dim signature1 As Byte() = privateKey.SignHash(hasher.ComputeHash(data))
        End Using

        ' This might not be the ECDsa you got!
        Dim ecDsaCng As ECDsaCng = CType(privateKey, ECDsaCng)
        ecDsaCng.HashAlgorithm = CngAlgorithm.Sha512
        Return ecDsaCng.SignData(data)
    End Function
End Class   

ADO.NETADO.NET

In ADO.NET è stato aggiunto quanto segue:The following have been added to ADO.NET:

Supporto di Always Encrypted per le chiavi protette da hardware ADO.NET supporta ora l'archiviazione delle chiavi master di colonna di Always Encrypted in modo nativo in moduli di protezione hardware (HSM).Always Encrypted support for hardware protected keys ADO.NET now supports storing Always Encrypted column master keys natively in Hardware Security Modules (HSMs). Grazie a questo supporto, i clienti possono usare le chiavi asimmetriche archiviate nei moduli di protezione hardware senza dover scrivere provider dell'archivio chiavi master di colonna personalizzati e senza doverli registrare nelle applicazioni.With this support, customers can leverage asymmetric keys stored in HSMs without having to write custom column master key store providers and registering them in applications.

I clienti devono installare il provider CSP fornito dal fornitore dei moduli di protezione hardware o i provider dell'archivio chiavi CNG nei server applicazioni o nei computer client per accedere ai dati con Crittografia sempre attiva protetti con le chiavi master di colonna archiviate in un modulo di protezione hardware.Customers need to install the HSM vendor-provided CSP provider or CNG key store providers on the app servers or client computers in order to access Always Encrypted data protected with column master keys stored in a HSM.

Miglioramento del comportamento di connessione MultiSubnetFailover per AlwaysOn. SqlClient ora fornisce automaticamente una connessione più veloce a un gruppo di disponibilità AlwaysOn.Improve MultiSubnetFailover connection behavior for AlwaysOn SqlClient now automatically provides faster connection to an AlwaysOn Availability Group (AG). Rileva in modo trasparente se l'applicazione si connette a un gruppo di disponibilità AlwaysOn su una subnet diversa e individua rapidamente il server attivo corrente e gli fornisce una connessione.It transparently detects whether your application is connecting to an AlwaysOn availability group (AG) on a different subnet and quickly discovers the current active server and provides a connection to the server. Prima di questa versione, un'applicazione doveva impostare la stringa di connessione in modo da includere "MultisubnetFailover=true" per indicare che era connessa a un gruppo di disponibilità AlwaysOn.Prior to this release, an application had to set the connection string to include "MultisubnetFailover=true" to indicate that it was connecting to an AlwaysOn Availability Group. Senza impostare la parola chiave di connessione su true, potrebbe verificarsi un timeout durante la connessione di un'applicazione a un gruppo di disponibilità AlwaysOn.Without setting the connection keyword to true, an application might experience a timeout while connecting to an AlwaysOn Availability Group. In questa versione non è più necessario che un'applicazione imposti MultiSubnetFailover su true.With this release, an application does not need to set MultiSubnetFailover to true anymore. Per altre informazioni sul supporto SqlClient per gruppi di disponibilità Always On, vedere Supporto SqlClient per disponibilità elevata, ripristino di emergenza.For more information about SqlClient support for Always On Availability Groups, see SqlClient Support for High Availability, Disaster Recovery.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

Windows Presentation Foundation include molti miglioramenti e cambiamenti.Windows Presentation Foundation includes a number of improvements and changes.

Migliori prestazioni Il ritardo nell'esecuzione di eventi tocco è stato risolto in .NET Framework 4.6.1.NET Framework 4.6.1.Improved performance The delay in firing touch events has been fixed in the .NET Framework 4.6.1.NET Framework 4.6.1. Inoltre, l'inserimento di un controllo RichTextBox non blocca più il thread di rendering durante l'input veloce.In addition, typing in a RichTextBox control no longer ties up the render thread during fast input.

Controllo ortografia più efficiente Il correttore ortografico di WPF è stato aggiornato a Windows 8.1 e versioni successive per usufruire del supporto del sistema operativo per il controllo ortografia di lingue aggiuntive.Spell checking improvements The spell checker in WPF has been updated on Windows 8.1 and later versions to leverage operating system support for spell-checking additional languages. La funzionalità non è stata modificata nelle versioni di Windows precedenti a Windows 8.1.There is no change in functionality on Windows versions prior to Windows 8.1.

Come nelle versioni precedenti di .NET Framework, la lingua per un controllo TextBox o un blocco RichTextBox viene rilevata cercando le informazioni nell'ordine seguente:As in previous versions of the .NET Framework, the language for a TextBox control ora RichTextBox block is detected by looking for information in the following order:

  • xml:lang, se presente.xml:lang, if it is present.

  • Lingua di input corrente.Current input language.

  • Impostazioni cultura del thread corrente.Current thread culture.

Per altre informazioni sul supporto delle lingue in WPF, vedere il post di blog di WPF sulle funzionalità di .NET Framework 4.6.1.For additional information on language support in WPF, see the WPF blog post on .NET Framework 4.6.1 features.

Supporto aggiuntivo per i dizionari personalizzati per utente In .NET Framework 4.6.1.NET Framework 4.6.1, WPF riconosce i dizionari personalizzati registrati a livello globale.Additional support for per-user custom dictionaries In .NET Framework 4.6.1.NET Framework 4.6.1, WPF recognizes custom dictionaries that are registered globally. Questa funzionalità si aggiunge alla possibilità di registrarli a livello di controllo.This capability is available in addition to the ability to register them per-control.

Nelle versioni precedenti di WPF, i dizionari personalizzati non riconoscono le parole escluse e gli elenchi di correzione automatica.In previous versions of WPF, custom dictionaries did not recognize Excluded Words and AutoCorrect lists. Sono supportati in Windows 8.1 e Windows 10 mediante l'uso di file che possono essere inseriti nella directory %AppData%\Microsoft\Spelling\<language tag>.They are supported on Windows 8.1 and Windows 10 through the use of files that can be placed under the %AppData%\Microsoft\Spelling\<language tag> directory. A questi file si applicano le regole seguenti:The following rules apply to these files:

  • I file devono avere estensione dic (per le parole aggiunte), exc (per le parole escluse) o acl (per la correzione automatica).The files should have extensions of .dic (for added words), .exc (for excluded words), or .acl (for AutoCorrect).

  • I file devono essere in testo normale UTF-16 LE che inizia con l'indicatore dell'ordine dei byte (BOM, Byte Order Mark).The files should be UTF-16 LE plaintext that starts with the Byte Order Mark (BOM).

  • Ogni riga deve essere costituita da una parola, negli elenchi di parole aggiunte ed escluse, o da una coppia della correzione automatica con le parole separate da una barra verticale ("|"), nell'elenco di parole della correzione automatica.Each line should consist of a word (in the added and excluded word lists), or an autocorrect pair with the words separated by a vertical bar ("|") (in the AutoCorrect word list).

  • Questi file sono considerati di sola lettura e non vengono modificati dal sistema.These files are considered read-only and are not modified by the system.

Nota

Questi nuovi formati di file non sono supportati direttamente dalle API di controllo ortografico WPF e i dizionari personalizzati forniti a WPF nelle applicazioni devono continuare a usare i file con estensione lex.These new file-formats are not directly supported by the WPF spell checking API’s, and the custom dictionaries supplied to WPF in applications should continue to use .lex files.

Esempi In MSDN sono disponibili diversi esempi di WPF.Samples There are a number of WPF Samples on MSDN. Più di 200 degli esempi più comuni (in base all'utilizzo) verranno spostati in un archivio GitHub open source.More than 200 of the most popular samples (based on their usage) will be moved into an Open Source GitHub repository. Per aiutare Microsoft a migliorare gli esempi, inviare una richiesta di pull o segnalare un problema di GitHub.Help us improve our samples by sending us a pull-request or opening a GitHub issue.

Estensioni DirectX. WPF include un pacchetto NuGet che offre nuove implementazioni di D3DImage che semplificano l'interazione con il contenuto DX10 e Dx11.DirectX extensions WPF includes a NuGet package that provides new implementations of D3DImage that make it easy for you to interoperate with DX10 and Dx11 content. Il codice per questo pacchetto è stato reso open source ed è disponibile su GitHub.The code for this package has been open sourced and is available on GitHub.

Windows Workflow Foundation: TransazioniWindows Workflow Foundation: Transactions

Il metodo Transaction.EnlistPromotableSinglePhase ora può usare un gestore di transazioni distribuite diverso da MSDTC per alzare di livello la transazione.The Transaction.EnlistPromotableSinglePhase method can now use a distributed transaction manager other than MSDTC to promote the transaction. A questo scopo, specificare un identificatore del promotore della transazione GUID nel nuovo overload Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid).You do this by specifying a GUID transaction promoter identifier to the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload . Se l'operazione riesce, le funzionalità della transazione sono soggette a limitazioni.If this operation is successful, there are limitations placed on the capabilities of the transaction. Quando viene integrato un promotore di transazione non MSDTC, i metodi seguenti generano un'eccezione TransactionPromotionException perché questi metodi richiedono l'innalzamento di livello a MSDTC:Once a non-MSDTC transaction promoter is enlisted, the following methods throw a TransactionPromotionException because these methods require promotion to MSDTC:

Quando viene integrato un promotore di transazione non MSDTC, occorre usarlo per le future integrazioni durevoli usando i protocolli che definisce.Once a non-MSDTC transaction promoter is enlisted, it must be used for future durable enlistments by using protocols that it defines. L'oggetto Guid del promotore di transazione può essere ottenuto mediante la proprietà PromoterType.The Guid of the transaction promoter can be obtained by using the PromoterType property. Quando la transazione viene alzata di livello, il promotore di transazione fornisce una matrice Byte che rappresenta il token alzato di livello.When the transaction promotes, the transaction promoter provides a Byte array that represents the promoted token. Un'applicazione può ottenere il token alzato di livello per una transazione non MSDTC alzata di livello con il metodo GetPromotedToken.An application can obtain the promoted token for a non-MSDTC promoted transaction with the GetPromotedToken method.

Gli utenti del nuovo overload Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) devono seguire una specifica sequenza di chiamate affinché l'operazione di promozione venga completata correttamente.Users of the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload must follow a specific call sequence in order for the promotion operation to complete successfully. Queste regole sono descritte nella documentazione relativa al metodo.These rules are documented in the method's documentation.

ProfilaturaProfiling

L'API di profilatura non gestita è stata migliorata nel modo seguente:The unmanaged profiling API has been enhanced follows:

Migliore supporto per l'accesso ai file PDB nell'interfaccia ICorProfilerInfo7 In ASP.Net 5, sta diventando prassi comune compilare gli assembly in memoria tramite Roslyn.Better support for accessing PDBs in the ICorProfilerInfo7 interface In ASP.Net 5, it is becoming much more common for assemblies to be compiled in-memory by Roslyn. Per gli sviluppatori che creano strumenti di profilatura, ciò significa che i PDB che in passato erano serializzati sul disco potrebbero non essere più presenti.For developers making profiling tools, this means that PDBs that historically were serialized on disk may no longer be present. Gli strumenti profiler spesso usano PDB per rimappare il codice alle righe di origine per attività come il code coverage o l'analisi delle prestazioni riga per riga.Profiler tools often use PDBs to map code back to source lines for tasks such as code coverage or line-by-line performance analysis. L'interfaccia ICorProfilerInfo7 include ora due nuovi metodi, ICorProfilerInfo7::GetInMemorySymbolsLength e ICorProfilerInfo7::ReadInMemorySymbols, per fornire a questi strumenti profiler l'accesso ai dati dei PDB in memoria. Usando le nuove API, un profiler può ottenere il contenuto di un PDB in memoria come matrice di byte e quindi elaborarlo o serializzarlo su disco.The ICorProfilerInfo7 interface now includes two new methods, ICorProfilerInfo7::GetInMemorySymbolsLength and ICorProfilerInfo7::ReadInMemorySymbols, to provide these profiler tools with access to the in-memory PDB data, By using the new APIs, a profiler can obtain the contents of an in-memory PDB as a byte array and then process it or serialize it to disk.

Migliore strumentazione con l'interfaccia ICorProfiler I profiler che usano la funzionalità ReJit dell'API ICorProfiler per la strumentazione dinamica possono ora modificare alcuni metadati.Better instrumentation with the ICorProfiler interface Profilers that are using the ICorProfiler API’s ReJit functionality for dynamic instrumentation can now modify some metadata. In precedenza quegli strumenti potevano instrumentare IL in qualsiasi momento, ma i metadati potevano essere modificati solo in fase di caricamento del modulo.Previously such tools could instrument IL at any time, but metadata could only be modified at module load time. Poiché IL fa riferimento ai metadati, questo limitava i tipi di strumentazione possibile.Because IL refers to metadata, this limited the kinds of instrumentation that could be done. Alcuni di questi limiti sono stati innalzati aggiungendo il metodo ICorProfilerInfo7::ApplyMetaData per supportare un subset di modifiche ai metadati dopo il caricamento del modulo, in particolare aggiungendo nuovi record AssemblyRef, TypeRef, TypeSpec, MemberRef, MemberSpec e UserString.We have lifted some of those limits by adding the ICorProfilerInfo7::ApplyMetaData method to support a subset of metadata edits after the module loads, in particular by adding new AssemblyRef, TypeRef, TypeSpec, MemberRef, MemberSpec, and UserString records. Questa modifica rende possibile una gamma più ampia di strumentazioni immediate.This change makes a much broader range of on-the-fly instrumentation possible.

PDB del generatore di immagini native (NGEN)Native Image Generator (NGEN) PDBs

La traccia eventi tra computer consente ai clienti di profilare un programma sul Computer A e osservare i dati di profilatura con mapping della riga di origine sul Computer B. Nelle versioni precedenti di .NET Framework, l'utente copiava tutti i moduli e le immagini native dalla macchina profilata alla macchina di analisi contenente il PDB IL per creare il mapping sorgente-nativo.Cross-machine event tracing allows customers to profile a program on Machine A and look at the profiling data with source line mapping on Machine B. Using previous versions of the .NET Framework, the user would copy all the modules and native images from the profiled machine to the analysis machine that contains the IL PDB to create the source-to-native mapping. Anche se questo processo può funzionare bene quando i file sono relativamente piccoli, ad esempio per le applicazioni telefoniche, i file possono avere dimensioni molto grandi sui sistemi desktop e la copia può richiedere molto tempo.While this process may work well when the files are relatively small, such as for phone applications, the files can be very large on desktop systems and require significant time to copy.

Con i PDB Ngen, NGen può creare un PDB che contiene il mapping da IL a nativo senza una dipendenza dal PDB IL.With Ngen PDBs, NGen can create a PDB that contains the IL-to-native mapping without a dependency on the IL PDB. In questo scenario di traccia eventi in più computer, è sufficiente copiare il PDB di immagine nativa generato dal Computer A nel Computer B e usare le API di accesso all'interfaccia di debug per leggere il mapping da codice sorgente a codice IL del PDB IL e il mapping da codice IL a codice nativo del PDB di immagine nativa.In our cross-machine event tracing scenario, all that is needed is to copy the native image PDB that is generated by Machine A to Machine B and to use Debug Interface Access APIs to read the IL PDB's source-to-IL mapping and the native image PDB's IL-to-native mapping. La combinazione di entrambi i mapping fornisce un mapping da codice sorgente a codice nativo.Combining both mappings provides a source-to-native mapping. Poiché il PDB di immagine nativa è molto più piccolo rispetto a tutti i moduli e alle immagini native, il processo di copia dal Computer A al Computer B è molto più veloce.Since the native image PDB is much smaller than all the modules and native images, the process of copying from Machine A to Machine B is much faster.

Novità di .NET 2015What's new in .NET 2015

.NET 2015 introduce .NET Framework 4.6.NET Framework 4.6 e .NET Core..NET 2015 introduces the .NET Framework 4.6.NET Framework 4.6 and .NET Core. Alcune nuove funzionalità sono valide per entrambi, mentre altre sono specifiche di .NET Framework 4.6.NET Framework 4.6 o .NET Core.NET Core.Some new features apply to both, and other features are specific to .NET Framework 4.6.NET Framework 4.6 or .NET Core.NET Core.

  • ASP.NET 5ASP.NET 5

    .NET 2015 include ASP.NET 5, un'implementazione di .NET snella per lo sviluppo di app moderne basate su cloud..NET 2015 includes ASP.NET 5, which is a lean .NET implementation for building modern cloud-based apps. ASP.NET 5 è modulare, quindi consente di includere solo le funzionalità necessarie nell'applicazione.ASP.NET 5 is modular so you can include only those features that are needed in your application. Può essere ospitata su IIS o in modo indipendente in un processo personalizzato ed è possibile eseguire app con diverse versioni di .NET Framework nello stesso server.It can be hosted on IIS or self-hosted in a custom process, and you can run apps with different versions of the .NET Framework on the same server. Include un nuovo sistema di configurazione dell'ambiente progettato per la distribuzione cloud.It includes a new environment configuration system that is designed for cloud deployment.

    MVC, API Web e pagine Web sono riunite in un unico framework denominato MVC 6.MVC, Web API, and Web Pages are unified into a single framework called MVC 6. Le app ASP.NET 5 vengono compilate mediante i nuovi strumenti in Visual Studio 2015.You build ASP.NET 5 apps through the new tools in Visual Studio 2015. Le applicazioni esistenti funzioneranno nel nuovo .NET Framework ma per compilare un'app che usa MVC 6 o SignalR 3 è necessario usare il sistema di progetto in Visual Studio 2015.Your existing applications will work on the new .NET Framework; however to build an app that uses MVC 6 or SignalR 3, you must use the project system in Visual Studio 2015.

    Per informazioni, vedere ASP.NET 5.For information, see ASP.NET 5.

  • Aggiornamenti di ASP.NETASP.NET Updates

    • API basata su attività per lo scaricamento asincrono delle risposteTask-based API for Asynchronous Response Flushing

      ASP.NET ora fornisce HttpResponse.FlushAsync, una semplice API basata sulle attività che consente di scaricare le risposte asincrone con il supporto async/await del linguaggio usato.ASP.NET now provides a simple task-based API for asynchronous response flushing, HttpResponse.FlushAsync, that allows responses to be flushed asynchronously by using your language's async/await support.

    • Model binding supports task-returning methods

      In .NET Framework 4.5.NET Framework 4.5 ASP.NET ha aggiunto la funzionalità di associazione di modelli che ha reso possibile un approccio estendibile, focalizzato sul codice, per le operazioni di dati basate su CRUD nelle pagine Web Form e nei controlli utente.In the .NET Framework 4.5.NET Framework 4.5, ASP.NET added the Model Binding feature that enabled an extensible, code-focused approach to CRUD-based data operations in Web Forms pages and user controls. Il sistema di associazione di modelli ora supporta metodi di associazione di modelli con restituzione di Task.The Model Binding system now supports Task-returning model binding methods. Questa funzionalità consente agli sviluppatori di Web Form di ottenere i vantaggi di scalabilità di async con la facilità del sistema di associazione dati quando usano versioni più recenti di ORM, tra cui Entity Framework.This feature allows Web Forms developers to get the scalability benefits of async with the ease of the data-binding system when using newer versions of ORMs, including the Entity Framework.

      L'associazione di modelli async è controllata dall'impostazione di configurazione aspnet:EnableAsyncModelBinding.Async model binding is controlled by the aspnet:EnableAsyncModelBinding configuration setting.

      <appSettings>
         <add key=" aspnet:EnableAsyncModelBinding" value="true|false" />
      </appSettings>
      

      Per le app destinate a .NET Framework 4.6.NET Framework 4.6, l'impostazione predefinita è true.On apps the target the .NET Framework 4.6.NET Framework 4.6, it defaults to true. Per le app in esecuzione su .NET Framework 4.6.NET Framework 4.6 e che sono destinate a una versione precedente di .NET Framework, è false per impostazione predefinita.On apps running on the .NET Framework 4.6.NET Framework 4.6 that target an earlier version of the .NET Framework, it is false by default. Può essere abilitata impostando l'impostazione di configurazione su true.It can be enabled by setting the configuration setting to true.

    • Supporto HTTP/2 (Windows 10)HTTP/2 Support (Windows 10)

      HTTP/2 è una nuova versione del protocollo HTTP che permette un utilizzo molto migliore della connessione, con meno round trip tra client e server, offrendo una latenza minore per il caricamento delle pagine Web per gli utenti.HTTP/2 is a new version of the HTTP protocol that provides much better connection utilization (fewer round-trips between client and server), resulting in lower latency web page loading for users. Le pagine Web (a differenza dei servizi) traggono maggiori vantaggi dal protocollo HTTP/2, poiché ottimizza più elementi richiesti come parte di un'esperienza unica.Web pages (as opposed to services) benefit the most from HTTP/2, since the protocol optimizes for multiple artifacts being requested as part of a single experience. Il supporto HTTP/2 è stato aggiunto ad ASP.NET in .NET Framework 4.6.HTTP/2 support has been added to ASP.NET in the .NET Framework 4.6. Poiché la funzionalità di rete esiste a più livelli, si sono rese necessarie nuove funzionalità in Windows, IIS e ASP.NET per abilitare HTTP/2.Because networking functionality exists at multiple layers, new features were required in Windows, in IIS, and in ASP.NET to enable HTTP/2. È necessario eseguire Windows 10 per usare HTTP/2 con ASP.NET.You must be running on Windows 10 to use HTTP/2 with ASP.NET.

      HTTP/2 è anche supportato e attivato per impostazione predefinita per le app di Windows 10 Universal Windows Platform (UWP) che usano l'API System.Net.Http.HttpClient.HTTP/2 is also supported and on by default for Windows 10 Universal Windows Platform (UWP) apps that use the System.Net.Http.HttpClient API.

      Per consentire l'uso della funzionalità PUSH_PROMISE nelle applicazioni ASP.NET, è stato aggiunto un nuovo metodo con due overload, PushPromise(String) e PushPromise(String, String, NameValueCollection), alla classe HttpResponse.In order to provide a way to use the PUSH_PROMISE feature in ASP.NET applications, a new method with two overloads, PushPromise(String) and PushPromise(String, String, NameValueCollection), has been added to the HttpResponse class.

      Nota

      Mentre ASP.NET 5 supporta HTTP/2, il supporto della funzionalità PUSH PROMISE non è ancora stato aggiunto.While ASP.NET 5 supports HTTP/2, support for the PUSH PROMISE feature has not yet been added.

      Il browser e il server Web (IIS su Windows) eseguono tutte le operazioni.The browser and the web server (IIS on Windows) do all the work. Gli utenti non dovranno eseguire alcuna operazione impegnativa.You don't have to do any heavy-lifting for your users.

      Poiché la maggior parte dei principali browser supporta HTTP/2, è probabile che gli utenti trarranno vantaggio dal supporto HTTP/2, se supportato dal server in uso.Most of the major browsers support HTTP/2, so it's likely that your users will benefit from HTTP/2 support if your server supports it.

    • Supporto per Token Binding ProtocolSupport for the Token Binding Protocol

      Microsoft e Google stanno collaborando a un nuovo approccio all'autenticazione, chiamato Token Binding Protocol.Microsoft and Google have been collaborating on a new approach to authentication, called the Token Binding Protocol. Il presupposto è che i token di autenticazione (nella cache del browser) possono essere rubati e usati da utenti malintenzionati per accedere a risorse altrimenti sicure, ad esempio un conto bancario, senza richiedere la password o altre informazioni riservate.The premise is that authentication tokens (in your browser cache) can be stolen and used by criminals to access otherwise secure resources (e.g. your bank account) without requiring your password or any other privileged knowledge. L'obiettivo del nuovo protocollo è attenuare questo problema.The new protocol aims to mitigate this problem.

      Il Token Binding Protocol verrà implementato in Windows 10 come funzionalità del browser.The Token Binding Protocol will be implemented in Windows 10 as a browser feature. Le app ASP.NET parteciperanno al protocollo, in modo che sia convalidata la legittimità dei token di autenticazione.ASP.NET apps will participate in the protocol, so that authentication tokens are validated to be legitimate. Le implementazioni di client e server stabiliscono la protezione end-to-end specificata dal protocollo.The client and the server implementations establish the end-to-end protection specified by the protocol.

    • Algoritmi hash casuali per le stringheRandomized string hash algorithms

      In .NET Framework 4.5 è stato introdotto un algoritmo hash casuale per le stringhe.The .NET Framework 4.5 introduced a randomized string hash algorithm. Tuttavia, non era supportato da ASP.NET perché alcune funzionalità ASP.NET dipendevano da un codice hash stabile.However, it was not supported by ASP.NET because of some ASP.NET features depended on a stable hash code. In .NET Framework 4.6.NET Framework 4.6 gli algoritmi di hash della stringa casuale sono ora supportati.In .NET Framework 4.6.NET Framework 4.6, randomized string hash algorithms are now supported. Per abilitare questa funzionalità, usare l'impostazione di configurazione aspnet:UseRandomizedStringHashAlgorithm.To enable this feature, use the aspnet:UseRandomizedStringHashAlgorithm config setting.

      <appSettings>
         <add key="aspnet:UseRandomizedStringHashAlgorithm" value="true|false" />
      </appSettings>
      
  • ADO.NETADO.NET

    ADO .NET supporta ora la funzionalità Crittografia sempre attiva disponibile in SQL Server 2016 Community Technology Preview 2 (CTP2).ADO .NET now supports the Always Encrypted feature available in SQL Server 2016 Community Technology Preview 2 (CTP2). Con Crittografia sempre attiva, SQL Server può eseguire operazioni su dati crittografati e, soprattutto, la chiave di crittografia risiede con l'applicazione all'interno dell'ambiente attendibile del cliente e non sul server.With Always Encrypted, SQL Server can perform operations on encrypted data, and best of all the encryption key resides with the application inside the customer’s trusted environment and not on the server. Crittografia sempre attiva protegge i dati dei clienti in modo che gli amministratori di database non abbiano accesso ai dati di testo normale.Always Encrypted secures customer data so DBAs do not have access to plain text data. La crittografia e la decrittografia dei dati avvengono in modo trasparente a livello di driver, riducendo al minimo le modifiche che è necessario apportare alle applicazioni esistenti.Encryption and decryption of data happens transparently at the driver level, minimizing changes that have to be made to existing applications. Per informazioni dettagliate, vedere Crittografia sempre attiva (motore di database) e Crittografia sempre attiva (sviluppo client).For details, see Always Encrypted (Database Engine) and Always Encrypted (client development).

  • Compilatore JIT a 64 bit per il codice gestito64-bit JIT Compiler for managed code

    .NET Framework 4.6 presenta una nuova versione del compilatore JIT a 64 bit (il cui nome in codice iniziale era RyuJIT).The .NET Framework 4.6 features a new version of the 64-bit JIT compiler (originally code-named RyuJIT). Il nuovo compilatore a 64 bit offre miglioramenti significativi delle prestazioni rispetto al compilatore JIT a 64 bit esistente.The new 64-bit compiler provides significant performance improvements over the older 64-bit JIT compiler. Il nuovo compilatore a 64 bit è abilitato per i processi a 64 bit in esecuzione su NET Framework 4.6.The new 64-bit compiler is enabled for 64-bit processes running on top of the .NET Framework 4.6. L'app verrà eseguita in un processo a 64 bit se è compilata come 64 bit o AnyCPU e se viene eseguita su un sistema operativo a 64 bit.Your app will run in a 64-bit process if it is compiled as 64-bit or AnyCPU and is running on a 64-bit operating system. Nonostante si sia cercato di rendere il più possibile trasparente la transizione al nuovo compilatore, potrebbero verificarsi cambiamenti del comportamento.While care has been taken to make the transition to the new compiler as transparent as possible, changes in behavior are possible. Microsoft è interessata a conoscere i commenti diretti degli utenti sugli eventuali problemi riscontrati durante l'uso del nuovo compilatore JIT.We would like to hear directly about any issues encountered when using the new JIT compiler. In caso di problemi che potrebbero essere correlati al nuovo compilatore JIT a 64 bit, contattare Microsoft tramite Microsoft Connect.Please contact us through Microsoft Connect if you encounter an issue that may be related to the new 64-bit JIT compiler.

    Il nuovo compilatore JIT a 64 bit include anche funzionalità di accelerazione SIMD hardware quando è associato a tipi abilitati per SIMD nello spazio dei nomi System.Numerics, con conseguente ottimizzazione delle prestazioni.The new 64-bit JIT compiler also includes hardware SIMD acceleration features when coupled with SIMD-enabled types in the System.Numerics namespace, which can yield good performance improvements.

  • Miglioramenti apportati al caricatore di assemblyAssembly loader improvements

    Il caricatore di assembly usa la memoria in modo più efficiente scaricando gli assembly IL dopo il caricamento di un'immagine NGEN corrispondente.The assembly loader now uses memory more efficiently by unloading IL assemblies after a corresponding NGEN image is loaded. Questa modifica riduce la memoria virtuale, aspetto particolarmente utile per app a 32 bit di grandi dimensioni (ad esempio Visual Studio) e consente anche di risparmiare memoria fisica.This change decreases virtual memory, which is particularly beneficial for large 32-bit apps (such as Visual Studio), and also saves physical memory.

  • Modifiche apportate alla libreria di classi baseBase class library changes

    Sono state aggiunte molte nuove API a .NET Framework 4.6.NET Framework 4.6 per abilitare gli scenari principali.Many new APIs have been added around to .NET Framework 4.6.NET Framework 4.6 to enable key scenarios. Sono incluse le modifiche e le aggiunte seguenti:These include the following changes and additions:

    • Implementazioni IReadOnlyCollection<T>IReadOnlyCollection<T> implementations

      Altre raccolte implementano IReadOnlyCollection<T>, ad esempio Queue<T> e Stack<T>.Additional collections implement IReadOnlyCollection<T> such as Queue<T> and Stack<T>.

    • CultureInfo.CurrentCulture e CultureInfo.CurrentUICultureCultureInfo.CurrentCulture and CultureInfo.CurrentUICulture

      Le proprietà CultureInfo.CurrentCulture e CultureInfo.CurrentUICulture ora sono di lettura/scrittura anziché di sola lettura.The CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture properties are now read-write rather than read-only. Se si assegna un nuovo oggetto CultureInfo a queste proprietà, cambiano anche le impostazioni cultura del thread corrente definite dalla proprietà Thread.CurrentThread.CurrentCulture e le impostazioni cultura del thread UI corrente definite dalle proprietà Thread.CurrentThread.CurrentUICulture.If you assign a new CultureInfo object to these properties, the current thread culture defined by the Thread.CurrentThread.CurrentCulture property and the current UI thread culture defined by the Thread.CurrentThread.CurrentUICulture properties also change.

    • Miglioramenti apportati a Garbage Collection (GC)Enhancements to garbage collection (GC)

      La classe GC ora include i metodi TryStartNoGCRegion e EndNoGCRegion che consentono di disabilitare le operazioni di Garbage Collection durante l'esecuzione di un percorso critico.The GC class now includes TryStartNoGCRegion and EndNoGCRegion methods that allow you to disallow garbage collection during the execution of a critical path.

      Un nuovo overload del metodo GC.Collect(Int32, GCCollectionMode, Boolean, Boolean) consente di controllare se l'heap oggetti piccoli e l'heap oggetti grandi vengono entrambi sottoposti a sweep e compattati o solo sottoposti a sweep.A new overload of the GC.Collect(Int32, GCCollectionMode, Boolean, Boolean) method allows you to control whether both the small object heap and the large object heap are swept and compacted or swept only.

    • Tipi abilitati per SIMDSIMD-enabled types

      Lo spazio dei nomi System.Numerics ora include numerosi tipi abilitati per SIMD, ad esempio Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3 e Vector4.The System.Numerics namespace now includes a number of SIMD-enabled types, such as Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3, and Vector4.

      Il nuovo compilatore JIT a 64 bit include anche funzionalità di accelerazione SIMD hardware, quindi le prestazioni migliorano notevolmente quando si usano i tipi abilitati per SIMD con il nuovo compilatore JIT a 64 bit.Because the new 64-bit JIT compiler also includes hardware SIMD acceleration features, there are especially significant performance improvements when using the SIMD-enabled types with the new 64-bit JIT compiler.

    • Aggiornamenti della crittografiaCryptography updates

      L'API System.Security.Cryptography è in fase di aggiornamento per supportare le API di crittografia CNG di Windows.The System.Security.Cryptography API is being updated to support the Windows CNG cryptography APIs. Le versioni precedenti di .NET Framework si basavano interamente su una versione precedente delle API di crittografia Windows per l'implementazione di System.Security.Cryptography.Previous versions of the .NET Framework have relied entirely on an earlier version of the Windows Cryptography APIs as the basis for the System.Security.Cryptography implementation. Microsoft ha ricevuto alcune richieste relative all'aggiunta del supporto per l'API CNG, perché questa supporta algoritmi di crittografia moderni, che sono importanti per determinate categorie di app.We have had requests to support the CNG API, since it supports modern cryptography algorithms, which are important for certain categories of apps.

      .NET Framework 4.6 include i nuovi miglioramenti seguenti per supportare le API di crittografia di CNG di Windows:The .NET Framework 4.6 includes the following new enhancements to support the Windows CNG cryptography APIs:

      • Un set di metodi di estensione per certificati X509, System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) e System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2), che restituiscono, quando possibile, un'implementazione basata su CNG invece di un'implementazione basata su CAPI.A set of extension methods for X509 Certificates, System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) and System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2), that return a CNG-based implementation rather than a CAPI-based implementation when possible. Ad esempio, alcune smart card richiedono comunque CAPI e le API gestiscono il fallback.(Some smartcards, etc., still require CAPI, and the APIs handle the fallback).

      • La classe System.Security.Cryptography.RSACng, che fornisce un'implementazione CNG dell'algoritmo RSA.The System.Security.Cryptography.RSACng class, which provides a CNG implementation of the RSA algorithm.

      • Miglioramenti all'API RSA in modo che le azioni comuni non richiedano più il cast.Enhancements to the RSA API so that common actions no longer require casting. Ad esempio, la crittografia dei dati eseguita con un oggetto X509Certificate2 richiede codice simile al seguente nelle versioni precedenti di .NET Framework.For example, encrypting data using an X509Certificate2 object requires code like the following in previous versions of the .NET Framework.

        RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
        byte[] oaepEncrypted = rsa.Encrypt(data, true);
        byte[] pkcs1Encrypted = rsa.Encrypt(data, false);
        
        Dim rsa As RSACryptoServiceProvider = CType(cert.PrivateKey, RSACryptoServiceProvider)
        Dim oaepEncrypted() As Byte = rsa.Encrypt(data, True)
        Dim pkcs1Encrypted() As Byte = rsa.Encrypt(data, False)
        

        Il codice che usa le nuove API di crittografia in Framework .NET 4.6 può essere riscritto nel modo seguente per evitare il cast.Code that uses the new cryptography APIs in the .NET Framework 4.6 can be rewritten as follows to avoid the cast.

        RSA rsa = cert.GetRSAPrivateKey();
        if (rsa == null)
           throw new InvalidOperationException("An RSA certificate was expected");
        
        byte[] oaepEncrypted = rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA1);
        byte[] pkcs1Encrypted = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);
        
        Dim rsa As RSA = cert.GetRSAPrivateKey()
        If rsa Is Nothing Then
           Throw New InvalidOperationException("An RSA certificate was expected")
         End If
        
        Dim oaepEncrypted() As Byte = rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA1)
        Dim pkcs1Encrypted() As Byte = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1)
        
    • Supporto per la conversione di date e ore da o verso l'ora di UnixSupport for converting dates and times to or from Unix time

      Sono stati aggiunti i nuovi metodi seguenti alla struttura DateTimeOffset per supportare la conversione di valori di data e ora da o verso l'ora di Unix:The following new methods have been added to the DateTimeOffset structure to support converting date and time values to or from Unix time:

    • Opzioni di compatibilitàCompatibility switches

      La nuova classe AppContext aggiunge una nuova funzione di compatibilità che consente agli autori di librerie di fornire agli utenti un meccanismo uniforme per la rinuncia esplicita alla nuova funzionalità,The new AppContext class adds a new compatibility feature that enables library writers to provide a uniform opt-out mechanism for new functionality for their users. che stabilisce un contratto a regime di controllo libero ("loosely-coupled") tra componenti per poter comunicare una richiesta di rinuncia esplicita.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Questa funzionalità è importante in genere quando viene apportata una modifica alle funzionalità esistenti.This capability is typically important when a change is made to existing functionality. Al contrario, esiste già un consenso esplicito per la nuova funzionalità.Conversely, there is already an implicit opt-in for new functionality.

      Con AppContext, le librerie definiscono ed espongono le opzioni di compatibilità, mentre il codice che dipende dalle librerie può impostare tali opzioni in modo da influire sul comportamento della libreria.With AppContext, libraries define and expose compatibility switches, while code that depends on them can set those switches to affect the library behavior. Per impostazione predefinita, le librerie forniscono la nuova funzionalità e la modificano (cioè offrono la funzionalità precedente) solo se l'opzione è impostata.By default, libraries provide the new functionality, and they only alter it (that is, they provide the previous functionality) if the switch is set.

      Un'applicazione (o una libreria) può dichiarare il valore di un'opzione (che è sempre un valore Boolean) definito da una libreria dipendente.An application (or a library) can declare the value of a switch (which is always a Boolean value) that a dependent library defines. L'opzione è sempre implicitamente false.The switch is always implicitly false. Impostare l'opzione su true la abilita.Setting the switch to true enables it. Impostare in modo esplicito l'opzione su false fornisce il nuovo comportamento.Explicitly setting the switch to false provides the new behavior.

      AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
      

      La libreria deve controllare se un consumer è dichiarato il valore dell'opzione e si comporta in modo appropriato in base ad essa.The library must check if a consumer has declared the value of the switch and then appropriately act on it.

      if (!AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", out shouldThrow)) 
      {
         // This is the case where the switch value was not set by the application. 
         // The library can choose to get the value of shouldThrow by other means. 
         // If no overrides nor default values are specified, the value should be 'false'. 
         // A false value implies the latest behavior.
      }
      
         // The library can use the value of shouldThrow to throw exceptions or not.
         if (shouldThrow) 
         {
            // old code
         }
         else {
            // new code
         }
      }
      

      È opportuno usare un formato coerente per le opzioni, poiché si tratta di un contratto formale esposto da una libreria.It's beneficial to use a consistent format for switches, since they are a formal contract exposed by a library. Di seguito sono riportati due formati ovvi.The following are two obvious formats.

      • Opzione.spaziodeinomi.nomeopzioneSwitch.namespace.switchname

      • Opzione.libreria.nomeopzioneSwitch.library.switchname

    • Modifiche apportate al modello asincrono basato su attivitàChanges to the task-based asynchronous pattern (TAP)

      Per le app per .NET Framework 4.6.NET Framework 4.6, gli oggetti Task e Task<TResult> ereditano le impostazioni cultura e le impostazioni cultura dell'interfaccia utente del thread chiamante.For apps that target the .NET Framework 4.6.NET Framework 4.6, Task and Task<TResult> objects inherit the culture and UI culture of the calling thread. Questo non incide sul comportamento delle app per versioni precedenti di .NET Framework o non destinate a una versione specifica di .NET Framework.The behavior of apps that target previous versions of the .NET Framework, or that do not target a specific version of the .NET Framework, is unaffected. Per altre informazioni, vedere la sezione dedicata alle impostazioni cultura e alle operazioni asincrone basate su attività nell'argomento relativo alla classe CultureInfo.For more information, see the "Culture and task-based asynchronous operations" section of the CultureInfo class topic.

      La classe System.Threading.AsyncLocal<T> consente di rappresentare i dati di ambiente locali rispetto a un flusso di controllo asincrono specificato, ad esempio un metodo async.The System.Threading.AsyncLocal<T> class allows you to represent ambient data that is local to a given asynchronous control flow, such as an async method. Può essere usato per rendere persistenti i dati tra thread.It can be used to persist data across threads. È anche possibile definire un metodo di callback che riceve una notifica ogni volta che i dati di ambiente subiscono una modifica perché la proprietà AsyncLocal<T>.Value è stata modificata in modo esplicito oppure perché il thread ha rilevato una transizione di contesto.You can also define a callback method that is notified whenever the ambient data changes either because the AsyncLocal<T>.Value property was explicitly changed, or because the thread encountered a context transition.

      Tre metodi pratici, Task.CompletedTask, Task.FromCanceled e Task.FromException, sono stati aggiunti al modello asincrono basato su attività (TAP) per restituire le attività completate in un determinato stato.Three convenience methods, Task.CompletedTask, Task.FromCanceled, and Task.FromException, have been added to the task-based asynchronous pattern (TAP) to return completed tasks in a particular state.

      La classe NamedPipeClientStream ora supporta la comunicazione asincrona con il nuovo ConnectAsync.The NamedPipeClientStream class now supports asynchronous communication with its new ConnectAsync. ProcessOnStatus.method.

    • EventSource supporta ora la scrittura nel registro eventiEventSource now supports writing to the Event log

      Ora è possibile usare la classe EventSource per registrare messaggi amministrativi o operativi nel registro eventi, oltre a tutte le sessioni ETW create nel computer.You now can use the EventSource class to log administrative or operational messages to the event log, in addition to any existing ETW sessions created on the machine. In passato era necessario usare il pacchetto Microsoft.Diagnostics.Tracing.EventSource NuGet per questa funzionalità.In the past, you had to use the Microsoft.Diagnostics.Tracing.EventSource NuGet package for this functionality. Questa funzionalità è ora integrata in .NET Framework 4.6.This functionality is now built-into the .NET Framework 4.6.

      Sia il pacchetto NuGet sia .NET Framework 4.6 sono stati aggiornati con le funzionalità seguenti:Both the NuGet package and the .NET Framework 4.6 have been updated with the following features:

      • Eventi dinamiciDynamic events

        Consente eventi definiti al momento senza creare metodi di eventi.Allows events defined "on the fly" without creating event methods.

      • Payload avanzatiRich payloads

        Consente di passare classi e matrici attribuite in modo specifico nonché tipi primitivi come un payloadAllows specially attributed classes and arrays as well as primitive types to be passed as a payload

      • Rilevamento attivitàActivity tracking

        Comporta l'applicazione di tag di eventi tra gli eventi Start e Stop con un ID che rappresenta tutte le attività attualmente attive.Causes Start and Stop events to tag events between them with an ID that represents all currently active activities.

      Per supportare queste funzionalità, il metodo Write di overload è stato aggiunto alla classe EventSource.To support these features, the overloaded Write method has been added to the EventSource class.

  • Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

    • Miglioramenti apportati a HDPIHDPI improvements

      Il supporto di HDPI in WPF è stato migliorato in .NET Framework 4.6.NET Framework 4.6.HDPI support in WPF is now better in the .NET Framework 4.6.NET Framework 4.6. Sono state apportate modifiche all'arrotondamento del layout per ridurre le istanze di ritaglio nei controlli con bordi.Changes have been made to layout rounding to reduce instances of clipping in controls with borders. Per impostazione predefinita, questa funzionalità è abilitata solo se TargetFrameworkAttribute è impostato su .NET 4.6.By default, this feature is enabled only if your TargetFrameworkAttribute is set to .NET 4.6. Le applicazioni destinate alle versioni precedenti del framework, ma eseguite in .NET Framework 4.6.NET Framework 4.6, possono scegliere il nuovo comportamento aggiungendo la riga seguente alla sezione <runtime> del file app.config:Applications that target earlier versions of the framework but are running on the .NET Framework 4.6.NET Framework 4.6 can opt in to the new behavior by adding the following line to the <runtime> section of the app.config file:

      <AppContextSwitchOverrides
      value="Switch.MS.Internal.DoNotApplyLayoutRoundingToMarginsAndBorderThickness=false"
      />
      

      Le finestre WPF che si estendono su più monitor con impostazioni DPI diverse (configurazione di più DPI) sono ora visualizzate completamente senza aree nere.WPF windows straddling multiple monitors with different DPI settings (Multi-DPI setup) are now completely rendered without blacked-out regions. È possibile rifiutare esplicitamente questo comportamento disabilitandolo con l'aggiunta della riga seguente alla sezione <appSettings> del file di configurazione dell'app:You can opt out of this behavior by adding the following line to the <appSettings> section of the app.config file to disable this new behavior:

      <add key="EnableMultiMonitorDisplayClipping" value="true"/>
      

      Il supporto per il caricamento automatico del cursore appropriato in base all'impostazione DPI è stato aggiunto a System.Windows.Input.Cursor.Support for automatically loading the right cursor based on DPI setting has been added to System.Windows.Input.Cursor.

    • Miglioramento della funzionalità touchTouch is better

      I clienti hanno segnalato su Connect che il comportamento imprevedibile della funzionalità touch è stato risolto in .NET Framework 4.6.NET Framework 4.6.Customer reports on Connect that touch produces unpredictable behavior have been addressed in the .NET Framework 4.6.NET Framework 4.6. La soglia relativa al doppio tocco per le app di Windows Store e le applicazioni WPF ora è lo stesso in Windows 8.1 e versioni successive.The double tap threshold for Windows Store applications and WPF applications is now the same in Windows 8.1 and above.

    • Supporto per finestre figlio trasparentiTransparent child window support

      WPF in .NET Framework 4.6.NET Framework 4.6 supporta le finestre figlio trasparenti in Windows 8.1 e versioni successive.WPF in the .NET Framework 4.6.NET Framework 4.6 supports transparent child windows in Windows 8.1 and above. Ciò consente di creare finestre figlio non rettangolari e trasparenti nelle finestre di primo livello.This allows you to create non-rectangular and transparent child windows in your top-level windows. È possibile abilitare questa funzionalità impostando la proprietà HwndSourceParameters.UsesPerPixelTransparency su true.You can enable this feature by setting the HwndSourceParameters.UsesPerPixelTransparency property to true.

  • Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

    • Supporto di SSLSSL support

      WCF ora supporta la versione SSL TLS 1.1 e TLS 1.2, oltre a SSL 3.0 e TLS 1.0, quando si usa NetTcp con la sicurezza del trasporto e l'autenticazione client.WCF now supports SSL version TLS 1.1 and TLS 1.2, in addition to SSL 3.0 and TLS 1.0, when using NetTcp with transport security and client authentication. Ora è possibile selezionare il protocollo da usare o disabilitare i protocolli precedenti, che sono meno sicuri.It is now possible to select which protocol to use, or to disable old lesser secure protocols. A tale scopo, è possibile impostare la proprietà SslProtocols o aggiungere il codice seguente a un file di configurazione.This can be done either by setting the SslProtocols property or by adding the following to a configuration file.

      <netTcpBinding>
         <binding>
            <security mode= "None|Transport|Message|TransportWithMessageCredential" >
               <transport clientCredentialType="None|Windows|Certificate"
                          protectionLevel="None|Sign|EncryptAndSign"
                          sslProtocols="Ssl3|Tls1|Tls11|Tls12">
                  </transport>
            </security>
         </binding>
      </netTcpBinding>
      
    • Invio di messaggi tramite connessioni HTTP diverseSending messages using different HTTP connections

      WCF ora consente agli utenti di garantire l'invio di determinati messaggi usando diverse connessioni HTTP sottostanti.WCF now allows users to ensure certain messages are sent using different underlying HTTP connections. Questo risultato può essere raggiunto in due modi:There are two ways to do this:

      • Uso di un prefisso del nome del gruppo di connessioneUsing a connection group name prefix

        Gli utenti possono specificare una stringa che WCF userà come prefisso per il nome del gruppo di connessione.Users can specify a string that WCF will use as a prefix for the connection group name. Due messaggi con prefissi diversi vengono inviati usando diverse connessioni HTTP sottostanti.Two messages with different prefixes are sent using different underlying HTTP connections. Per impostare il prefisso, aggiungere una coppia chiave/valore alla proprietà Message.Properties del messaggio.You set the prefix by adding a key/value pair to the message's Message.Properties property. La chiave è "HttpTransportConnectionGroupNamePrefix", mentre il valore è il prefisso desiderato.The key is "HttpTransportConnectionGroupNamePrefix"; the value is the desired prefix.

      • Uso di channel factory diverseUsing different channel factories

        Gli utenti possono anche attivare una funzionalità che assicura che i messaggi inviati con i canali creati da channel factory diverse useranno connessioni HTTP sottostanti diverse.Users can also enable a feature that ensures that messages sent using channels created by different channel factories will use different underlying HTTP connections. Per abilitare questa funzionalità, gli utenti devono impostare appSetting su true:To enable this feature, users must set the following appSetting to true:

        <appSettings>
           <add key="wcf:httpTransportBinding:useUniqueConnectionPoolPerFactory" value="true" />
        </appSettings>
        
  • Windows Workflow Foundation (WWF)Windows Workflow Foundation (WWF)

    Ora è possibile specificare il numero di secondi che un servizio di flusso di lavoro attenderà per una richiesta di operazione non ordinata quando esiste un segnalibro "non protocollo" in attesa prima del timeout della richiesta.You can now specify the number of seconds a workflow service will hold on to an out-of-order operation request when there is an outstanding "non-protocol" bookmark before timing out the request. Un segnalibro "non protocollo" è un segnalibro che non è correlato alle attività di ricezione in attesa.A "non-protocol" bookmark is a bookmark that is not related to outstanding Receive activities. Alcune attività creano segnalibri non protocollo all'interno della propria implementazione, quindi potrebbe non essere evidente che un segnalibro non protocollo esista.Some activities create non-protocol bookmarks within their implementation, so it may not be obvious that a non-protocol bookmark exists. Sono incluse le attività relative allo stato e alla selezione.These include State and Pick. Pertanto, se si ha un servizio del flusso di lavoro implementato con una macchina a stati o contenente un'attività di selezione, probabilmente si avranno segnalibri non protocollo.So if you have a workflow service implemented with a state machine or containing a Pick activity, you will most likely have non-protocol bookmarks. Specificare l'intervallo aggiungendo una riga simile alla seguente alla sezione appSettings del file di configurazione dell'app:You specify the interval by adding a line like the following to the appSettings section of your app.config file:

    <add key="microsoft:WorkflowServices:FilterResumeTimeoutInSeconds" value="60"/>
    

    Il valore predefinito è 60 secondi.The default value is 60 seconds. Se value è impostato su 0, le richieste non ordinate vengono immediatamente rifiutate con un messaggio di errore simile al seguente:If value is set to 0, out-of-order requests are immediately rejected with a fault with text that looks like this:

    Operation 'Request3|{http://tempuri.org/}IService' on service instance with identifier '2b0667b6-09c8-4093-9d02-f6c67d534292' cannot be performed at this time. Please ensure that the operations are performed in the correct order and that the binding in use provides ordered delivery guarantees. 
    

    Si tratta dello stesso messaggio che viene visualizzato se si riceve un messaggio di operazione non ordinato e non sono presenti segnalibri non protocollo.This is the same message that you receive if an out-of-order operation message is received and there are no non-protocol bookmarks.

    Se il valore dell'elemento FilterResumeTimeoutInSeconds è diverso da zero, sono presenti segnalibri non protocollo, l'intervallo di timeout scade e l'operazione ha esito negativo con un messaggio di timeout.If the value of the FilterResumeTimeoutInSeconds element is non-zero, there are non-protocol bookmarks, and the timeout interval expires, the operation fails with a timeout message.

  • TransazioniTransactions

    Ora è possibile includere l'identificatore di transazione distribuita per la transazione che ha generato un'eccezione derivata da TransactionException.You can now include the distributed transaction identifier for the transaction that has caused an exception derived from TransactionException to be thrown. A questo scopo, aggiungere la chiave seguente alla sezione appSettings del file di configurazione dell'app:You do this by adding the following key to the appSettings section of your app.config file:

    <add key="Transactions:IncludeDistributedTransactionIdInExceptionMessage" value="true"/> 
    

    Il valore predefinito è false.The default value is false.

  • ReteNetworking

    • Riutilizzo di socketSocket reuse

      Windows 10 include un nuovo algoritmo di rete ad alta scalabilità che consente di migliorare l'uso delle risorse del computer riutilizzando porte locali per le connessioni TCP in uscita.Windows 10 includes a new high-scalability networking algorithm that makes better use of machine resources by reusing local ports for outbound TCP connections. .NET Framework 4.6 supporta il nuovo algoritmo, consentendo alle app .NET di sfruttare il nuovo comportamento.The .NET Framework 4.6 supports the new algorithm, enabling .NET apps to take advantage of the new behavior. Nelle versioni precedenti di Windows era presente un limite di connessioni simultanee artificiali (in genere 16.384, la dimensione predefinita dell'intervallo di porte dinamiche), che poteva limitare la scalabilità di un servizio causando l'esaurimento delle porte quando sono sotto carico.In previous versions of Windows, there was an artificial concurrent connection limit (typically 16,384, the default size of the dynamic port range), which could limit the scalability of a service by causing port exhaustion when under load.

      In .NET Framework 4.6.NET Framework 4.6 sono state aggiunte due nuove API per consentire il riutilizzo delle porte, che rimuove in modo efficace il limite di 64.000 sulle connessioni simultanee:In the .NET Framework 4.6.NET Framework 4.6, two new APIs have been added to enable port reuse, which effectively removes the 64K limit on concurrent connections:

      Per impostazione predefinita, la proprietà ServicePointManager.ReusePort è false, a meno che il valore HWRPortReuseOnSocketBind della chiave del registro di sistema HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 sia impostato su 0x1.By default, the ServicePointManager.ReusePort property is false unless the HWRPortReuseOnSocketBind value of the HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 registry key is set to 0x1. Per abilitare il riutilizzo delle porte locali su connessioni HTTP, impostare la proprietà ServicePointManager.ReusePort su true.To enable local port reuse on HTTP connections, set the ServicePointManager.ReusePort property to true. In questo modo tutte le connessioni socket TCP in uscita da HttpClient e HttpWebRequest usano la nuova opzione di socket di Windows 10, SO_REUSE_UNICASTPORT, che consente il riutilizzo delle porte locali.This causes all outgoing TCP socket connections from HttpClient and HttpWebRequest to use a new Windows 10 socket option, SO_REUSE_UNICASTPORT, that enables local port reuse.

      Gli sviluppatori che scrivono un'applicazione solo socket possono specificare l'opzione System.Net.Sockets.SocketOptionName quando si chiama un metodo come Socket.SetSocketOption in modo che i socket in uscita riutilizzino le porte locali durante l'associazione.Developers writing a sockets-only application can specify the System.Net.Sockets.SocketOptionName option when calling a method such as Socket.SetSocketOption so that outbound sockets reuse local ports during binding.

    • Supporto di nomi di dominio internazionali e di PunyCodeSupport for international domain names and PunyCode

      Una nuova proprietà, IdnHost, è stata aggiunta alla classe Uri per migliorare il supporto dei nomi di dominio internazionali e di PunyCode.A new property, IdnHost, has been added to the Uri class to better support international domain names and PunyCode.

  • Ridimensionamento nei controlli Windows FormResizing in Windows Forms controls.

    Questa funzionalità è stata estesa .NET Framework 4.6.NET Framework 4.6 per includere i tipi DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn e ToolStripSplitButton, nonché il rettangolo specificato dalla proprietà Bounds usato per disegnare un oggetto UITypeEditor.This feature has been expanded in .NET Framework 4.6.NET Framework 4.6 to include the DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn and ToolStripSplitButton types and the rectangle specified by the Bounds property used when drawing a UITypeEditor.

    È una funzionalità che prevede il consenso esplicito.This is an opt-in feature. Per attivarla, impostare l'elemento EnableWindowsFormsHighDpiAutoResizing su true nel file di configurazione dell'applicazione (app.config):To enable it, set the EnableWindowsFormsHighDpiAutoResizing element to true in the application configuration (app.config) file:

    <appSettings>
       <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    
  • Supporto per le codifiche della tabella codiciSupport for code page encodings

    [!INCLUDE[net_core](../../../includes/net-core-md.md)] primarily supports the Unicode encodings and by default provides limited support for code page encodings. You can add support for code page encodings available in the .NET Framework but unsupported in [!INCLUDE[net_core](../../../includes/net-core-md.md)] by registering code page encodings with the <xref:System.Text.Encoding.RegisterProvider%2A?displayProperty=nameWithType> method. For more information, see <xref:System.Text.CodePagesEncodingProvider?displayProperty=nameWithType>.
    
  • .NET Native.NET Native

    Le app di Windows per Windows 10 destinate a .NET Core.NET Core e scritte in C# o Visual Basic ora possono avvalersi di una nuova tecnologia che compila le app in codice nativo anziché IL.Windows apps for Windows 10 that target .NET Core.NET Core and are written in C# or Visual Basic can take advantage of a new technology that compiles apps to native code rather than IL. Producono app caratterizzate da maggiore rapidità di avvio ed esecuzione.They produce apps characterized by faster startup and execution times. Per altre informazioni, vedere Compilazione di app con .NET Native.For more information, see Compiling Apps with .NET Native. Per una panoramica di .NET Native che esamina le differenze rispetto alla compilazione JIT e NGEN e descrive tutti i vantaggi per il codice, vedere Compilazione e .NET Native.For an overview of .NET Native that examines how it differs from both JIT compilation and NGEN and what that means for your code, see .NET Native and Compilation.

    Le app vengono compilate in codice nativo per impostazione predefinita quando si compilano con Visual Studio 2015.Your apps are compiled to native code by default when you compile them with Visual Studio 2015. Per altre informazioni, vedere Introduzione a .NET Native.For more information, see Getting Started with .NET Native.

    Per supportare il debug di app .NET Native, è stata aggiunta una serie di nuove interfacce ed enumerazioni all'API di debug non gestito.To support debugging .NET Native apps, a number of new interfaces and enumerations have been added to the unmanaged debugging API. Per altre informazioni, vedere l'argomento Debug (riferimenti alle API non gestite).For more information, see the Debugging (Unmanaged API Reference) topic.

  • Pacchetti .NET Framework open sourceOpen-source .NET Framework packages

    [!INCLUDE[net_core](../../../includes/net-core-md.md)] packages such as the immutable collections, [SIMD APIs](http://go.microsoft.com/fwlink/?LinkID=518639), and networking APIs such as those found in the <xref:System.Net.Http> namespace are now available as open source packages on [GitHub](https://github.com/). To access the code, see [NetFx on GitHub](http://go.microsoft.com/fwlink/?LinkID=518634). For more information and how to contribute to these packages, see [.NET Core and Open-Source](../../../docs/framework/get-started/net-core-and-open-source.md), [.NET Home Page on GitHub](http://go.microsoft.com/fwlink/?LinkID=518635).
    

Torna all'inizioBack to top

Novità di .NET Framework 4.5.2What's new in the .NET Framework 4.5.2

Torna all'inizioBack to top

Novità di .NET Framework 4.5.1What's new in the .NET Framework 4.5.1

Aggiornamenti di aprile 2014:April 2014 updates:

  • Visual Studio 2013 Update 2 include alcuni aggiornamenti ai modelli di libreria di classi portabile per supportare questi scenari:Visual Studio 2013 Update 2 includes updates to the Portable Class Library templates to support these scenarios:

    • È possibile usare le API di Windows Runtime in librerie portabili destinate a Windows 8.1, Windows Phone 8.1 e Windows Phone Silverlight 8.1.You can use Windows Runtime APIs in portable libraries that target Windows 8.1, Windows Phone 8.1, and Windows Phone Silverlight 8.1.

    • È possibile includere XAML (tipi Windows.UI.XAML) nelle librerie portabili quando la destinazione è Windows 8.1 o Windows Phone 8.1.You can include XAML (Windows.UI.XAML types) in portable libraries when you target Windows 8.1 or Windows Phone 8.1. Sono supportati i modelli XAML seguenti: Pagina vuota, Dizionario risorse, Controllo basato su modelli e Controllo utente.The following XAML templates are supported: Blank Page, Resource Dictionary, Templated Control, and User Control.

    • È possibile creare una componente Windows Runtime portabile (.winmd file) da usare in app di Windows Store destinate a Windows 8.1 e Windows Phone 8.1.You can create a portable Windows Runtime component (.winmd file) for use in Store apps that target Windows 8.1 and Windows Phone 8.1.

    • È possibile cambiare associazione a una libreria di classi Windows Store o Windows Phone Store come una Libreria di classi portabile.You can retarget a Windows Store or Windows Phone Store class library like a Portable Class Library.

    Per altre informazioni su queste modifiche, vedere Libreria di classi portabile.For more information about these changes, see Portable Class Library.

  • Il set di contenuti di .NET Framework ora include la documentazione relativa a .NET Native.NET Native, una tecnologia di precompilazione per la creazione e la distribuzione di app di Windows.The .NET Framework content set now includes documentation for .NET Native.NET Native, which is a precompilation technology for building and deploying Windows apps. .NET Native.NET Native compila le app direttamente in codice nativo piuttosto che in linguaggio intermedio (IL), per ottenere migliori prestazioni. compiles your apps directly to native code, rather than to intermediate language (IL), for better performance. Per informazioni dettagliate, vedere Compilazione di app con .NET Native.For details, see Compiling Apps with .NET Native.

  • Reference Source per .NET Framework offre una nuova esperienza di esplorazione e funzionalità migliorate.The .NET Framework Reference Source provides a new browsing experience and enhanced functionality. È ora possibile esplorare il codice sorgente di .NET Framework online, scaricare i riferimenti per la visualizzazione offline ed eseguire le origini (inclusi aggiornamenti e patch) durante il debug.You can now browse through the .NET Framework source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging. Per altre informazioni, vedere il post di blog relativo al nuovo aspetto di Reference Source per .NET.For more information, see the blog entry A new look for .NET Reference Source.

Le nuove funzionalità e i miglioramenti principali in .NET Framework 4.5.1 includono:Core new features and enhancements in the .NET Framework 4.5.1 include:

  • Reindirizzamento di associazione automatico per assembly.Automatic binding redirection for assemblies. A partire da Visual Studio 2013Visual Studio 2013, quando si compila un'app destinata a .NET Framework 4.5.1.NET Framework 4.5.1, è possibile aggiungere reindirizzamenti di associazione al file di configurazione dell'app se quest'ultima o i relativi componenti fanno riferimento a più versioni dello stesso assembly.Starting with Visual Studio 2013Visual Studio 2013, when you compile an app that targets the .NET Framework 4.5.1.NET Framework 4.5.1, binding redirects may be added to the app configuration file if your app or its components reference multiple versions of the same assembly. È inoltre possibile abilitare questa funzionalità per i progetti destinati a versioni precedenti di .NET Framework.You can also enable this feature for projects that target older versions of the .NET Framework. Per altre informazioni, vedere Procedura: abilitare e disabilitare il reindirizzamento di associazione automatico.For more information, see How to: Enable and Disable Automatic Binding Redirection.

  • Possibilità di raccogliere informazioni di diagnostica che consentono agli sviluppatori di migliorare le prestazioni delle applicazioni server e cloud.Ability to collect diagnostics information to help developers improve the performance of server and cloud applications. Per altre informazioni, vedere i metodi WriteEventWithRelatedActivityId e WriteEventWithRelatedActivityIdCore nella classe EventSource.For more information, see the WriteEventWithRelatedActivityId and WriteEventWithRelatedActivityIdCore methods in the EventSource class.

  • Capacità di compattare in modo esplicito gli heap di oggetti grandi durante la Garbage Collection.Ability to explicitly compact the large object heap (LOH) during garbage collection. Per altre informazioni, vedere la proprietà GCSettings.LargeObjectHeapCompactionMode.For more information, see the GCSettings.LargeObjectHeapCompactionMode property.

  • Altri miglioramenti alle prestazioni, quali la sospensione di app ASP.NET, i miglioramenti JIT multicore e un avvio più rapido delle app in seguito a un aggiornamento di .NET Framework.Additional performance improvements such as ASP.NET app suspension, multi-core JIT improvements, and faster app startup after a .NET Framework update. Per informazioni dettagliate, vedere l'annuncio di .NET Framework 4.5.1 e il post di blog sulla sospensione di app ASP.NET.For details, see the .NET Framework 4.5.1 announcement and the ASP.NET app suspend blog post.

I miglioramenti di Windows Form includono:Improvements to Windows Forms include:

  • Ridimensionamento nei controlli Windows Form.Resizing in Windows Forms controls. È possibile usare l'impostazione DPI per ridimensionare i componenti dei controlli (ad esempio, le icone visualizzate in una griglia delle proprietà) scegliendo una voce nel file di configurazione dell'applicazione (app.config) relativo alla propria app.You can use the system DPI setting to resize components of controls (for example, the icons that appear in a property grid) by opting in with an entry in the application configuration file (app.config) for your app. Questa funzionalità è attualmente supportata nei seguenti controlli Windows Form:This feature is currently supported in the following Windows Forms controls:

    PropertyGrid TreeView Alcuni aspetti di DataGridView (per gli altri controlli supportati, vedere le nuove funzionalità nella versione 4.5.2)PropertyGrid TreeView Some aspects of the DataGridView (see new features in 4.5.2 for additional controls supported)

    Per attivare questa funzionalità, aggiungere un nuovo elemento <appSettings> al file di configurazione (app.config) e impostare l'elemento EnableWindowsFormsHighDpiAutoResizing su true:To enable this feature, add a new <appSettings> element to the configuration file (app.config) and set the EnableWindowsFormsHighDpiAutoResizing element to true:

    <appSettings>
       <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    

I miglioramenti durante il debug delle app .NET Framework in Visual Studio 2013Visual Studio 2013 includono:Improvements when debugging your .NET Framework apps in Visual Studio 2013Visual Studio 2013 include:

  • Valori restituiti nel debugger di Visual Studio.Return values in the Visual Studio debugger. Quando si esegue il debug di un'app gestita in Visual Studio 2013Visual Studio 2013, nella finestra Auto vengono restituiti tipi e valori per i metodi.When you debug a managed app in Visual Studio 2013Visual Studio 2013, the Autos window displays return types and values for methods. Queste informazioni sono disponibili per applicazioni desktop, Windows Store e Windows Phone.This information is available for desktop, Windows Store, and Windows Phone apps. Per altre informazioni, vedere Esaminare i valori restituiti dalle chiamate di metodo in MSDN Library.For more information, see Examine return values of method calls in the MSDN Library.

  • Modifica e continua per app a 64 bit.Edit and Continue for 64-bit apps. In Visual Studio 2013Visual Studio 2013 è supportata la funzionalità Modifica e continuazione per le applicazioni gestite a 64 bit per desktop, Windows Store e Windows Phone.Visual Studio 2013Visual Studio 2013 supports the Edit and Continue feature for 64-bit managed apps for desktop, Windows Store, and Windows Phone. Le limitazioni esistenti restano valide per le app a 32 bit e a 64 bit. Vedere l'ultima sezione dell'articolo Modifiche al codice supportate (C#).The existing limitations remain in effect for both 32-bit and 64-bit apps (see the last section of the Supported Code Changes (C#) article).

  • Debug asincrono.Async-aware debugging. Per semplificare il debug delle app asincrone in Visual Studio 2013Visual Studio 2013, lo stack di chiamate nasconde il codice dell'infrastruttura fornito dai compilatori per supportare la programmazione asincrona e inoltre si concatena nei frame padre logici, in modo da poter seguire più chiaramente l'esecuzione logica del programma.To make it easier to debug asynchronous apps in Visual Studio 2013Visual Studio 2013, the call stack hides the infrastructure code provided by compilers to support asynchronous programming, and also chains in logical parent frames so you can follow logical program execution more clearly. La finestra Attività in parallelo è stata sostituita da una finestra Attività, contenente le attività correlate a uno specifico punto di interruzione e qualsiasi altra attività attualmente attiva o pianificata nell'app.A Tasks window replaces the Parallel Tasks window and displays tasks that relate to a particular breakpoint, and also displays any other tasks that are currently active or scheduled in the app. Informazioni su questa funzionalità sono disponibili nella sezione relativa al debug asincrono nell'annuncio di .NET Framework 4.5.1.You can read about this feature in the "Async-aware debugging" section of the .NET Framework 4.5.1 announcement.

  • Supporto avanzato delle eccezioni per i componenti Windows Runtime.Better exception support for Windows Runtime components. In Windows 8.1Windows 8.1 le eccezioni generate dalle app di Windows Store conservano le informazioni sull'errore che ha generato l'eccezione, anche oltre i limiti di linguaggio.In Windows 8.1Windows 8.1, exceptions that arise from Windows Store apps preserve information about the error that caused the exception, even across language boundaries. Informazioni su questa funzionalità sono disponibili nella sezione relativa allo sviluppo di app di Windows Store nell'annuncio di .NET Framework 4.5.1.You can read about this feature in the "Windows Store app development" section of the .NET Framework 4.5.1 announcement.

A partire da Visual Studio 2013Visual Studio 2013, è possibile usare lo strumento Mpgo.exe (Managed Profile Guided Optimization) per ottimizzare le app di Windows 8.x StoreWindows 8.x Store e quelle desktop.Starting with Visual Studio 2013Visual Studio 2013, you can use the Managed Profile Guided Optimization Tool (Mpgo.exe) to optimize Windows 8.x StoreWindows 8.x Store apps as well as desktop apps.

Per le nuove funzionalità di ASP.NET 4.5.1, vedere ASP.NET 4.5.1 e Visual Studio 2013 nel sito Web ASP.NET.For new features in ASP.NET 4.5.1, see ASP.NET 4.5.1 and Visual Studio 2013 on the ASP.NET site.

Torna all'inizioBack to top

Novità di .NET Framework 4.5What's new in the .NET Framework 4.5

Miglioramenti e nuove funzionalità principaliCore new features and improvements

  • Possibilità di ridurre i riavvii di sistema rilevando e chiudendo le applicazioni .NET Framework 4 durante la distribuzione.Ability to reduce system restarts by detecting and closing .NET Framework 4 applications during deployment. Vedere Riduzione dei riavvii del sistema durante le installazioni di .NET Framework 4.5.See Reducing System Restarts During .NET Framework 4.5 Installations.

  • Supporto per le matrici di dimensioni maggiori di 2 GB nelle piattaforme a 64 bit.Support for arrays that are larger than 2 gigabytes (GB) on 64-bit platforms. Questa funzionalità può essere abilitata nel file di configurazione dell'applicazione.This feature can be enabled in the application configuration file. Vedere l'<elemento gcAllowVeryLargeObjects>, che elenca anche altre restrizioni per le dimensioni di oggetti e matrici.See the <gcAllowVeryLargeObjects> element, which also lists other restrictions on object size and array size.

  • Miglioramento delle prestazioni tramite Garbage Collection in background per server.Better performance through background garbage collection for servers. Se si usa la funzionalità di Garbage Collection del server in .NET Framework 4.5.NET Framework 4.5, verrà automaticamente abilità la Garbage Collection in background.When you use server garbage collection in the .NET Framework 4.5.NET Framework 4.5, background garbage collection is automatically enabled. Vedere la sezione "Operazione di Garbage Collection in background per server" nell'argomento Principi fondamentali di Garbage Collection.See the Background Server Garbage Collection section of the Fundamentals of Garbage Collection topic.

  • Compilazione JIT in background, eventualmente disponibile nei processori multicore per migliorare le prestazioni delle applicazioni.Background just-in-time (JIT) compilation, which is optionally available on multi-core processors to improve application performance. Vedere ProfileOptimization.See ProfileOptimization.

  • Possibilità di limitare il periodo in cui il motore delle espressioni regolari tenta di risolvere un'espressione regolare prima che si verifichi il timeout. Vedere la proprietà Regex.MatchTimeout.Ability to limit how long the regular expression engine will attempt to resolve a regular expression before it times out. See the Regex.MatchTimeout property.

  • Possibilità di definire le impostazioni cultura predefinite per un dominio di applicazione.Ability to define the default culture for an application domain. Vedere la classe CultureInfo.See the CultureInfo class.

  • Supporto della console per la codifica Unicode (UTF-16).Console support for Unicode (UTF-16) encoding. Vedere la classe Console.See the Console class.

  • Supporto per il controllo delle versioni dei dati di confronto e ordinamento delle stringhe di impostazioni cultura.Support for versioning of cultural string ordering and comparison data. Vedere la classe SortVersion.See the SortVersion class.

  • Miglioramento delle prestazioni in fase di recupero di risorse.Better performance when retrieving resources. Vedere Creazione del pacchetto e distribuzione delle risorse in applicazioni desktop.See Packaging and Deploying Resources.

  • Miglioramenti delle compressioni ZIP per ridurre la dimensione di un file compresso.Zip compression improvements to reduce the size of a compressed file. Vedere lo spazio dei nomi System.IO.Compression.See the System.IO.Compression namespace.

  • Possibilità di personalizzare un contesto di reflection per eseguire l'override del comportamento di reflection predefinito tramite la classe CustomReflectionContext.Ability to customize a reflection context to override default reflection behavior through the CustomReflectionContext class.

  • Supporto per la versione 2008 dello standard IDNA (Internationalized Domain Names in Applications) quando la classe System.Globalization.IdnMapping viene usata in Windows 8Windows 8.Support for the 2008 version of the Internationalized Domain Names in Applications (IDNA) standard when the System.Globalization.IdnMapping class is used on Windows 8Windows 8.

  • Delega del confronto tra stringhe al sistema operativo, che effettua l'implementazione di Unicode 6.0, quando .NET Framework viene usato in Windows 8Windows 8.Delegation of string comparison to the operating system, which implements Unicode 6.0, when the .NET Framework is used on Windows 8Windows 8. Quando è in esecuzione in altre piattaforme, .NET Framework include i propri dati di confronto tra stringhe, che effettua l'implementazione di Unicode 5.x.When running on other platforms, the .NET Framework includes its own string comparison data, which implements Unicode 5.x. Vedere la classe String e la sezione Note della classe SortVersion.See the String class and the Remarks section of the SortVersion class.

  • Possibilità di calcolare i codici hash per le stringhe in base al dominio dell'applicazione.Ability to compute the hash codes for strings on a per application domain basis. Vedere <Elemento UseRandomizedStringHashAlgorithm>.See <UseRandomizedStringHashAlgorithm> Element.

  • Il supporto per la reflection dei tipi è stato suddiviso tra le classi Type e TypeInfo.Type reflection support split between Type and TypeInfo classes. Vedere Reflection in .NET Framework per app di Windows Store.See Reflection in the .NET Framework for Windows Store Apps.

Managed Extensibility Framework (MEF)Managed Extensibility Framework (MEF)

In .NET Framework 4.5.NET Framework 4.5 la libreria Managed Extensibility Framework (MEF) offre le seguenti nuove funzionalità:In the .NET Framework 4.5.NET Framework 4.5, the Managed Extensibility Framework (MEF) provides the following new features:

  • Supporto per tipi generici.Support for generic types.

  • Modello di programmazione basato su convenzioni che consente di creare parti basate sulle convenzioni di denominazione, anziché sugli attributi.Convention-based programming model that enables you to create parts based on naming conventions rather than attributes.

  • Più ambiti.Multiple scopes.

  • Subset di MEF che è possibile usare in fase di creazione delle applicazioni Windows 8.x StoreWindows 8.x Store.A subset of MEF that you can use when you create Windows 8.x StoreWindows 8.x Store apps. Questo subset è disponibile come pacchetto scaricabile dalla raccolta NuGet.This subset is available as a downloadable package from the NuGet Gallery. Per installare il pacchetto, aprire il progetto in Visual Studio, scegliere Gestisci pacchetti NuGet dal menu Progetto ed eseguire una ricerca online del pacchetto Microsoft.Composition.To install the package, open your project in Visual Studio, choose Manage NuGet Packages from the Project menu, and search online for the Microsoft.Composition package.

Per altre informazioni, vedere Managed Extensibility Framework (MEF).For more information, see Managed Extensibility Framework (MEF).

Operazioni asincrone sui file.Asynchronous file operations

In .NET Framework 4.5.NET Framework 4.5 sono state aggiunte nuove funzionalità asincrone nei linguaggi C# e Visual Basic.In the .NET Framework 4.5.NET Framework 4.5, new asynchronous features were added to the C# and Visual Basic languages. Con queste funzionalità viene introdotto un modello basato su attività per eseguire operazioni asincrone.These features add a task-based model for performing asynchronous operations. Per impiegare questo nuovo modello, usare i metodi asincroni nelle classi I/O.To use this new model, use the asynchronous methods in the I/O classes. Vedere I/O di file asincrono.See Asynchronous File I/O.

StrumentiTools

In .NET Framework 4.5.NET Framework 4.5 il generatore di file di risorse (Resgen.exe) consente di creare un file con estensione resw per l'uso nelle applicazioni Windows 8.x StoreWindows 8.x Store da un file con estensione resources incorporato in un assembly .NET Framework.In the .NET Framework 4.5.NET Framework 4.5, Resource File Generator (Resgen.exe) enables you to create a .resw file for use in Windows 8.x StoreWindows 8.x Store apps from a .resources file embedded in a .NET Framework assembly. Per altre informazioni, vedere Resgen.exe (generatore di file di risorse).For more information, see Resgen.exe (Resource File Generator).

L'ottimizzazione PGO gestita (Mpgo.exe) consente di migliorare i tempi di avvio delle applicazioni, l'uso della memoria (dimensione del working set) e la velocità effettiva attraverso l'ottimizzazione degli assembly di immagini nativi.Managed Profile Guided Optimization (Mpgo.exe) enables you to improve application startup time, memory utilization (working set size), and throughput by optimizing native image assemblies. Lo strumento da riga di comando genera dati di profilo per assembly di applicazioni di immagini nativi.The command-line tool generates profile data for native image application assemblies. Vedere Strumento Mpgo.exe (Managed Profile Guided Optimization).See Mpgo.exe (Managed Profile Guided Optimization Tool). A partire da Visual Studio 2013Visual Studio 2013 è possibile usare Mgpo.exe per ottimizzare le applicazioni Windows 8.x StoreWindows 8.x Store e quelle desktop.Starting with Visual Studio 2013Visual Studio 2013, you can use Mpgo.exe to optimize Windows 8.x StoreWindows 8.x Store apps as well as desktop apps.

Elaborazione parallelaParallel computing

In .NET Framework 4.5.NET Framework 4.5 vengono forniti diversi miglioramenti e nuove funzionalità per il calcolo parallelo.The .NET Framework 4.5.NET Framework 4.5 provides several new features and improvements for parallel computing. Alcuni esempi: miglioramento delle prestazioni, maggiore controllo, supporto avanzato per la programmazione asincrona, una nuova libreria di flussi di dati e un miglioramento del supporto per il debug parallelo e l'analisi delle prestazioni.These include improved performance, increased control, improved support for asynchronous programming, a new dataflow library, and improved support for parallel debugging and performance analysis. Vedere la voce relativa alle novità per il parallelismo in .NET 4.5 nel blog sulla programmazione parallela con .NET.See the entry What’s New for Parallelism in .NET 4.5 in the Parallel Programming with .NET blog.

WebWeb

In ASP.NET 4.5 e 4.5.1 vengono aggiunti associazione di modelli per Web Form, supporto di WebSocket, gestori asincroni, miglioramenti delle prestazioni e molte altre funzionalità.ASP.NET 4.5 and 4.5.1 add model binding for Web Forms, WebSocket support, asynchronous handlers, performance enhancements, and many other features. Per altre informazioni, vedere le seguenti risorse:For more information, see the following resources:

Servizi di reteNetworking

In .NET Framework 4.5.NET Framework 4.5 viene fornita una nuova interfaccia di programmazione per applicazioni HTTP.The .NET Framework 4.5.NET Framework 4.5 provides a new programming interface for HTTP applications. Per altre informazioni, vedere i nuovi spazi dei nomi System.Net.Http e System.Net.Http.Headers.For more information, see the new System.Net.Http and System.Net.Http.Headers namespaces.

È inoltre incluso il supporto per una nuova interfaccia di programmazione per l'accettazione e l'interazione con una connessione WebSocket usando l'oggetto HttpListener esistente e le classi correlate.Support is also included for a new programming interface for accepting and interacting with a WebSocket connection by using the existing HttpListener and related classes. Per altre informazioni, vedere il nuovo spazio dei nomi System.Net.WebSockets e la classe HttpListener.For more information, see the new System.Net.WebSockets namespace and the HttpListener class.

In .NET Framework 4.5.NET Framework 4.5 sono inoltre inclusi i seguenti miglioramenti di rete:In addition, the .NET Framework 4.5.NET Framework 4.5 includes the following networking improvements:

  • Supporto URI conforme a RFC.RFC-compliant URI support. Per altre informazioni, vedere Uri e le classi correlate.For more information, see Uri and related classes.

  • Supporto per l'analisi IDN (Internationalized Domain Name).Support for Internationalized Domain Name (IDN) parsing. Per altre informazioni, vedere Uri e le classi correlate.For more information, see Uri and related classes.

  • Supporto per EAI (Email Address Internationalization).Support for Email Address Internationalization (EAI). Per altre informazioni, vedere lo spazio dei nomi System.Net.Mail.For more information, see the System.Net.Mail namespace.

  • Supporto IPv6 avanzato.Improved IPv6 support. Per altre informazioni, vedere lo spazio dei nomi System.Net.NetworkInformation.For more information, see the System.Net.NetworkInformation namespace.

  • Supporto per socket dual mode.Dual-mode socket support. Per altre informazioni, vedere le classi Socket e TcpListener.For more information, see the Socket and TcpListener classes.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In .NET Framework 4.5.NET Framework 4.5 Windows Presentation Foundation (WPF) include miglioramenti e modifiche nelle aree seguenti:In the .NET Framework 4.5.NET Framework 4.5, Windows Presentation Foundation (WPF) contains changes and improvements in the following areas:

  • Nuovo controllo Ribbon, che consente di implementare l'interfaccia utente di una barra multifunzione che ospita una barra di accesso rapido, menu di applicazione e schede.The new Ribbon control, which enables you to implement a ribbon user interface that hosts a Quick Access Toolbar, Application Menu, and tabs.

  • Nuova interfaccia INotifyDataErrorInfo, che supporta la convalida sincrona e asincrona dei dati.The new INotifyDataErrorInfo interface, which supports synchronous and asynchronous data validation.

  • Nuove funzionalità per le classi VirtualizingPanel e Dispatcher.New features for the VirtualizingPanel and Dispatcher classes.

  • Miglioramento delle prestazioni durante la visualizzazione di grandi set di dati raggruppati e mediante l'accesso alle raccolte in thread non dell'interfaccia utente.Improved performance when displaying large sets of grouped data, and by accessing collections on non-UI threads.

  • Associazione di dati a proprietà statiche, associazione di dati a tipi personalizzati che implementano l'interfaccia ICustomTypeProvider e recupero di informazioni sull'associazione dati da un'espressione di associazione.Data binding to static properties, data binding to custom types that implement the ICustomTypeProvider interface, and retrieval of data binding information from a binding expression.

  • Riposizionamento di dati contestuale alla modifica dei valori (shaping attivo).Repositioning of data as the values change (live shaping).

  • Possibilità di controllare se il contesto dei dati per un contenitore di elementi è disconnesso.Ability to check whether the data context for an item container is disconnected.

  • Possibilità di impostare la quantità di tempo che deve trascorrere tra le modifiche alle proprietà e gli aggiornamenti delle origini dati.Ability to set the amount of time that should elapse between property changes and data source updates.

  • Supporto avanzato per l'implementazione di modelli di eventi deboli.Improved support for implementing weak event patterns. Inoltre, gli eventi possono ora accettare estensioni di markup.Also, events can now accept markup extensions.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

In .NET Framework 4.5.NET Framework 4.5 le seguenti funzionalità sono state aggiunte per semplificare la scrittura e la gestione di applicazioni Windows Communication Foundation (WCF):In the .NET Framework 4.5.NET Framework 4.5, the following features have been added to make it simpler to write and maintain Windows Communication Foundation (WCF) applications:

  • Semplificazione dei file di configurazione generati.Simplification of generated configuration files.

  • Supporto per lo sviluppo con priorità al contratto ("contract-first").Support for contract-first development.

  • Possibilità di configurare la modalità di compatibilità ASP.NET in modo più semplice.Ability to configure ASP.NET compatibility mode more easily.

  • Modifiche ai valori predefiniti delle proprietà di trasporto per ridurre la probabilità di doverli impostare.Changes in default transport property values to reduce the likelihood that you will have to set them.

  • Aggiornamenti alla classe XmlDictionaryReaderQuotas per ridurre le probabilità di dover configurare manualmente le quote per i reader del dizionario XML.Updates to the XmlDictionaryReaderQuotas class to reduce the likelihood that you will have to manually configure quotas for XML dictionary readers.

  • Convalida dei file di configurazione WCF da parte di Visual Studio nell'ambito del processo di compilazione, in modo da poter rilevare errori di configurazione prima di eseguire l'applicazione.Validation of WCF configuration files by Visual Studio as part of the build process, so you can detect configuration errors before you run your application.

  • Nuovo supporto per lo streaming asincrono.New asynchronous streaming support.

  • Nuovo mapping del protocollo HTTPS per semplificare l'esposizione di un endpoint su HTTPS con Internet Information Services (IIS).New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS with Internet Information Services (IIS).

  • Possibilità di generare metadati in un singolo documento WSDL aggiungendo ?singleWSDL all'URL del servizio.Ability to generate metadata in a single WSDL document by appending ?singleWSDL to the service URL.

  • Supporto di WebSocket per consentire un'effettiva comunicazione bidirezionale sulle porte 80 e 443 con caratteristiche di prestazioni simili al trasporto TCP.Websockets support to enable true bidirectional communication over ports 80 and 443 with performance characteristics similar to the TCP transport.

  • Supporto per la configurazione dei servizi nel codice.Support for configuring services in code.

  • Descrizioni comando dell'editor XML.XML Editor tooltips.

  • Supporto per la memorizzazione nella cache di ChannelFactory.ChannelFactory caching support.

  • Supporto della compressione del codificatore binario.Binary encoder compression support.

  • Supporto per un trasporto UDP che consente agli sviluppatori di scrivere servizi che usano la messaggistica di tipo "Fire and Forget".Support for a UDP transport that enables developers to write services that use "fire and forget" messaging. Un client invia un messaggio a un servizio e non prevede alcuna risposta dal servizio.A client sends a message to a service and expects no response from the service.

  • Possibilità di supportare più modalità di autenticazione in un singolo endpoint WCF quando si usa il trasporto HTTP e la sicurezza del trasporto.Ability to support multiple authentication modes on a single WCF endpoint when using the HTTP transport and transport security.

  • Supporto per servizi WCF che usano IDN (Internationalized Domain Name).Support for WCF services that use internationalized domain names (IDNs).

Per altre informazioni, vedere Novità di Windows Communication Foundation.For more information, see What's New in Windows Communication Foundation.

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

In .NET Framework 4.5.NET Framework 4.5 sono state introdotte numerose nuove funzionalità in Windows Workflow Foundation (WF), tra cui:In the .NET Framework 4.5.NET Framework 4.5, several new features were added to Windows Workflow Foundation (WF), including:

  • Flussi di lavoro della macchina a stati, introdotti per la prima volta in .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1).State machine workflows, which were first introduced as part of the .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1). In questo aggiornamento erano incluse diverse nuove classi e attività che consentivano agli sviluppatori di creare flussi di lavoro macchina a stati.This update included several new classes and activities that enabled developers to create state machine workflows. Queste classi e attività sono state aggiornate per .NET Framework 4.5.NET Framework 4.5 al fine di includere:These classes and activities were updated for the .NET Framework 4.5.NET Framework 4.5 to include:

    • Possibilità di impostare punti di interruzione negli stati.The ability to set breakpoints on states.

    • Possibilità di copiare e incollare transizioni in Workflow Designer.The ability to copy and paste transitions in the workflow designer.

    • Supporto della finestra di progettazione per la creazione di transizioni con trigger condivisi.Designer support for shared trigger transition creation.

    • Attività per creare flussi di lavoro macchina a stati, tra cui: StateMachine, State e Transition.Activities for creating state machine workflows, including: StateMachine, State, and Transition.

  • Funzionalità avanzate di Workflow Designer, tra cui:Enhanced Workflow Designer features such as the following:

    • Funzionalità avanzate di ricerca di flussi di lavoro in Visual Studio, tra cui Ricerca veloce e Cerca nei file.Enhanced workflow search capabilities in Visual Studio, including Quick Find and Find in Files.

    • Possibilità di creare automaticamente un'attività Sequence quando viene aggiunta una seconda attività figlio a un'attività del contenitore e di includere entrambe le attività nell'attività Sequence.Ability to automatically create a Sequence activity when a second child activity is added to a container activity, and to include both activities in the Sequence activity.

    • Supporto per panoramica, che consente di modificare la parte visibile di un flusso di lavoro senza ricorrere a barre di scorrimento.Panning support, which enables the visible portion of a workflow to be changed without using the scroll bars.

    • Nuova visualizzazione Struttura documento che mostra i componenti di un flusso di lavoro in una visualizzazione in stile albero e permette di selezionare un componente nella visualizzazione Struttura documento.A new Document Outline view that shows the components of a workflow in a tree-style outline view and lets you select a component in the Document Outline view.

    • Possibilità di aggiungere annotazioni alle attività.Ability to add annotations to activities.

    • Capacità di definire e usare delegati di attività mediante Workflow Designer.Ability to define and consume activity delegates by using the workflow designer.

    • Connessione e inserimento automatici per attività e transizioni nei flussi di lavoro macchina a stati e del diagramma di flusso.Auto-connect and auto-insert for activities and transitions in state machine and flowchart workflows.

  • Archiviazione di informazioni sullo stato di visualizzazione per un flusso di lavoro in un singolo elemento nel file XAML, in modo da poter individuare e modificare agevolmente tali informazioni.Storage of the view state information for a workflow in a single element in the XAML file, so you can easily locate and edit the view state information.

  • Attività del contenitore NoPersistScope per impedire la conservazione delle attività figlio.A NoPersistScope container activity to prevent child activities from persisting.

  • Supporto per espressioni C#:Support for C# expressions:

    • I progetti di flusso di lavoro che usano Visual Basic impiegheranno espressioni Visual Basic, mentre i progetti di flusso di lavoro C# useranno espressioni C#.Workflow projects that use Visual Basic will use Visual Basic expressions, and C# workflow projects will use C# expressions.

    • I progetti di flusso di lavoro C# creati in Visual Studio 2010 e con espressioni Visual Basic sono compatibili con i progetti di flusso di lavoro C# che usano espressioni C#.C# workflow projects that were created in Visual Studio 2010 and that have Visual Basic expressions are compatible with C# workflow projects that use C# expressions.

  • Miglioramenti del controllo delle versioni:Versioning enhancements:

    • Nuova classe WorkflowIdentity, che fornisce un mapping tra un'istanza di flusso di lavoro persistente e la relativa definizione.The new WorkflowIdentity class, which provides a mapping between a persisted workflow instance and its workflow definition.

    • Esecuzione affiancata di più versioni del flusso di lavoro nello stesso host, tra cui WorkflowServiceHost.Side-by-side execution of multiple workflow versions in the same host, including WorkflowServiceHost.

    • In Aggiornamento dinamico, capacità di modificare la definizione di un'istanza di flusso di lavoro persistente.In Dynamic Update, the ability to modify the definition of a persisted workflow instance.

  • Sviluppo di flussi di lavoro con priorità al contratto ("contract-first"), che fornisce supporto per generare automaticamente attività in modo da soddisfare un contratto di servizio esistente.Contract-first workflow service development, which provides support for automatically generating activities to match an existing service contract.

Per altre informazioni, vedere Novità di Windows Workflow Foundation.For more information, see What's New in Windows Workflow Foundation.

.NET per app di Windows 8.x Store.NET for Windows 8.x Store apps

Le applicazioni Windows 8.x StoreWindows 8.x Store sono progettate per fattori di forma specifici e sfruttano la potenza del sistema operativo Windows.Windows 8.x StoreWindows 8.x Store apps are designed for specific form factors and leverage the power of the Windows operating system. Un subset di .NET Framework 4.5.NET Framework 4.5 o 4.5.1 è disponibile per la compilazione di applicazioni Windows 8.x StoreWindows 8.x Store per Windows usando C# o Visual Basic.A subset of the .NET Framework 4.5.NET Framework 4.5 or 4.5.1 is available for building Windows 8.x StoreWindows 8.x Store apps for Windows by using C# or Visual Basic. Questo subset è denominato .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps e viene descritto in una panoramica in Windows Dev Center.This subset is called .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps and is discussed in an overview in the Windows Dev Center.

Librerie di classi portabiliPortable Class Libraries

Il progetto Libreria di classi portabile in Visual Studio 2012Visual Studio 2012 (e versioni successive) consente di scrivere e compilare assembly gestiti compatibili con più piattaforme .NET Framework.The Portable Class Library project in Visual Studio 2012Visual Studio 2012 (and later versions) enables you to write and build managed assemblies that work on multiple .NET Framework platforms. Se si usa un progetto Libreria di classi portabile, si scelgono le piattaforme (ad esempio Windows Phone e .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps) di destinazione.Using a Portable Class Library project, you choose the platforms (such as Windows Phone and .NET per app di Windows 8.x Store.NET for Windows 8.x Store apps) to target. I tipi e i membri disponibili nel progetto sono automaticamente limitati a tipi e membri comuni in queste piattaforme.The available types and members in your project are automatically restricted to the common types and members across these platforms. Per altre informazioni, vedere Libreria di classi portabile.For more information, see Portable Class Library.

Vedere ancheSee Also

.NET Framework e rilascio fuori programma The .NET Framework and Out-of-Band Releases
Nuove funzionalità di accessibilità in .NET Framework What's new in accessibility in the .NET Framework
Novità di Visual Studio 2017 What's New in Visual Studio 2017
ASP.NET ASP.NET
Novità di Visual C++What’s New in Visual C++