6. Core .NET
Next gen JIT (“RyuJIT”)
SIMD
Runtime Compilers
.NET Compiler Platform (“Roslyn”)
Languages innovation
Windows DesktopAzure and Windows Server
Universal projects
.NET NativeASP.NET updates
Windows Convergence
Native compilation Cross-devices
Xamarin partnership
Web apps
.NET support for
Azure Mobile Services
Cloud Services
Openness
Windows Store iOS and Android
.NET in devices and services
9. Symbol API
Language
Service
Compiler API
Compiler
Pipeline
Syntax Tree API
Binding and Flow
Analysis APIs
Emit API
Formatter
Colorizer
Outlining
NavigateTo
ObjectBrowser
CompletionList
FindAll
References
Rename
QuickInfo
SignatureHelp
ExtractMethod
GoToDefinition
Editand
Continue
Parser
Metadata
Import
Binder IL Emitter
Symbols
10. Symbol
API
Services
Compiler
Syntax Tree
API
Binding and Flow
Analysis APIs
Emit API
Scripting
API
Workspace API
Code Formatting Find All References Name Simplification …
Editor Services Code Actions Classification Completion …Outlining
12. Syntax Tree API – Nodes
CompilationUnit
TypeDeclaration
MethodDeclaration
class C
{
void M()
{
}
}// C
▫
ParameterList Block
var tree = CSharpSyntaxTree.ParseText("...");
13. Syntax Tree API – Tokens
CompilationUnit
TypeDeclaration
class C { MethodDeclaration }
EOF
void M ParameterList Block
( ) { }
class C
{
void M()
{
}
}// C
▫
14. Syntax Tree API – “Trivia”
CompilationUnit
TypeDeclaration
class C { MethodDeclaration }
EOF
void M ParameterList Block
( )
{ }
SP EOL EOL // C
SPx4 SP
EOL
EOL
EOLSPx4 EOL SPx4
class∙C
{
∙∙∙∙void∙M()
∙∙∙∙{
∙∙∙∙}
}// C
▫
19. public class Point(int x, int y)
{
public int X { get; } = x;
public int Y { get; } = y;
public double R { get; } = Math.Sqrt(x ^ x + y ^ y);
public Point() : this(0, 0)
{ }
public override string ToString()
{
return string.Format("({0},{1},{2})", X, Y, R);
}
}
20. var x = a?.b.c;
//left associative
var x = ((var tmp = a) == null ? null : tmp.b).c;
var x = a?.b?.c; //Changos!
(var tmp = a) == null ? null : tmp.b.c);
var x = a?.b.c;
//right associative
var x = ((var tmp = a) == null ? null : tmp.b.c);
Console.WriteLine(args.FirstOrDefault()?.Length ?? 0);
21. try
{
Task[] tasks = new Task[10];
for (int i = 0; i < 10; i++)
{
tasks[i] = Task.Factory.StartNew(() => DoSomeWork(10000000));
}
var res = await Task.WhenAll(tasks);
}
catch (AggregateException e) if (e.InnerExceptions.Count > 2)
{
await WriteStatus(“filtered exception");
}
finally
{
await WriteStatus(“finished");
}
25. “Our role is more important than ever before”
“We are required to innovate and deliver much faster”
“I need a cross-device development strategy”
“Open Source enriches the platform and the community
“…but I have existing applications to run and evolve”
26.
27. .NET API for Hadoop WebClient
.NET Compiler Platform ("Roslyn")
.NET Map Reduce API for Hadoop
.NET Micro Framework
ASP.NET MVC
ASP.NET Web API
ASP.NET Web Pages
ASP.NET SignalR
Composition (MEF2)
Entity Framework
Linq to Hive
MEF (Managed Extensibility Framework)
OWIN Authentication Middleware
Rx (Reactive Extensions)
Web Protection Library
Windows Azure .NET SDK
Windows Phone Toolkit
WnsRecipe
Mimekit Xamarin.Auth
Xamarin.Mobile
Couchbase for .NET
http://www.dotnetfoundation.org
@dotnetfdn // #dotnetfdn
Mailkit
System.Drawing
28. Choose your Editors
and Tools
Open Source
with Contributions Cross-PlatformOSS
Seamless transition
from on-premises to cloud
Faster Development CycleTotally Modular
Fast