[email protected] Openness .NET in devices and services Cloud Services .NET support for Azure Mobile Services Web apps ASP.NET updates Azure and Windows Server Windows Convergence Universal Windows apps Cross-devices Native compilation .NET Native Xamarin partnership Windows Desktop Windows Store Core .NET Runtime Next gen JIT (“RyuJIT”) SIMD Compilers .NET Compiler Platform (“Roslyn”) Languages innovation iOS and Android .NET 4.5.1 is now installed on 500+ million PCs! Wordament on .NET Native: Scenario Improvement (%) Cold Startup 39.32% Warm Startup 31.21% Memory Usage 12.68% Available for x64, ARM (x86 is coming) V1 is targeted at Store apps 1. Enable 2. Debug/test app public void NbodyCPUKernel_Vect(Particle[] A, ref Particle B, long numBodies) { Float_4 acc; acc.x = 0; acc.y = 0; acc.z = 0; acc.w = 0; // This loop is hot for (long j = 0; j < numBodies; j++) { Float_4 r; for (long j = 0; j < numBodies; j++) { Float_4 r; r.x = A[j].pos.x - B.pos.x; r.y = A[j].pos.y - B.pos.y; r.z = A[j].pos.z - B.pos.z; r.x = A[j].pos.x - B.pos.x; r.y = A[j].pos.y - B.pos.y; r.z = A[j].pos.z - B.pos.z; float distSqr = r.x * r.x + r.y * r.y + r.z * r.z; distSqr += softeningSquared; float invDist = 1.0f / (float)Math1.Sqrt(distSqr); float invDistCube = invDist * invDist * invDist; float distSqr = r.x * r.x + r.y * r.y + r.z * r.z; distSqr += softeningSquared; float s = fParticleMass * invDistCube; float invDist = 1.0f / (float)Math1.Sqrt(distSqr); float invDistCube = invDist * invDist * invDist; acc.x += r.x * s; acc.y += r.y * s; acc.z += r.z * s; } B.vel.x += acc.x * deltaTime; B.vel.y += acc.y * deltaTime; B.vel.z += acc.z * deltaTime; float s = fParticleMass * invDistCube; acc.x += r.x * s; acc.y += r.y * s; acc.z += r.z * s; B.vel.x *= dampening; B.vel.y *= dampening; B.vel.z *= dampening; B.pos.x += B.vel.x * deltaTime; B.pos.y += B.vel.y * deltaTime; B.pos.z += B.vel.z * deltaTime; } } http://msdn.com/dotnetn ative .NET Native FAQ .NET Native Deep Dive talk .NET Native Forum [email protected] MSIL bytecode Machine code Brand new just-in-time (JIT) compiler for .NET Significant application startup improvement —how fast the compiler generates code. —how fast the generated code executes. —how the generated code differs across architectures. —how throughput & CQ vary with different inputs to the compiler. Learn more about RyuJIT Download RyuJIT RyuJIT CTP1: The next-generation JIT compiler for .NET http://aka.ms/RyuJIT RyuJIT CTP2: Getting Ready for Prime-time Help us make RyuJIT better [email protected] Scalar SIMD (SSE2) Support SSE2, AVX and other vector instructions in .NET. For SSE2, an app can scale up 4X on a processor supporting SSE. For AVX, an app can scale up 8X on a processor supporting AVX. Developer preview available as part of RyuJIT CTP3. Length is fixed, but hardware dependent public struct Vector<T> where T : struct { public Vector(T value); public Vector(T[] values); public Vector(T[] values, int index); public static int Length { get; } public T this[int index] { get; } // With SIMD, these element wise operations are done in parallel: public static Vector<T> operator +(Vector<T> left, Vector<T> right); public static Vector<T> operator *(Vector<T> left, Vector<T> right); // ... } float[] values = GetValues(); float increment = GetIncrement(); float[] result = new float[values.Length] // Perform addition as manual loop: for (int i = 0; i < values.Length; i++) { values[i] += increment; } Vector<float> values = GetValues(); Vector<float> increment = GetIncrement(); // Perform addition as vector operation: Vector<float> result = values + increment; Unvectorized code adds one value at a time. Using Vector<T> you can add multiple values simultaneously. http://blogs.msdn.com/b/dotnet/ Communication Source code Cross-platform A great way to add core functionality to your app We maintain a curated list of supported packages Owner Packages Downloads Microsoft 926 58M Position Package Downloads .NET API for Hadoop WebClient Composition (MEF2) .NET Compiler Platform ("Roslyn") .NET Map Reduce API for Hadoop .NET Micro Framework ASP.NET SignalR Linq to Hive http://www.dotnetfoundation.org Windows Phone Toolkit Entity Framework ASP.NET Web Pages ASP.NET MVC ASP.NET Web API MEF (Managed Extensibility Framework) Rx (Reactive Extensions) Xamarin.Mobile Mimekit Mailkit Web Protection Library WnsRecipe Couchbase for .NET System.Drawing Xamarin.Auth OWIN Authentication Middleware Windows Azure .NET SDK Miguel de Icaza (Xamarin) Nigel Sampson (Compiled Experience) Laurent Bugnion (IdentityMine) Anthony van der Hoorn (Glimpse) Paul Betts (GitHub) Niels Hartvig (Umbraco) .NET Native • ARM & X64 available today (Developer Preview) • X86 coming • Autovectorization coming • Exploring additional scenarios based on customer feedback Next gen. JIT • X64 available today (DP) • Support for additional architectures coming SIMD • Support for SSE2 available today (DP) • AVX support coming Crossplatform • • Partnership with Xamarin X-plat portable class libraries .NET ecosystem • .NET Foundation • One Class Library • NuGet as the delivery mechanism Call To Action: Please try out the Developer Preview and give us feedback. Blog E-mail dotnet @dotnet MSDN Forums UserVoice http://aka.ms/RyuJITinfo http://aka.ms/RyuJIT http://aka.ms/SIMDInfo http://aka.ms/SIMD http://aka.ms/NETCompiler Platform http://roslyn.codeplex.com http://aka.ms/NetCo mpilerPlatformDownl oad http://aka.ms/azuremobiles ervicesnet http://aka.ms/VS2013 Update2 http://aka.ms/VS2013Upda te2Info http://aka.ms/VS2013 Update2 http://aka.ms/universalproj ects http://aka.ms/VS2013 Update2 http://aka.ms/dotnetnative http://aka.ms/dotnet nativedownload http://xamarin.com http://xamarin.com http://www.dotnetfoundati on.org The Present and Future of .NET in a World of Devices and Services The Next Generation of .NET for Building Device Applications What's New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond Strategies for Developing Cross-Device Applications with Visual Studio 2013 The Future of C# (“Roslyn”) Go Mobile with C# and Xamarin
© Copyright 2024