Runtime Libraries Languages Tools .NET First, a look at .NET 4.5 Client & Device • Async – for UI responsiveness • Windows Store apps -- WinRT • Windows Phone apps • .NET.

Download Report

Transcript Runtime Libraries Languages Tools .NET First, a look at .NET 4.5 Client & Device • Async – for UI responsiveness • Windows Store apps -- WinRT • Windows Phone apps • .NET.

Runtime
Libraries
Languages
Tools
.NET
First, a look at .NET 4.5
Client & Device
• Async – for UI
responsiveness
• Windows Store
apps -- WinRT
• Windows Phone
apps
• .NET CF 3.9
Web & Cloud
Fundamentals
• Async – for server
scaling
• ASP.NET MVC4
• ASP.NET Web API
• ASP.NET Web
Pages
• Entity Framework
Code-First
• WebSockets
• SignalR
• Windows Azure
Cloud Services 4.5
Support
• Windows Azure
Web Sites
• .NET Async (async
+ await)
• Many new async
APIs
• WinRT interop
• Multi-core JIT
• MPGO – NGEN
hot/cold splitting
• Performance
improvements
• Reboot and
reliability
improvements to
setup
• Support Windows
RT
GC
• Background GC
• LOH heap
balancing
• LOH
fragmentation
reduction
• GC low latency
mode
• GC awareness of
NUMA and >64
processors
• >2GB arrays (or
objects)
.NET 4.5 is installed on 100+ million machines!
Libraries
• Portable libraries
update
• .NET Core Profile
(Windows 8)
• Extension methods
for WinRT streams
and async
• NuGet
• Immutable
collections
• Async for .NET 4
• HttpClient for
Portable
.NET 4.5.1 in A Nutshell
64-bit Edit and Continue is finally here!
• Number 9 all time requested feature on UserVoice!
• Works exactly the same as for 32-bit applications
• Client (WPF, WinForms, etc.), Store and ASP.NET WAP projects are
supported
• For WAP projects, need to enable Edit & Continue in Project
Properties
Method Return Value Inspection
• Now available for .NET!
• Access via Autos window or in the Immediate window ($ReturnValue)
• Can expand return value in the debugger
Async Debugging Improvements
• Common question: How did I get here?
• Supported for Store Apps, Web apps, Desktop apps in W8.1
• Enhancements to the Call Stack and Tasks window
Visual Studio 2012
Windows Store Development Improvements
• Convert System.IO.Stream to IRandomAccessStream
• Allows much easier interop with existing .NET code
• Better exception support for WinRT APIs
• System.Exception.Message
• System.Exception.StackTrace
• WinRT type system enhancements
• Nullable value types in WinRT structs
• 64-bit Edit and Continue support
• Managed Return Value Inspection support
• Async debugging enhancedments
Convert Stream to IRandomAccessStream
• From MSDN Forums…
bitmap.SetSource(memoryStream); <-- error CS1503: Argument 1: cannot convert from 'System.IO.Stream' to 'Windows.Storage.Streams.IRandomAccessStream‘
bitmap.SetSource(memoryStream.AsRandomAccessStream()); <-- .NET 4.5.1
In .NET 4.5.1:
System.IO.WindowsRuntimeStreamExtensions.AsRandomAccessStream(Stream stream)
Rich exception interop support for WinRT APIs
• In Windows 8, error propagation for WinRT APIs is through
HRESULT
• Important Exception information is lost unless a debugger is attached
• In Windows 8.1, additional error information is available via
System.Exception properties:
• Message
• StackTrace
Additional exception details
from a C++ WinRT Component
WinRT Type System Enhancements
• Support Nullable value types in WinRT structs
public short? au_ord;
<-- error WME1060: 'System.Nullable<System.Int16>' is not a valid Windows Runtime field type.
public int? royaltyper;
<-- error WME1060: 'System.Nullable<System.Int32>' is not a valid Windows Runtime field type.
EF/ADO.NET Connection Resiliency
• Provide reliable connection to Azure DB
• Automatically retry/reconnect broken connection
• Provides great experience for connected devices
• It Just Works! No code or configuration changes other than
installing .NET 4.5.1
Early Results from our Performance Lab
CAUTION:
On-demand Large Object Heap Compaction
• Refresher
• Large objects (>85000 bytes) treated specially
• Very expensive to compact
• Collected with Gen 2
• In .NET 4.5.1, you can now compact the Large
Object Heap (LOH) to address heap fragmentation
• The LOH mode is part of GCSettings:
On-demand Large Object Heap Compaction
• Two ways to use GC LOH API:
1. Compact LOH right away
2. Compact LOH with the next full blocking GC
// Next full blocking GC happens at some point, it will be a
compacting GC that compacts the whole heap including LOH.
[email protected]
Multi-Core JIT Improvements
• Minimize application
startup time on multicore CPUs
• Now supported for
ASP.NET web sites
• Enabled automatically
for ASP.NET apps
15% improvement
for cold startup
Performance data from our test labs
Consistent Performance Before & After Servicing .NET
• Servicing .NET Framework for 1B+ PCs is a
very BIG deal!
• Today, servicing the .NET Framework can
lead to degradation in app performance
directly afterwards
• This is due to core .NET assemblies being
JIT-compiled for a period of time after
servicing
• In Windows 8.1, app performance remains
consistent even after servicing the .NET
Framework
• Results in much better user experience and
better battery life on tablets
Our goal is to keep the existing values of the .NET Framework while
allowing for more agility and innovation
Existing Values
•
•
•
•
Great discoverability (all in in place)
Known quality, maturity and compatibility level
A single license and support policy
Centralized patching for security issues
*PLUS* New Values
• Faster release cadence with a tighter customer feedback loop
• Less friction with using features across .NET platforms
System
Composition
TPL
Dataflow
Http
Client
.NET (“in box”)
Async
Immutable
Collections
Web
Visual Studio 20[10,12]
https://nuget.org/api/v2/curated-feeds/dotnetframework/
What’s New in .NET Development
Blog
E-mail
MSDN Forums
@dotnet
dotnet
UserVoice
2-303: What’s New in .NET Development