Académique Documents
Professionnel Documents
Culture Documents
Agenda
What new in .NET 4.6 and VS 2015
Compiling .NET applications
RyuJIT next generation of JIT Compiler
.NET Native new way of compilation
.NET Native Demo
Runtime directive in .NET Native
Migration to .NET Native
Summary
.NET Core
.NET
Innovation
Open Source
CrossPlatform
.NET 2015
WPF
Windows
Forms
ASP.NET
(4 & 5)
ASP.NET 5
Universal
Windows Apps
.NET Core 5
.NET Native
CoreCLR
Shared
Runtime
components
RyuJIT + SIMD
Garbage
Collector
Libraries
Base class
libraries
NuGet
packages
Compilers
.NET Compiler Platform
(Roslyn)
Languages innovation
e
m
i
t
n in
o
i
t
u
l
Evo
.NET
Framework
4
.NET
Framework
4.5
.NET
Framework
4.5.1
.NET
Framework
4.5.2
HDPI Improvements
Debugging
UI Debugging Tools for Xaml, Debugger-Integrated Diagnostic Tools
Diagnostics
.NET Compiler
Platform (Roslyn)
FROM
C#, VB
Source code
.exe/.dil
IL assemblies
Isolated/closed compilers
Hard to extend dev experience
TO
API: open platform
Rich IDE experiences/refactoring
Code analysis
Custom diagnostics
Open Source compilers
C#, VB
Source code
.exe/.dil
IL assemblies
.NET Compiler
Platform
(Roslyn)
New public preview today! (April
2014)
Scenarios/usage
cases
C#
VB
API
VS dev experience
extensibility
OS
S
Open Source
http://aka.ms/NETCompilerPlatform
Universal Windows
Platform
Universal Windows
Platform
Shared across Windows and
Windows Phone apps
ASP.NET 5.0
Cloud-ready
Leaner, faster, simpler
Designed from top to bottom to
be ready for the cloud and crossplatform deployments
.NET Cross-Platform
Mobile apps
.NET
Xamarin
Unity
ASP.NET 5
.NET Core
Windows
Linux
Mac OS X
Mobile Development
and .NET/Xamarin
partnership
Available Now!
.NET Core
Preview
WnsRecipe
ASP.NET
5
.NET Core 5
MSBuild
Openness
Community
Rapid
innovation
Kudu
Cecil
NuGet
Xamarin.Mobile System.Drawing
ASP.NET MVC
ASP.NET Web API Mimekit Mailkit Xamarin.Auth
ASP.NET SignalR
Orchard CMS
http://www.dotnetfoundation.org
@dotnetfdn
Orleans
Rx
(Reactive Extensions)
JIT Compiler
NGen.exe
It performs the conversion from MSIL to
native code before rather than while running
the application
It compiles entire assembly at a time, rather
than a method at a time
It persist the generated code in the Native
Image Cache as file on the disk
32JIT
RyuJIT the same code base
as 32JIT
RyuJIT for 64 bit architecture
RyuJIT app 30% faster than
32JIT
</runtime>
set an environment variable: COMPLUS_useLegacyJit=1
for entire machine, set the registry key
HKLM\SOFTWARE\Microsoft\.NETFramework\useLegacyJit to the string "*".
.NET Native
Next Generation Compiler in the Cloud for
Store Apps
Provides converged developer experience
for .NET across devices
Uses lean runtime and VC++ optimizer for
fast code execution and reduced
memory usage
Developer workflow
Create a C#/VB
Universal
Windows Project
Test Scenarios
Debug x86|x64|ARM
Release x86|x64|ARM
Developer workflow
Create a C#/VB
Universal
Windows Project
Test Scenarios
Debug x86|x64|ARM
Release x86|x64|ARM
Upload
Release
.appxupload
filesstore-side
to the Store
Uses
Native
Uses .NET
AppLocal
CoreCLR
runtime
Package
revision
istoolchain
reserved
for
Side-load
Release AppX packages
compilation
WinMetadata\Windows.winmd
for avoiding JIT
failures
.NET references are copied local to the package
Consumer Devices install
.NET Native enabled
AppX packages
AnyCPU
Release
AppX packages defaulted to .NET Native
Used for enterprise/side-loading scenarios
Packages in .appxupload are MSIL
Store will reject .NET Native package submissions
specifications
Developers can change policy to decrease app footprint
Control library authors
Use rd.xml as an embedded resource to specify
types/properties that are used via Reflection
Runtime Directives
Demo
Release
Issues specific to .NET Native can be better diagnosed with .NET Native
<EnableDotNetNative>False</EanableDotNetNative>
cloud
System.Numerics.Vector.dll, etc.
Native references
Windows or Windows Phone 8.1 component
Reference the Visual Studio 2013 CRT packaged as Universal Windows
App package
Universal Windows App competent
Reference the Visual Studio 2015 CRT package
Your app can use both sets of references!
Summary
Precompilation technology
Superior performance like C++
Productivity Development like C#
Optimized app memory usage
Only Windows Store App for now.
.NET Core
.NET
Innovation
Open Source
CrossPlatform