Permalink
a5bddcd May 17, 2017
135 lines (113 sloc) 12.7 KB

.NET Framework 4.7 Release Notes

.NET Framework release notes describe product improvements grouped by product area. Each change includes a Microsoft-internal VSTS bug number, which acts as a useful unique ID for each change (can be used to report issues or when calling Microsoft Support).

ASP.NET

  • Allows for extensibility of the cache providers that could allow them to operate on new services with less overhead from memory usage. [180994]
  • Introduced a new config parameter 'timeoutUnit' for ActiveDirectoryMembershipProvider that can be used to indicate the 'clientSearchTimeout' and 'serverSearchTimeout' values. These should be interpreted as Days/Hours/Minutes/Seconds/Milliseconds. If not specified, the default is Minutes, as was the previous behavior. [212045]
  • Customer will see a warning in the windows event log if they have specified to use unsecured password formats in their web application. [265267]
  • Fixed assignment issue with max-age value for OutputCache. [288337]
  • Fixed an issue with exception handling for custom membership provider scenario. [294931]

BCL

  • Opening a cryptographic key with CspParameters.ParentWindowHandle set to this.Handle will now correctly make any PIN or password prompt be modal to the current window [208813]
  • Added ValueTuple types to support C# 7.0 and VB 15 tuples [257122]
  • Added Name property to Regex.Group. [234526]
  • Fixed InvalidPath exception when using FileIOPermissions with device syntax (\?), [245244]
  • ECDsa and ECDiffieHellman can now import and export key parameters (all OSes) as well as represent points over an expanded set of curves (Win10). [266138]
  • Fixed an issue in SerialPort where unplugging the device during execution could cause a memory leak in the SerialStream class. [288363]
  • Improved support of RSA decryption with hardware keys [298923]

ClickOnce

  • Fixed store corruption in ClickOnce application. [260868]
  • Added the ability to sign a manifest file via a Hardware-Security Module (HSM) to Mage.exe and MageUI.exe [166355]

CLR

  • Fixed buffer overflows with large manifests in EventSource. [199198]
  • If a COM interface contain setter only indexed property, Tlbimp will generate incorrect setter property metadata. [220918]
  • Implemented IEnumerator in EventPayload (EventSource). [220990]
  • JIT performance improvements [223169]
  • Improved performance of creating large numbers of TaskSchedulers when a debugger isn't attached. [227010]
  • EventSourceIndex method is now public. [227686]
  • Support for ToEventKeywords() method instead of working with keywords directly. [232335]
  • Fixed NGen Task to respect battery saver setting. [250762]
  • Fixed a bug where null paths would not throw ArgumentNullException. [252467]
  • Added the case of Wrong machine code generated by RyuJIT on AVX2-capable CPU to the list of instructions that have this characteristic. [258520]
  • Implemented flexibility in specifying Server GC resource consumption. [271883] [dotnet/coreclr #6104]

Networking

  • ServicePointManager.SecurityProtocol will default to a new value: SystemDefault which allows applications to use the underlying operating system TLS version selection defaults. New SslStreamAuthenticateAs APIs allow applications to omit the SslProtocols parameter and use the system default. New HashAlgorithmType enum members. [197039]
  • Added support for the TLS Alert Protocol [273411]
  • Updated HttpListener to handle improvements to the token binding protocol. [365993], [377357]
  • Fixed pointer offset calculation in HttpListener for token binding struct. [262268]

SQL

  • Fixed TransparentNetworkIPResolution (TNIR) Connectivity issues. [222375]
  • SQL Client now uses TCP as the default protocol for connections to Azure SQL Database. Previously, SQL Client tried every protocol including viz, Shared Memory, TCP, and Named Pipes to establish a connection to Azure SQL Database, which only supports TCP connections. [276556]

WCF

  • Fixed a bug in SocketConnection.Read which caused the operation to hang when mixing synchronous and asynchronous calls. [171322]
  • Support for CNG certificates. For details refer to Application compatibility changes. [194808]
  • Support for DataContractJsonSerializer to follow ECMAScript 6 when serializing control character. [200613]
  • Fixed process crash in concurrent Dictionary scenario [209749]
  • Fixed a race condition on the cleanup path of WCF Tracing that caused an ObjectDisposedException. [219051]
  • Enabled WCF message security configuration to use TLS1.1 or TLS1.2. For details refer to Application compatibility changes. [226570]
  • Fixed a bug in OperationContext.Current which caused it to return null when called inside an OperationContextScope [249750]
  • Ensure no deadlock occurs when two threads try to abort the channel. [257126]

Windows Forms

  • Fixed dialog layout for High DPI scenarios [123539]
  • Enabled ClickOnce signing scenarios where certificate is identified by a cryptographic provider and private key container names. [146775]
  • Docked ListBox controls will now revert to their correct size in the designer when the Dock property is changed to DockStyle.None in the property browser. [159543]
  • Fixed properly scaling across dialog control elements, including control padding and sizes in High DPI scenarios. [164251]
  • Fixed text clipping in localized versions of .NET SDK tool MageUI.exe. [197100]
  • Fixed IndexOutOfRangeException. [199325]
  • Fixed clipped buttons in WinRes.exe .Net SDK tool [203672]
  • Fixed crashes in Windows Forms Designer that happened when the Windows theme was changed. [204800]
  • Fixed an issue in the Windows Forms designer where under some circumstances selecting a ContextMenuStrip causes Visual Studio to crash. [214130]
  • Improved reliability of ToolTip control. [219724]
  • Fixed reliability issue with ShowPropertyBrowser and Controls [223512]
  • Changed the background color of property grid lines to provide an 8:1 contrast ratio for high contrast themes. [225121]
  • Improved reliability of the Windows Forms DataGrid control. [236488]
  • Fixed control height scaling issues in DPI mode [236540]
  • Fixed toolstrip scaling issues in DPI mode [236541]
  • Fixed case-insensitivity issues with command line arguments in mage.exe .NET SDK tool. [245680]
  • High DPI support for winforms applications via app.config file. [272446], [284519], [297641], [297725], [297811], [365350]
  • Fixed for the proper placement of anchored controls. [275828]
  • Fixed control text truncations issue in a Visual Studio dialog. [280675]
  • Enable per-monitor scaling in DPI mode [292303]

Workflow

  • Support for propagating an activity exception as-is instead of throwing a Null Reference Exception. For details refer to Application compatibility changes. [155469]
  • Previously when trying to use Visual Studio to debug XAML-based workflows on a machine with FIPS enabled, one would encounter a NullReferenceException. This has been resolved. However, in order to take advantage of this change, you will need to add the following to the App.Config file for the workflow application:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Activities.UseMD5ForWFDebugger=false" />
</runtime>

For details refer to Application compatibility changes. [193017]

  • SqlWorkflowInstanceStore database now defines Primary Key columns, allowing transactional replication. [206271]

WPF

  • WPF now uses PrintDocumentPackageTarget instead of the deprecated XpsPrint API. [113979]
  • Fixed crash in WPF when typing in text with specific language input [121579]
  • The escape sequences have been unescaped in the URLs while converting from XAML to RTF. [132397]
  • Fixed crash in DocumentView when receiving input from IMEs. [133072]
  • Fixed ribbon crash when Alt + accelerator key is pressed to display the submenu. [170982]
  • Previously, large amounts of connects and disconnects of tablet/stylus devices could result in WPF losing all touch support except for promoted mouse messages. This was due to a reference counting issue within WPF and its Windows side touch component (WISP). This change, along with the associated WISP change available in RS2, fixes this situation allowing large numbers of connects and disconnects. [174153]
  • Conversion of BaselineOffset property has been added while converting from XAML to RTF and vice versa. [181850]
  • Modernize touch stack [197685]
  • Fixed crashes in Combobox [208379]
  • Added support for alternative delimiter characters in markup. [210368]
  • Fixed textbox focus issues [215639]
  • Fixed out of memory issues with custom textbox. [216018]
  • In some scenarios, shutting down input for a stylus/touch device (program shutdown or device disconnection) could result in a deadlock. This change alleviates that issue by fixing a timing problem with the WPF stylus/tablet initialization and shutdown code. [220285]
  • In order to disable the WPF stylus/touch stack developers were previously using a private reflection mechanism. This provides a new mechanism in the form of an AppContext switch. Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport set to true will fully disable the stylus/touch stack without requiring any private reflection or other workarounds. [221075]
  • Inheritable properties propagate through a new link in the visual tree, including properties declared in a Style newly enabled by the link because a DynamicResource reference now resolves. [221837]
  • ImageSourceConverter.ConvertFromString now throws the correct DirectoryNotFoundException instead of NullReferenceException if called with an invalid path (only on apps targeting .NET Framework 4.7 and above) [223209]
  • Fixed IOException crashes arising from Cursor.LoadFromStream, that could happen on application start. [227517]
  • Fixed a deadlock arising from re-entrant COM requests while waiting for the lock protecting WPF's weak-event component. [234423]
  • Scroll tracing now supports scenarios involving multiple instances of an ItemsControl with the same name, that enter and leave the visual tree dynamically. [234612]
  • Some ItemsControls allow null to appear in the ItemsSource. If so, the automation for the control should allow null as well. An app that works in a normal environment should not crash in when automation is present. [239479]
  • Fixed an ArgumentException arising from bindings on a non-Visual element declared in a DataGrid cell template. [240237]
  • Improved Grid algorithm usages to allocate space to columns declared with *-width. For details refer to Application compatibility changes. [245278]
  • Fixed crash arising from displaying certain sequences of Unicode characters deemed (by the font and by DWrite) to have negative advance width. [252835]
  • Fixed a crash arising when running two instances of a process that creates multiple large packages when using System.IO.Packaging. [259773]
  • When an exception interrupts a PropertyChanged or CollectionChanged notification raised on a worker thread, other such notifications continue to be processed normally. [260469]
  • Fixed D3DImage memory leak. [261139]
  • Fixed crashes in DataGrid with column virtualization enabled scenario. [274127]
  • Improved reliability of anchored scroll scenarios. [282666]
  • Support for Async and AddJob scenarios in printing. [292567]
  • The content of the selected item in a TabControl is visible to UI Automation, even after changing IsEnabled (or other properties) on the TabItems. [365337]