36
Managing the .NET Compiler Jason Bock Practice Lead

Managing the .NET Compiler

Embed Size (px)

Citation preview

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»[email protected]

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

*

2 a

Trees

namespace BuildingCode

{

public interface IWorker

{

double Work(double x);

}

}

Trees

Trees

Trees

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