what’s new in visual studio, team foundation server and .net 4.5.1
DESCRIPTION
What’s new in Visual Studio, Team Foundation Server and .NET 4.5.1. Andreas Pollak (@ apollak ) Product Marketing Manager, Microsoft Austria 14:45 – 16:15. Agenda. What‘s new in the Visual Studio IDE What‘s new in Team Foundation Server / ALM What‘s new in .NET 4.5.1. 88. - PowerPoint PPT PresentationTRANSCRIPT
Andreas Pollak (@apollak)Product Marketing Manager, Microsoft Austria14:45 – 16:15
What’s new in Visual Studio, Team Foundation Server and .NET 4.5.1
AgendaWhat‘s new in the Visual Studio IDEWhat‘s new in Team Foundation Server / ALMWhat‘s new in .NET 4.5.1
What‘s new in the Visual Studio IDEThe Connected IDEThemes and Visual DesignEditor ProductivityPerformance Improvements
88
Connected IDE Demo
The Connected IDESign into the IDE with your Microsoft AccountMove seamlessly between your machinesSynchronize settings across your devicesGet up and running faster
NotificationsKeep Visual Studio up-to-dateEasily determine what’s importantAddress laterOne common location
Notifications Demo
Themes and Visual Design
Choice
Choice
Blue
Light
Dark
Visual DesignImproved iconsLine work to better define areas and regionsHover colors Scrollbar statesActive/inactive instancesImproved experience for high density displays
Quick Look at Theme Updates
High-DPI + VS
Editor Productivity Demos
Editor ProductivityAuto Brace CompletionMove Line Up and DownEnhanced ScrollbarNew Navigate To experiencePeekCodeLens
Performance
Performance ImprovementsSolution LoadIDE StartupResponsiveness
C++ Configuration Switching
C++ Configuration Switching
First Time Switch (sec) Subsequent Switches (sec)0
50
100
150
200
170
100
40
0.5
Time to switch configuration
Visual Studio 2012 Visual Studio 2013
325% Improvement
19,900% Improvement
Symbol ImprovementsCancelable symbol loadingMissed symbol files are recordedSmarter cachingEarlier detection of bad symbol pathsAbility to trust source server
Solution Load Performance
RecapThe Connected IDEThemes and Visual DesignEditor ProductivityPerformance Improvements
What‘s new in TFS / ALMAgile Planning Tools & New Web InterfaceCommenting Code HistoryTeam RoomsGit Support in TFS/Service & Visual Studio
55
Agile Planning Tools & New Web InterfaceImproved Visual DesignImproved usability (copy paste images)New WorkItem „Features“Board Improvements
Commenting Code History
Commenting on Codehistory (TFS & Git)Rich browsing & filtering
Team RoomPersistent documentation of events and conversationsRich meta informationManaging events (TFS & Git)
Git Support in TFS/Service & Visual Studio
source control models
centralized OR distributed
centralized - scales to large code bases
distributed - best in class offline experience
Modern source-control approaches
Check-inCheck-out
Strengths Best for
Modern source-control approaches
Check-inCheck-out
EditCommit
• Scales to very large codebases
• Fine level permission control• Allows usage monitoring
• Large integrated codebases• Control and auditability over
source code down to the file level
Centralized Version Control
Strengths Best for
Modern source-control approaches
Check-inCheck-out
EditCommit
DistributedVersion Control
• Scales to very large codebases
• Fine level permission control• Allows usage monitoring
• Large integrated codebases• Control and auditability over
source code down to the file level
• Offline editing support• Easy to edit files outside
Visual Studio or Eclipse
• Medium-sized integrated codebases
• A balance of fine-grained control with reduced friction
• Full offline experience• Complete repository with
portable history• Simplified branching model
• Modular codebases• Integrating with open source• Highly distributed teams
Modern apps and OSS workflows App Architecture: suite of loosely coupled systems Team: Written by small/discrete and distributed teams Platforms: Multiple platforms and development environments
(Windows, iOS, Android) Open source components within proprietary solutions
Changes
we need to embrace DVCS
Git OR Mercurial
Git took off The Leading DVCS ToolDeployment Protocol
Principles100% true Git … join the community
Fully integratedGit support
Team Foundation Server / ServiceProject 2
Issues
Project
MgmtBuild
Git SCC Provider
Project 1
Issues
Project
MgmtBuild
Git
3rd Party XCodeEclipseShell
…
3rd Party Eclipse
Shell… TFVC
……
TFS SCC Provider
Team Explorer
TFVC Object Model
Local Repo
LibGit2 / LibGit2Sharp
Other Remote
Git Repo
Git-TF
Principles100% true Git … join the communityBest distributed VC experienceEnterprise class feature support
Ease of installationSupport and servicingHigh availabilityScaleEase of managementIntegrated AuthenticationEnhanced permissionsALM IntegrationLocalization
Enterprise
Team Foundation Version Control
(TFVC)
Git(hosted by TFS)
decision at the project level
Git Demo
In source code workflowsIntegrating the leading DVCS solution into the leading ALM suiteUse centralized or distributed version control and always get the full integrated ALM capabilities of TFS
Choice
In development processPick Agile, CMMI, or Scrum processes or create your ownTooling to support best of breed practices regardless of your development methodology
Choice
In platformsTarget the platform of your choice from the development environment of your choice
Choice
Developer Productivity Application Performance Continuous Innovation
What‘s new in .NET Development
.NET (A *Very* Simplified View)
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
•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
Fundamentals
•.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)
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 is installed on 100+ million machines!
.NET 4.5.1 in A Nutshell
Developer Productivity
Application Performance
Continuous Innovation
Developer Productivity
In 2005, we introduced a *little* feature called Edit & Continue, but there was something missing….
Sorry to keep you waiting for 8 years…
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
Wait, there is more…
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…
// EXAMPLE: Get image from URL
var client = new HttpClient();
var stream = await client.GetStreamAsync(imgUrl);
var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var bitmap = new BitmapImage();
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
// Define the "titleAuthor" table of the Microsoft "pubs" database.
public struct titleAuthor
{
// Author ID; format ###-##-####
public string au_id;
// Title ID; format AA####
public string title_id;
// Author ORD is nullable.
public short? au_ord;
// Royalty Percent is nullable.
public int? royaltyper;
}<-- error WME1060: 'System.Nullable<System.Int32>' is not a valid Windows Runtime field type.
<-- error WME1060: 'System.Nullable<System.Int16>' 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
Application Performance
ASP.NET App SuspensionEnables low latency, high density web sites for on-prem/private cloud
Shipping as part of IIS 8.5 in Windows Server 2012 R2 Preview
Provisioned through the Idle Worker Process Page-out capability in IIS
Early Results from our Performance Lab
ASP.NET App SuspensionIn IIS Settings, set Idle Time-out Action to Suspended
On-demand Large Object Heap CompactionLet me start off by saying that the .NET GC is one well-tuned machine!In general, you should never have to use GC.Collect()CAUTION: With great power comes great responsibility!
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:public static class GCSettings {
public static GCLOHCompactionMode LOHCompactionMode { get; set; }
}
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
GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce;
GC.Collect();
// Next full blocking GC happens at some point, it will be a compacting GC that compacts the whole heap including LOH.
GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce;
On-demand Large Object Heap CompactionI’m going to wrap up by saying…
If you really believe you have a GC heap fragmentation issue (a.k.a. Gynormous GC Fragmentos syndrome), please email:• [email protected] (our resident GC ninja)
Multi-Core JIT Improvements
Performance data from our test labs
• Minimize application startup time on multi-core CPUs
• Now supported for ASP.NET web sites
• Enabled automatically for ASP.NET apps
15% improvement for cold startup
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
Continuous Innovation
.NET Framework UpdatesOur goal is to keep the existing values of the .NET Framework while allowing for more agility and innovationExisting 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
NuGet ReleasesDuring .NET 4.5 we released two components via NuGet:• MEF (Microsoft.Composition) for web and Windows Store apps• TPL Dataflow (Microsoft.Tpl.Dataflow)• These (and new packages) are treated as any other .NET 4.5
component, i.e. are fully supported
.NET (“in box”)
SystemCompositio
n
TPL Dataflo
wHttp
Client AsyncImmutabl
e Collection
s
Announcing: .NET Framework NuGet FeedOne-stop shopping for all of your .NET Framework NuGet packages released by Microsoft• In Visual Studio
20[10,12,13]• On the Web
.NET Framework NuGet Feed• Already enabled in VS 2013 Preview
• In VS 20[10,12]:• Tools.Options.Package Manager• Name: .NET Framework Packages• Source: https://nuget.org/api/v2/curated-feeds/dotnetframework
/
Visual Studio 20[10,12]
What’s New in .NET Development
• 64-bit Edit and Continue
• Method Return Value Inspection
• Async Debugging Enhancements
• Windows Store development improvements
• EF/ADO.NET Connection Resiliency
Developer Productivity
Application Performance
Continuous Innovation
.NET 4.5.1 delivers many new innovations while maintaining a high compatibility bar
• ASP.NET application suspension
• Multi-core JIT improvements
• On-demand large-object heap compaction
• Consistent performance before and after servicing the .NET Framework
• .NET Framework updates
• NuGet releases• Curated .NET
Framework NuGet packages
You have seenWhat‘s new in the Visual Studio IDEWhat‘s new in ALM CapabilitiesWhat‘s new in .NET
For More InformationCodefest.athttp://www.codefest.at/Visual Studio Bloghttp://blogs.msdn.com/b/visualstudio/Visual Studio Toolbox on Channel 9http://channel9.msdn.com/Shows/Visual-Studio-ToolboxSomasegar’s bloghttp://blogs.msdn.com/b/somasegar/
Share your feedback
UserVoicehttp://VisualStudio.uservoice.com
Connecthttp://connect.microsoft.com/VisualStudio
Send a Smile
Get the releases
Windows 8.1 Previewhttp://preview.windows.com
Visual Studio 2013 Previewhttp://go.microsoft.com/fwlink/?LinkId=306566
Get Involved Today
Visual Studio and ALM Resources
Scan this QR code to visit our ALM resources on www.codefest.at !
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.