{"id":493,"date":"2014-04-03T16:00:00","date_gmt":"2014-04-03T16:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2014\/04\/03\/the-next-generation-of-net\/"},"modified":"2021-09-30T17:00:54","modified_gmt":"2021-10-01T00:00:54","slug":"the-next-generation-of-net","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/the-next-generation-of-net\/","title":{"rendered":"The Next Generation of .NET"},"content":{"rendered":"<p>At Build 2014 this week, we announced the next generation of .NET. The next generation will focus and deliver on two main themes: Core Innovation and cross-device apps. These themes are a direct result of your feedback, asking for new features in .NET and to make it easier to use .NET for all your apps.<\/p>\n<p>At Build 2014, we are releasing:<\/p>\n<ul>\n<li><a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/04\/02\/announcing-net-native-preview.aspx\">.NET Native<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/roslyn\">The .NET Compiler Platform (\u201cRoslyn\u201d)<\/a><\/li>\n<li>CTP3 of our next generation JIT, \u201cRyuJIT\u201d, including SIMD support<\/li>\n<li>Unification of Portable Class Libraries and Class Library in Visual Studio 2013 Update 2<\/li>\n<li>Performance and Diagnostics hub improvements in Visual Studio 2013 Update 2<\/li>\n<li>.NET Mobile services<\/li>\n<li><a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/04\/02\/available-now-preview-of-project-orleans-cloud-services-at-scale.aspx\">Project &#8220;Orleans&#8221;<\/a><\/li>\n<\/ul>\n<h2>Overview<\/h2>\n<p>The .NET team has been building new technologies that extend the core capabilities of .NET and fundamentally improve the user experience of your apps. At Build, we\u2019ve announced <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/04\/02\/announcing-net-native-preview.aspx\">.NET Native<\/a>, <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/02\/27\/ryujit-ctp2-getting-ready-for-prime-time.aspx\">Next generation JIT<\/a> and SIMD. Those technologies focus on taking better advantage of hardware and specific CPU instructions that improve app performance.<\/p>\n<p>We\u2019ve made sure that .NET is a great technology for cross-device app development, in concert with the community and partners. This also includes improving portable class libraries and ensuring that <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/p\/nugetpackages.aspx\">our NuGet packages<\/a> work well on <a href=\"http:\/\/xamarin.com\/\">Xamarin<\/a> platforms.<\/p>\n<p>Many of those .NET libraries are open source, including from Microsoft. We\u2019re going to do more to work with open source developers. You will want to learn more in <a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2014\/04\/03\/the-net-foundation-and-innovation-in-the-net-platform.aspx\">Soma\u2019s blog post on the .NET Foundation<\/a>, which is new organization that is intended to foster open development around the growing collection of open source technologies for .NET.<\/p>\n<p>We\u2019re sharing preview releases of multiple technologies that show you where the next generation of .NET is headed. Please download and try out these releases. We need your feedback before we release these technologies as fully supported .NET features.<\/p>\n<p>Looking back, we <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2013\/10\/17\/net-framework-4-5-1-rtm-gt-start-coding.aspx\">released the .NET Framework 4.5.1<\/a> late last year. We are happy to let you know that .NET 4.5.1 is now on 350 million machines! Many of you have started taking advantage of the new features that we added in 4.5.1, and end-users are benefiting from the performance improvements.<\/p>\n<h2>.NET Native<\/h2>\n<p>We\u2019re thrilled to announce the first release of .NET Native. Windows Store apps start up to 60% faster with .NET Native and have a much smaller memory footprint. Our first release is a Developer Preview that allows you to develop and test apps with this new compiler. This preview release of .NET Native offers you the performance of C++ with the productivity of C#.\u00a0 .NET Native enables the best of both worlds! See yesterday\u2019s <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/04\/02\/announcing-net-native-preview.aspx\">.NET Native announcement<\/a>.<\/p>\n<h2>.NET Compiler Platform (\u201cRoslyn\u201d)<\/h2>\n<p>The .NET Compiler Platform (&#8220;Roslyn&#8221;) provides open-source C# and Visual Basic compilers with rich code analysis APIs. You can build code analysis tools with the same APIs that Microsoft is using to implement Visual Studio! To learn more see the <a href=\"http:\/\/blogs.msdn.com\/b\/csharpfaq\/archive\/2014\/04\/03\/taking-a-tour-of-roslyn.aspx\">C# Roslyn announcement post<\/a> or the <a href=\"http:\/\/blogs.msdn.com\/b\/vbteam\/archive\/2014\/04\/03\/taking-a-tour-of-roslyn.aspx\">VB Roslyn announcement post<\/a>.<\/p>\n<h2>Cross-device development<\/h2>\n<p>You can use .NET to target mobile and cloud platforms. We\u2019ve been working to make that experience even better, generally and in Visual Studio Update 2. The following examples show how .NET cross-device development keeps on improving.<\/p>\n<ul>\n<li>We\u2019ve enabled new Portable Class Libraries (PCL) capabilities for Windows Universal Apps.<\/li>\n<li>We\u2019ve worked closely with <a href=\"http:\/\/unity3d.com\/\">Unity<\/a> and <a href=\"http:\/\/xamarin.com\">Xamarin<\/a> to enable you to be successful building cross-device apps.<\/li>\n<li>As part of that, we\u2019ve shared our .NET BCL test suite with <a href=\"http:\/\/unity3d.com\/\">Unity<\/a> and <a href=\"http:\/\/xamarin.com\">Xamarin<\/a>, to validate the behavior of their .NET implementations.<\/li>\n<li>We\u2019ve also enabled anyone to build great support for PCL on any platform. <a href=\"http:\/\/blog.xamarin.com\/microsofts-pcl-reference-assemblies\/\">Xamarin supports PCL<\/a> in their tools, including validating PCLs that the .NET team ships via NuGet (ex: <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Bcl.Immutable\/1.0.30\">ImmutableCollections<\/a>), with a test suite that we shared for our PCLs.<\/li>\n<li>The community is also very active in cross-platform development too, making many .NET libraries available as PCLs, so that they can be used on Windows, iOS and Android.<\/li>\n<\/ul>\n<h2>RyuJIT CTP3<\/h2>\n<p>RyuJIT made a big splash when it debuted last October. RyuJIT <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2013\/09\/30\/ryujit-the-next-generation-jit-compiler.aspx\">CTP1<\/a> offered 2X throughput relative to the existing 64-bit JIT compiler and set up our team with a platform that\u2019s suitable for innovation and rapid development. A few weeks ago we released RyuJIT <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/02\/27\/ryujit-ctp2-getting-ready-for-prime-time.aspx\">CTP2<\/a>, giving you the performance and reliability you need to try out RyuJIT on your day-to-day workloads.<\/p>\n<p>We\u2019re happy to announce <a href=\"https:\/\/aka.ms\/RyuJIT\">RyuJIT CTP3<\/a>, showcasing the customer-facing innovations made possible with a modern JIT compiler. RyuJIT CTP3 is able to produce SIMD instructions (e.g., SSE2) when you compile with <a href=\"https:\/\/aka.ms\/simd\">our SIMD library on NuGet<\/a>. By using the SIMD libraries along with CTP3 of RyuJIT, .NET developers can now enjoy the performance boost offered by SIMD instructions available in modern processors, especially useful for numerical computing, gaming and image processing applications.<\/p>\n<h2>Evaluating RyuJIT CTP3 and SIMD<\/h2>\n<p>You can <a href=\"https:\/\/aka.ms\/RyuJIT\">download the RyuJIT CTP3 installer<\/a>. RyuJIT currently only works on 64-bit editions of Windows 8.1 or Windows Server 2012 R2. Because we want you to be able to test out RyuJIT easily the installer doesn\u2019t affect NGen or the system registry. After installation, there are two ways to turn on RyuJIT. If you just want to enable RyuJIT for one application, set an environment variable: COMPLUS_AltJit=*. If you want to enable RyuJIT for your entire machine, set the registry key HKLM\\SOFTWARE\\Microsoft\\.NETFramework\\AltJit to the string &#8220;*&#8221;. Both methods cause the 64-bit CLR to use RyuJIT instead of JIT64. And both are temporary settings\u2014installing RyuJIT doesn\u2019t make any permanent changes to your machine (aside from installing the RyuJIT files in a directory). <a href=\"https:\/\/aka.ms\/simd\">The SIMD libraries are available through NuGet<\/a>.<\/p>\n<p>Send feedback and questions to <a href=\"mailto:ryujit@microsoft.com\">ryujit@microsoft.com<\/a><\/p>\n<h2>Code Reuse &amp; Portable Class Libraries<\/h2>\n<p>Sharing code can be challenging. But don\u2019t worry: <a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2014\/04\/02\/visual-studio-2013-update-2-rc-universal-projects-for-windows-and-windows-phone.aspx\">with Visual Studio Update 2<\/a> we\u2019ve made significant improvements to the way you can share code.<\/p>\n<p>You now have two options for sharing:<\/p>\n<ol>\n<li><b>Sharing Source Code<\/b>. With Update 2 you\u2019ll get a brand new feature called <i>Universal Apps<\/i> that allows you to share source code and assets.<\/li>\n<li><b>Sharing a Binary<\/b>. This is portable class libraries as you know and love it but with Update 2 we\u2019ve made it a whole lot better. For instance, you can now call WinRT APIs.<\/li>\n<\/ol>\n<p>We are going to continue to look for ways to make sharing code easier and would appreciate your feedback.<\/p>\n<p>For more details on the new Universal Apps feature: stay tuned. There is an upcoming Visual Studio post that explains the ins &amp; outs. In this post, we\u2019ll cover the improvements we\u2019ve made to portable class libraries.<\/p>\n<h2>Supported in Express<\/h2>\n<p>First of all: we\u2019re happy to announce that starting with Update 2, portable class libraries are now also made available in <a href=\"http:\/\/www.visualstudio.com\/en-us\/products\/visual-studio-express-vs.aspx\">Visual Studio Express<\/a> for Windows.<\/p>\n<h2>Available set of .NET and WinRT APIs is bigger than ever<\/h2>\n<p>We\u2019ve heard your feedback around API convergence loud and clear. As a result, the new Windows Store 8.1 and Windows Phone 8.1 platforms have started to converge a lot more. That means you will be able to use almost all of Windows Store 8.1 and Windows Phone, WinRT, and .NET APIs from portable class libraries. That\u2019s right \u2013 portable class libraries can now consume all the WinRT APIs that both our Store platforms have in common.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/5482.clip_image002_thumb_0F0B2B60.png\"><img decoding=\"async\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none;\" title=\"clip_image002\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/5482.clip_image002_thumb_0F0B2B60.png\" alt=\"clip_image002\" width=\"192\" height=\"244\" border=\"0\" \/><\/a><\/p>\n<p>.NET has a great set of APIs available, on the .NET desktop and other platforms. We\u2019ve heard feedback that it is challenging to re-use existing .NET code in Windows Store apps, because it doesn\u2019t include core APIs such as File. We are looking at making more APIs available that would make this easier. We would love to hear your feedback, specifically about the APIs you want added.<\/p>\n<h2>Expose your PCLs to WinRT<\/h2>\n<p>We\u2019ve also added the capability to produce a Windows Runtime component (WinMD) right from a portable class library that targets Windows Store 8.1 and Windows Phone 8.1. This allows you to expose your libraries directly to C++ and JavaScript apps without having to create a WinRT wrapper.<\/p>\n<h2>Sharing UI<\/h2>\n<p>For the first time, you can now share UI via portable class libraries. This is possible because both Windows Store and Windows Phone use the same WinRT XAML stack. This includes being able to use the XAML designer in portable class libraries.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/5635.clip_image004_thumb_1C6AE572.jpg\"><img decoding=\"async\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none;\" title=\"clip_image004\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/5635.clip_image004_thumb_1C6AE572.jpg\" alt=\"clip_image004\" width=\"644\" height=\"215\" border=\"0\" \/><\/a><\/p>\n<h2>Less pressure in the New Project Dialog<\/h2>\n<p>Today, the New Project Dialog is where you have to make the decision whether you want to target a single platform or multiple platforms. Depending on the answer, you either create a regular, platform specific class library or a portable class library. Needless to say that requirements can often change over time. Previously there was no way to adjust this decision later \u2013 you had to start over.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/7245.clip_image006_thumb_4C8BD741.jpg\"><img decoding=\"async\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none;\" title=\"clip_image006\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2014\/04\/7245.clip_image006_thumb_4C8BD741.jpg\" alt=\"clip_image006\" width=\"273\" height=\"292\" border=\"0\" \/><\/a><\/p>\n<p>With Update 2 we\u2019ve removed this friction for Windows Store and Windows Phone class libraries: class libraries for both platforms have the same experience for retargeting as portable class libraries. This means you can convert any store class library into a portable class library by just ticking another checkbox in the Change Targets dialog. The reverse is also true: any portable class library can be reduced to target just Windows Store or just Windows Phone.<\/p>\n<p>This is super useful for reusing existing Windows Store 8.1 class libraries on Windows Phone 8.1. Given the amount of convergence, making them a portable class library will work in majority of cases without any changes.<\/p>\n<h2>Performance and Diagnostics hub improvements in Update 2<\/h2>\n<p>In VS2013 RTM we introduced the <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2013\/07\/12\/performance-and-diagnostics-hub-in-visual-studio-2013.aspx\">Performance and Diagnostics hub<\/a> with a bunch of tools that help you diagnose issues during your Windows Store app development. With VS2013 Update 2 we added two brand new tools: <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2014\/02\/28\/new-cpu-usage-tool-in-the-performance-and-diagnostics-hub-in-visual-studio-2013.aspx\">CPU Usage<\/a>, and <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2014\/04\/02\/diagnosing-memory-issues-with-the-new-memory-usage-tool-in-visual-studio.aspx\">Memory Usage<\/a>. We also made all the tools in the <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2014\/04\/03\/performance-profiling-on-windows-phone-8-1-with-visual-studio.aspx\">Performance Diagnostics hub applicable to Windows Phone 8.1 development.<\/a><\/p>\n<p>We also enhanced the <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2013\/06\/20\/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production.aspx\">.NET memory dump analysis<\/a> feature so you can now <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2014\/02\/06\/net-memory-analysis-object-inspection.aspx\">inspect values of objects from the dump file<\/a>.<\/p>\n<p>It\u2019s also worth highlighting here the addition of the <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudioalm\/archive\/2014\/02\/06\/json-debugger-visualizer-in-visual-studio-2013.aspx\">JSON Debugger Visualizer<\/a> to Update 2.<\/p>\n<h2>.NET Mobile Services<\/h2>\n<p><a href=\"http:\/\/blogs.msdn.com\/b\/somasegar\/archive\/2014\/04\/02\/visual-studio-2013-update-2-rc-universal-projects-for-windows-and-windows-phone.aspx\">With Visual Studio 2013 Update 2 RC<\/a>, we\u2019ve added support for .NET Mobile Services backend projects. You can now create a Mobile Service project (which uses the ASP. NET Web API framework) from Visual Studio, add scaffolds to it, debug it locally, publish it to Azure, and finally remote debug it. It\u2019s all the Mobile Services goodness, but with the familiarity of .NET. To learn more about .NET Mobile Services in Visual Studio, <a href=\"http:\/\/weblogs.asp.net\/scottgu\/archive\/2014\/02\/20\/azure-expressroute-dedicated-networking-web-site-backup-restore-mobile-services-net-support-hadoop-2-2-and-more.aspx\">check out Scott Gu\u2019s blog post that covers Mobile Services .NET support<\/a> from earlier today.<\/p>\n<h2>Project \u201cOrleans\u201d<\/h2>\n<p><a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2014\/04\/02\/available-now-preview-of-project-orleans-cloud-services-at-scale.aspx\">Project \u201cOrleans\u201d<\/a> is an implementation of the Actor design pattern. This pattern is particularly well suited for gaming, Internet of Things, social networks, and other scenarios with complex and dynamic relationships. The Halo 4 team took advantage of Project \u201cOrleans\u201d to build some of their backend services.<\/p>\n<p>We\u2019d appreciate you downloading the preview, trying it out and telling us about your experience using this design pattern.<\/p>\n<h2>Summary<\/h2>\n<p>.NET 4.5.1 delivers a lot of value and has been widely deployed since its release in October. This week we\u2019ve provided previews around our compilers and JIT and shipped updates to our developer experiences around class libraries and Azure. We\u2019re excited to be delivering value at this cadence and can\u2019t wait to see what you do with these new capabilities.<\/p>\n<p>We\u2019ve made a lot of preview bits available this week at \/\/build and are looking forward to hearing back from you about them. The best places are <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/category\/31481-net\">UserVoice<\/a>, <a href=\"http:\/\/connect.microsoft.com\/VisualStudio\">Visual Studio Connect<\/a> and the comment to this post. We\u2019re also listening on <a href=\"https:\/\/twitter.com\/dotnet\">Twitter<\/a> and <a href=\"http:\/\/facebook.com\/dotnet\">Facebook<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Build 2014 this week, we announced the next generation of .NET. The next generation will focus and deliver on two main themes: Core Innovation and cross-device apps. These themes are a direct result of your feedback, asking for new features in .NET and to make it easier to use .NET for all your apps. [&hellip;]<\/p>\n","protected":false},"author":11288,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685],"tags":[11,30,37,43,47,49,51,55,59,66,88,104,108,110,117,121,147,162],"class_list":["post-493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","tag-net-framework","tag-announcement","tag-azure","tag-bcl","tag-clr","tag-codegen","tag-community","tag-conferences","tag-diagnostics","tag-dotnetnative","tag-jit","tag-nuget","tag-performance","tag-portable-class-libraries","tag-releases","tag-ryujit","tag-visual-studio","tag-xamarin"],"acf":[],"blog_post_summary":"<p>At Build 2014 this week, we announced the next generation of .NET. The next generation will focus and deliver on two main themes: Core Innovation and cross-device apps. These themes are a direct result of your feedback, asking for new features in .NET and to make it easier to use .NET for all your apps. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/11288"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=493"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/493\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}