SlideShare a Scribd company logo
Managing the .NET
Compiler
Jason Bock
Practice 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
Parsing Symbols Binding Emitting
Compiler History
http://msdn.microsoft.com/en-US/roslyn
Compiler History
PDC 2008
http://channel9.msdn.com/Blogs/pdc2008/TL16
PDC 2010
http://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 ProjectTemplates
Roslyn SyntaxVisualizer
Demo: Building Code
Managing 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 code
compile
code
static analysis
tool
review results
Visual Studio Integration
write code
compile
code
static analysis
tool
review results
Visual Studio Integration
Demo: Creating Extensions
Managing 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 Bock
Practice Lead
Remember…
 https://github.com/JasonBock/
 http://www.slideshare.net/jasonbock/managing-the-net-
compiler-41569405
 References in the notes on this slide

More Related Content

PDF
The Web Becomes Graceful
PDF
遠端團隊專案建立與管理 remote team management 2016
PPTX
The Last Mile
PDF
What the web platform (and your app!) can learn from Node.js
PDF
ModemFrontEndops
PDF
Banquet 36
PDF
AtlasCamp 2014: Building a Production Ready Connect Add-On
KEY
Write php deploy everywhere
The Web Becomes Graceful
遠端團隊專案建立與管理 remote team management 2016
The Last Mile
What the web platform (and your app!) can learn from Node.js
ModemFrontEndops
Banquet 36
AtlasCamp 2014: Building a Production Ready Connect Add-On
Write php deploy everywhere

What's hot (18)

PPTX
Backbone the Good Parts
PDF
CCSP 2012F 早點下班的工具
PDF
Banquet 50
PDF
I love Automation
ZIP
Practical project automation
PDF
Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)
PDF
Webové aplikace v JavaScriptu
PDF
What makes me "Grunt"?
PDF
Web Engineering
PPTX
Drive chrome(headless) with puppeteer
PPTX
WebUSB
PDF
Haibu: dev deployment is fast and easy again
PDF
How to Measure Everything: A Million Metrics Per Second with Minimal Develope...
PDF
Moving to the next neth server ui by @davideprincipi #neth17
PDF
Django & Buildout (en)
PDF
REST to JavaScript for Better Client-side Development
PDF
広がりを見せるAndroidプラットフォーム
PDF
ServiceWorker: New game changer is coming!
Backbone the Good Parts
CCSP 2012F 早點下班的工具
Banquet 50
I love Automation
Practical project automation
Ansibleではじめるサーバー・ネットワークの自動化(2019/02版)
Webové aplikace v JavaScriptu
What makes me "Grunt"?
Web Engineering
Drive chrome(headless) with puppeteer
WebUSB
Haibu: dev deployment is fast and easy again
How to Measure Everything: A Million Metrics Per Second with Minimal Develope...
Moving to the next neth server ui by @davideprincipi #neth17
Django & Buildout (en)
REST to JavaScript for Better Client-side Development
広がりを見せるAndroidプラットフォーム
ServiceWorker: New game changer is coming!
Ad

Similar to Managing the .NET Compiler (20)

PDF
Dotnet basics
PPTX
Welcome to the .Net
DOCX
Interview Question of Aspdotnet
PPT
Dot Net Framework
PDF
Dot net interview_questions
PDF
Dot net interview_questions
PPTX
Dotnet Basics Presentation
PPTX
Get the Gist: .NET
PPTX
Visual Basic User Interface-VI
PPTX
.NET compiler platform codename Roslyn
PPTX
Codename: Roslyn
PPTX
.NET framework - Małgorzata Borzęcka
PPTX
.Net framework
PDF
Dot net interview_questions
PDF
Dot net-interview-questions-and-answers part i
PPTX
Dot net-interview-questions-and-answers part i
PPTX
Introduction To programming.pptx
PDF
tybsc it asp.net full unit 1,2,3,4,5,6 notes
PPTX
Monkey space 2013
PPT
Introduction to ,NET Framework
Dotnet basics
Welcome to the .Net
Interview Question of Aspdotnet
Dot Net Framework
Dot net interview_questions
Dot net interview_questions
Dotnet Basics Presentation
Get the Gist: .NET
Visual Basic User Interface-VI
.NET compiler platform codename Roslyn
Codename: Roslyn
.NET framework - Małgorzata Borzęcka
.Net framework
Dot net interview_questions
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
Introduction To programming.pptx
tybsc it asp.net full unit 1,2,3,4,5,6 notes
Monkey space 2013
Introduction to ,NET Framework
Ad

Recently uploaded (20)

PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administraation Chapter 3
PPTX
Transform Your Business with a Software ERP System
PPTX
Introduction to Artificial Intelligence
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
2025 Textile ERP Trends: SAP, Odoo & Oracle
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How Creative Agencies Leverage Project Management Software.pdf
Essential Infomation Tech presentation.pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administraation Chapter 3
Transform Your Business with a Software ERP System
Introduction to Artificial Intelligence
Odoo Companies in India – Driving Business Transformation.pdf
PTS Company Brochure 2025 (1).pdf.......
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Upgrade and Innovation Strategies for SAP ERP Customers
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How to Migrate SBCGlobal Email to Yahoo Easily
Wondershare Filmora 15 Crack With Activation Key [2025
Reimagine Home Health with the Power of Agentic AI​
Which alternative to Crystal Reports is best for small or large businesses.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Managing the .NET Compiler

Editor's Notes

  • #5: Traditionally, compilers have been black boxes. You don’t have access to their internals.
  • #6: This is definitely true of the .NET world. You give the compiler a bunch of code files and other assets, and the compiler magically turns that into a file that contains executable code.
  • #7: You have very little control over the current .NET compiler. You can pass in some switches, but they’re not very interactive.
  • #8: This is sad, because the compiler generates a lot of useful information about your code. Other tools have to, in a sense, create their own compilers to provide their great functionality. They’re forced to duplicate what’s already been done. But what happens if they don’t do the exact same thing that the MS compiler does?
  • #9: Also, this has limited MS in terms of the features they can add to C# and their toolchain.
  • #10: Let’s open up the compiler and provide that information and functionality to every developer.
  • #11: All the parsing, emitting. Etc logic should be available to other tools to do all sorts of crazy, interesting stuff.
  • #12: That’s the intent of Project Roslyn: to provide all of that to you as a .NET API.
  • #13: Project Roslyn has had a LONG history. But finally….
  • #14: MS released Roslyn as Micosoft.CodeAnalysis, and surprisingly, they OSSed all of the code. So now the compilers in .NET are OSS. AWESOME!
  • #15: And…now it’s on GitHub.
  • #16: It’s already powering a great tool to view the .NET framework source code
  • #17: And there are already proposals for new language features
  • #18: When you grab the bits, you have some choices in terms of what you can do to integrate and use Roslyn.
  • #20: It’s already powering a great tool to view the .NET framework source code
  • #37: References Automated code quality testing using Roslyn - http://www.novanet.no/blog/claus-asbjorn-sorensen/dates/2013/2/automated-code-quality-testing-using-roslyn/ Building Visual Studio Extensions with Roslyn - http://www.infoq.com/news/2011/10/Rosyln-Extensions C# compiler improvements - https://improvecscompiler.codeplex.com/documentation Community Involvement and Roslyn - http://thebillwagner.com/blog/community-involvement-and-roslyn Compile C# Expressions Without Using the Scripting API - http://mhusseini.wordpress.com/2014/05/23/roslyn-compile-c-expressions-without-using-the-scripting-api/ Going Deeper with Project Roslyn: Exposing the C# and VB compiler’s code analysis - http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Roslyn How Microsoft’s Next-Gen Compiler Project Can Improve Your Code - http://msdn.microsoft.com/en-us/magazine/dn296510.aspx In bed with Roslyn - http://www.mindscapehq.com/blog/index.php/2011/10/20/in-bed-with-roslyn/ Implementing a Code Action using Roslyn - http://blogs.msdn.com/b/csharpfaq/archive/2012/02/06/implementing-a-code-action-using-roslyn.aspx Interface implementation delegation - http://msmvps.com/blogs/matthieu/archive/2014/02/26/interface-implementation-delegation.aspx Lap Around Roslyn CTP: Introduction - http://blogs.microsoft.co.il/blogs/sasha/archive/2011/10/21/lap-around-roslyn-ctp-introduction.aspx Lap Around Roslyn CTP: Syntax Rewriting - http://blogs.microsoft.co.il/blogs/sasha/archive/2011/10/23/lap-around-roslyn-ctp-syntax-rewriting.aspx Lap Around Roslyn CTP: Syntax Rewriting with Symbol Information - http://blogs.microsoft.co.il/blogs/sasha/archive/2011/10/25/lap-around-roslyn-ctp-syntax-rewriting-with-symbol-information.aspx Lap Around Roslyn CTP: Syntax Analysis and Flow Analysis - http://blogs.microsoft.co.il/sasha/2011/10/27/lap-around-roslyn-ctp-syntax-analysis-and-flow-analysis/ Modifying Code With Project Roslyn - http://magenic.com/Blog/ModifyingCodewithProjectRoslyn.aspx Microsoft “Roslyn” CTP - http://msdn.microsoft.com/en-us/roslyn MSR Faculty Summit 2011: Refactoring with Roslyn - http://research.microsoft.com/apps/video/?id=152281 Query Methods in Roslyn Syntax API - http://debugmode.net/2011/10/25/query-methods-in-roslyn-syntax-api/ Replacing a Class at Runtime Using Ninject and Roslyn Part 1: The Goal - http://blog.zerosharp.com/replacing-a-class-at-runtime-using-ninject-and-roslyn-part-1/ Part 2: The Solution - http://blog.zerosharp.com/replacing-a-class-at-runtime-using-ninject-and-roslyn-part-2/ Part 3: Dependency Injection - http://blog.zerosharp.com/replacing-a-class-at-runtime-using-ninject-and-roslyn-part-3/ Part 4: Roslyn - http://blog.zerosharp.com/replacing-a-class-at-runtime-using-ninject-and-roslyn-part-4/ The Roslyn Preview Is Now Available - http://blogs.msdn.com/b/ericlippert/archive/2011/10/19/the-roslyn-preview-is-now-available.aspx Roslyn Project Overview Document - http://go.microsoft.com/fwlink/?LinkID=230702 Roslyn Syntax Visualizers - http://blogs.msdn.com/b/visualstudio/archive/2011/10/19/roslyn-syntax-visualizers.aspx scriptcs - http://scriptcs.net/ scriptcs – Living on the edge in C# without a project on the wings of Roslyn and Nuget - http://codebetter.com/glennblock/2013/02/28/scriptcs-living-on-the-edge-in-c-without-a-project-on-the-wings-of-roslyn-and-nuget/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+CodeBetter+%28CodeBetter.Com%29 Scripting and Code Analysis using Roslyn – And a first look at Roslyn CTP - http://www.amazedsaint.com/2011/10/c-vnext-roslynan-introduction-and-quick.html Unit Testing Roslyn-Based Extensions - http://magenic.com/Blog/PostId/20/unit-testing-roslyn-based-extensions