38 msdn magazine .NET Framework
decompression functionality (bit.ly/13xWATe) in response to feedback.
Automatic decompression of HTTP responses helps minimize data
requirements, which is useful not only on mobile devices, but also
helps with the perception of performance on the desktop.
Microsoft HTTP Client Libraries on NuGet (bit.ly/1a2DPNY) has
had great adoption with more than 1.3 million downloads. You can
use this package in apps targeting Windows Phone 7.5 and higher,
Silverlight 4 and higher, .NET Framework 4 and higher, Windows
Store, and Portable Class Libraries (PCL).
Microsoft Immutable Collections NuGet Package This is
another popular .NET package, which provides easy-to-use, high-
performance immutable collections, such as ImmutableList
and ImmutableDictionary<TKey, TValue>. Immutable collections,
once constructed, don’t allow modifi cation. Th is enables passing
immutable types across threads or async contexts without con-
cern about concurrent operations. Even the original creator of the
collection can’t add or remove items.
Th e .NET Framework has read-only collection types, such as
ReadOnlyCollection
guarantee the consumer can’t change the data. However, there’s
no similar guarantee for the provider. Th is might cause data cor-
ruption if the provider and consumer are operating concurrently
on different threads. With immutable collection types, you’re
guaranteed a given instance never changes.
Th e Microsoft Immutable Collections NuGet package (bit.ly/18xhE5W)
is available as a portable library and can be used in desktop and
Windows Store apps targeting the .NET Framework 4.5 and higher,
PCL, and Windows Phone 8 apps. For more insights and details, I
encourage you to start with the “Immutable collections ready for
prime time” post (bit.ly/18Y3xp8) on the .NET Framework Blog and
the MSDN documentation at bit.ly/189XR9U.
The New .NET JIT Compiler, RyuJIT Th e JIT compiler is one of
our key investment areas to improve app performance. Th e .NET
team recently announced the CTP release of the next-generation
x64 JIT compiler, code-named “RyuJIT.”
RyuJIT is twice as fast in compiling code
relative to the existing x64 JIT compiler,
meaning apps using RyuJIT start up
to 30 percent faster depending on the
percentage of startup time that’s spent in
JIT compilation. (Note that time spent
in the JIT compiler is only one com-
ponent of startup time among others,
thus the app doesn’t start twice as fast
because the JIT is twice as fast.) At the
same time, RyuJIT doesn’t compromise
on code quality, and the modern JIT
compiler opens up more avenues for
future code quality optimizations.
Beyond the performance gains,
RyuJIT highlights the .NET team’s com-
mitment to customer engagement. Less
than a month aft er the CTP was released,
we released an updated version incorpo-
rating customer feedback. We’ll continue
the deep customer engagement and quick cadence of improvements.
We started RyuJIT with a focus on x64 as part of building a fi rst-
class cloud platform. As the team moves forward, we’ll build support
for other architectures. You can get more details about the RyuJIT
project and how to download and use the CTP in the “RyuJIT:
Th e next-generation JIT compiler for .NET” post at bit.ly/19RvBHf. I
encourage you to try it out and send us feedback.
Looking for Feedback
In this article, I provided an overview of the new features in the .NET
Framework 4.5.1 release. Th e .NET team delivered many important
customer-requested features along with some innovative surprises
such as ASP.NET App Suspension and async-aware debugging.
We’re shaping the future of .NET with projects that oft en span
multiple .NET releases, in key areas such as the JIT, garbage collec-
tion and libraries. In this article, I also provided insights into one
of these deep investments, the new .NET JIT compiler, RyuJIT,
which was recently shipped as a CTP release.
Note that the .NET team is actively listening for feedback. You
can follow .NET news and give the team feedback through the
following channels:
- .NET Framework Blog (blogs.msdn.com/b/dotnet)
- Facebook (facebook.com/Dotnet)
- Twitter (twitter.com/DotNet)
- E-mail ([email protected])
- Visual Studio UserVoice (bit.ly/K26kTu)
- MSDN Forums (bit.ly/19cOuU3) Q
GAYE ONCUL KOK is a program manager for the CLR and the .NET Framework
at Microsoft , where she works on the .NET Ecosystem team.
THANKS to the following Microsoft technical experts for reviewing this article:
Habib Heydarian, Richard Lander, Immo Landwerth, Andrew Pardoe,
Subramanian Ramaswamy and Alok Shriram
Figure 8 The NuGet Client in Visual Studio 2013