Improved icons
Line work to better define areas and regions
Hover colors
Scrollbar states
Active/inactive instances
Improved experience for high density displays
100
50
0
200
150
170
Time to switch configuration
100
40
First Time Switch (sec)
Visual Studio 2012
0,5
Subsequent Switches (sec)
Visual Studio 2013
source control models
centralized OR distributed
centralized scales to large code bases
distributed best in class offline experience
Check-in
Check-out
Check-in
Check-out
Strengths
• Scales to very large codebases
• Fine level permission control
• Allows usage monitoring
Best for
• Large integrated codebases
• Control and auditability over source code down to the file level
Check-in
Check-out
Strengths
• Scales to very large codebases
• Fine level permission control
• Allows usage monitoring
• Offline editing support
• Easy to edit files outside Visual
Studio or Eclipse
• Full offline experience
• Complete repository with portable history
• Simplified branching model
Best for
• Large integrated codebases
• Control and auditability over source code down to the file level
• Medium-sized integrated codebases
• A balance of fine-grained control with reduced friction
• Modular codebases
• Integrating with open source
• Highly distributed teams
we need to embrace DVCS
Git OR Mercurial
3 rd Party
Team Foundation Server / Service
Project 1 Project 2
Local
Repo
3 rd Party Other
Remote
Git Repo
Git
(hosted by TFS)
decision at the project level
Runtime Libraries Languages
Tools .NET
Client & Device
• Async – for UI responsiveness
• Windows Store apps -- WinRT
• Windows Phone apps
• .NET CF 3.9
Web & Cloud Fundamentals GC
• Async – for server scaling
• ASP.NET MVC4
• ASP.NET Web API
• ASP.NET Web
Pages
.NET 4.5
• SignalR
• Windows Azure
Cloud Services 4.5
Support
• LOH fragmentation reduction
• GC low latency is installed on 100+ million machines!
• WebSockets
• Windows Azure
Web Sites
• .NET Async (async
+ await)
• Many new async
APIs
• WinRT interop
• Multi-core JIT
• Performance improvements
• Reboot and reliability improvements to setup
• Support Windows
RT
• Background GC
• LOH heap balancing
• GC awareness of
NUMA and >64 processors
• >2GB arrays (or objects)
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
• 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
• Now available for .NET!
• Access via Autos window or in the Immediate window ($ReturnValue)
• Can expand return value in the debugger
• 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
• 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
• 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)
• 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
• Support Nullable value types in WinRT structs public short? au_ord; public int? royaltyper;
<-- error WME1060: 'System.Nullable<System.Int16>' is not a valid Windows Runtime field type.
<-- error WME1060: 'System.Nullable<System.Int32>' is not a valid Windows Runtime field type.
• 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
• 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:
• 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.
15% improvement for cold startup
• Minimize application startup time on multicore CPUs
• Now supported for
ASP.NET web sites
• Enabled automatically for ASP.NET apps
Performance data from our test labs
• 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
Visual Studio 20[10,12] https://nuget.org/api/v2/curated-feeds/dotnetframework/
http://www.codefest.at/ http://blogs.msdn.com/b/visualstudio/ http://channel9.msdn.com/Shows/Visual-Studio-Toolbox http://blogs.msdn.com/b/somasegar/
Windows 8.1 Preview http://preview.windows.com
Visual Studio 2013 Preview http://go.microsoft.com/fwlink/?LinkId=306566
http://VisualStudio.uservoice.com
http://connect.microsoft.com/VisualStudio