Managing the .NET Compiler
Jason BockPractice Lead
»http://www.magenic.com»http://www.jasonbock.net»https://www.twitter.com/jasonbock»https://www.github.com/jasonbock»jasonb@magenic.com
Personal Info
»Compiler History»Trees»Visual Studio Integration
Overview
Compiler History
http://www.paperchase.co.uk/content/ebiz/paperchase/invt/00477868/00477868_large.jpg
Compiler History
csc.exe YourAssembly.dll
Compiler History
csc.exe YourAssembly.dll
44 switches
http://msdn.microsoft.com/en-us/library/6ds95cz0.aspx
Compiler History
Resharper
CodeRush
SharpDevelop
NCover
NDepend
Compiler History
Features
Compiler History
http://www.springlakeranch.ca/images/_aug09/whitebox.jpg
Compiler History
csc.exe YourAssembly.dll
ParsingSymbol
sBinding
Emitting
Compiler History
http://msdn.microsoft.com/en-US/roslyn
Compiler History
PDC 2008http://channel9.msdn.com/Blogs/pdc2008/TL16
PDC 2010http://channel9.msdn.com/Events/PDC/PDC10/FT09
BUILD (2011)http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T
Compiler History
April 4th, 2014…
http://roslyn.codeplex.com
Compiler History
January 14th, 2015…
https://github.com/dotnet/roslyn
Compiler History
http://referencesource.microsoft.com/
Compiler History
https://github.com/dotnet/roslyn/wiki/Languages-features-in-C%23-6-and-VB-14
Compiler History
VS2015 Ultimate Preview
VS2015 SDK
Roslyn SDK Project Templates
Roslyn Syntax Visualizer
Demo: Building CodeManaging the .NET Compiler
Trees
http://digitalblasphemy.com/preview.shtml?i=redandgold1
Trees
namespace BuildingCode
{
public interface IWorker
{
double Work(double x);
}
}
Visual Studio Integration
[OperationContract(IsOneWay = true)]
public string MyOperation() { return null; }
Visual Studio Integration
write codecompile
code
static analysis
tool
review results
Visual Studio Integration
write codecompile
code
static analysis
tool
review results
Visual Studio Integration
Demo: Creating ExtensionsManaging the .NET Compiler
Be Excited!
hahah I fixed the C# compiler #kthxbai
https://twitter.com/filip_woj/status/452257768389369856/photo/1
Be Excited!
https://twitter.com/filip_woj/status/452497273188929536/photo/1
LOL# is born #Roslyn
Be Excited!
http://quickvb.codeplex.com/
QuickVB
Be Excited!
http://scriptcs.net/
Be Excited!
http://www.asp.net/vnext
Be Excited!
http://lh3.googleusercontent.com/-Qh6FqwNjyW4/TdTYLODOL1I/AAAAAAAAAOc/CO-epEsKL4A/tappy.JPG
Managing the .NET Compiler
Jason BockPractice Lead
Remember… https://github.com/JasonBock/ http://www.slideshare.net/jasonbock/managing-the-
net-compiler-41569405 References in the notes on this slide