SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Setup Visual Studio with Roslyn demo C:rogram Files (x86)ono-2.8insharp.bat ZoomIt
WARNING: NOT A NORMAL DEV4DEVS TALK Codename ‘Roslyn’  robertmaclean www.sadev.co.za ∞ @rmaclean ∞ robert@sadev.co.za
What is ‘Roslyn’? Project that will deliver the new VB & C♯ compilers and language services
C♯ Compiler Themes C♯ 1.0 : New language for a new platform C♯ 2.0 : Generics, strong typing C♯ 3.0 : Declarative programming C♯ 4: Dynamic programming C♯ “5” : Asynchronous programming Note :  C♯ themes != .NET Framework themes C♯ releases != .NET Framework releases C♯ “5” is not an official name
Problem with current compiler Can’t consume from managed code ,[object Object]
PowerShell re-develops the compiler
Visual Studio re-developed the compiler.NET Assemblies Source Files Compiler (C++)
Roslyn opens the box  Compiler API REPL  (Read-Eval-Print-Loop) Hosting in other contexts .NET Assemblies Source Files Compiler C# for C# VB for VB
What do we get with Roslyn? Managed Compiler VB compiler written in VB C♯ compiler written in C♯ Compiler API REPL Environment “Interactive Window”
Compiler API? Syntax Tree Emit API Source Code Compiler API Symbol API Binding & Flow API
Syntax Tree - Nodes class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration MethodDeclaration ParameterList Block
Syntax Tree - Tokens class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration EOF MethodDeclaration class C { } ParameterList void Block M ( ) { }
Syntax Tree - Trivia class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration EOF MethodDeclaration class C { } nbsp EOL EOL //C EOL ParameterList void nbsp Block nbsp.4 M ( ) EOL nbsp.4 { EOL nbsp.4 } EOL
Where does Compiler API take us? Binding & Flow API Symbol API Syntax Tree What the IDE understands == The compiler understands

Weitere ähnliche Inhalte

Was ist angesagt?

[CLPE] Novidades do .net Framework 4.0
[CLPE] Novidades do .net Framework 4.0[CLPE] Novidades do .net Framework 4.0
[CLPE] Novidades do .net Framework 4.0
Felipe Pimentel
 
Zero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutesZero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutes
Jeremy Kendall
 

Was ist angesagt? (20)

The ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standardThe ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standard
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Why is cold fusion better than c#
Why is cold fusion better than c#Why is cold fusion better than c#
Why is cold fusion better than c#
 
The windows socket
The windows socketThe windows socket
The windows socket
 
Windows batch scripting
Windows batch scriptingWindows batch scripting
Windows batch scripting
 
[CLPE] Novidades do .net Framework 4.0
[CLPE] Novidades do .net Framework 4.0[CLPE] Novidades do .net Framework 4.0
[CLPE] Novidades do .net Framework 4.0
 
Windows script host
Windows script hostWindows script host
Windows script host
 
Electron
ElectronElectron
Electron
 
How to Dockerize, Automate the Build and Deployment Process for Flutter?
How to Dockerize, Automate the Build and Deployment Process for Flutter?How to Dockerize, Automate the Build and Deployment Process for Flutter?
How to Dockerize, Automate the Build and Deployment Process for Flutter?
 
Php vs asp.net most valuable differences to learn and select the best one f...
Php vs asp.net   most valuable differences to learn and select the best one f...Php vs asp.net   most valuable differences to learn and select the best one f...
Php vs asp.net most valuable differences to learn and select the best one f...
 
Universal apps on Windows 10 - Intro (TechDays Sweden 2015)
Universal apps on Windows 10 - Intro (TechDays Sweden 2015)Universal apps on Windows 10 - Intro (TechDays Sweden 2015)
Universal apps on Windows 10 - Intro (TechDays Sweden 2015)
 
Zero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutesZero to Zend Framework in 10 minutes
Zero to Zend Framework in 10 minutes
 
Universal apps on Windows 10 - Deep dive (TechDays Sweden 2015)
Universal apps on Windows 10 - Deep dive (TechDays Sweden 2015)Universal apps on Windows 10 - Deep dive (TechDays Sweden 2015)
Universal apps on Windows 10 - Deep dive (TechDays Sweden 2015)
 
Developing Mobile Application using Phonegap
Developing Mobile Application using PhonegapDeveloping Mobile Application using Phonegap
Developing Mobile Application using Phonegap
 
Improve your web and app development with the Symfony3 framework.
Improve your web and app development with the Symfony3 framework.Improve your web and app development with the Symfony3 framework.
Improve your web and app development with the Symfony3 framework.
 
.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
 
Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#
 
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn [INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
 
A Brief Introduction to Zend_Form
A Brief Introduction to Zend_FormA Brief Introduction to Zend_Form
A Brief Introduction to Zend_Form
 
San Diego ASP.NET Meeting Oct 21st
San  Diego  ASP.NET Meeting Oct 21stSan  Diego  ASP.NET Meeting Oct 21st
San Diego ASP.NET Meeting Oct 21st
 

Andere mochten auch

Andere mochten auch (8)

Lightswitch
LightswitchLightswitch
Lightswitch
 
Windows Azure Platform Overview
Windows Azure Platform OverviewWindows Azure Platform Overview
Windows Azure Platform Overview
 
Windows 8
Windows 8Windows 8
Windows 8
 
Welcome to the cloud
Welcome to the cloudWelcome to the cloud
Welcome to the cloud
 
Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
How to give a great presentation
How to give a great presentationHow to give a great presentation
How to give a great presentation
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 

Ähnlich wie Codename: Roslyn

Csharp Hands On Lab Paul Yao
Csharp Hands On Lab Paul YaoCsharp Hands On Lab Paul Yao
Csharp Hands On Lab Paul Yao
Mamgmo Magnda
 
LECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptxLECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptx
AOmaAli
 

Ähnlich wie Codename: Roslyn (20)

01 Introduction to programming
01 Introduction to programming01 Introduction to programming
01 Introduction to programming
 
Introduction to Programming Lesson 01
Introduction to Programming Lesson 01Introduction to Programming Lesson 01
Introduction to Programming Lesson 01
 
00 Intro
00  Intro00  Intro
00 Intro
 
Programming in c plus plus2
Programming in c plus plus2Programming in c plus plus2
Programming in c plus plus2
 
01. Introduction to Programming
01. Introduction to Programming01. Introduction to Programming
01. Introduction to Programming
 
Advance Android Application Development
Advance Android Application DevelopmentAdvance Android Application Development
Advance Android Application Development
 
Introduction to c
Introduction to cIntroduction to c
Introduction to c
 
01. introduction to-programming
01. introduction to-programming01. introduction to-programming
01. introduction to-programming
 
Csharp Hands On Lab Paul Yao
Csharp Hands On Lab Paul YaoCsharp Hands On Lab Paul Yao
Csharp Hands On Lab Paul Yao
 
LECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptxLECTURE 1 - Introduction to Programming.pptx
LECTURE 1 - Introduction to Programming.pptx
 
C++ Programming Chapter 01
C++ Programming Chapter 01C++ Programming Chapter 01
C++ Programming Chapter 01
 
C PROGRAMMING
C PROGRAMMINGC PROGRAMMING
C PROGRAMMING
 
C# tutorial
C# tutorialC# tutorial
C# tutorial
 
C# with Renas
C# with RenasC# with Renas
C# with Renas
 
Intro to Building Mobile Apps with Xamarin
Intro to Building Mobile Apps with XamarinIntro to Building Mobile Apps with Xamarin
Intro to Building Mobile Apps with Xamarin
 
.Net
.Net.Net
.Net
 
C intro
C introC intro
C intro
 
Synapse india dotnet framework development or c
Synapse india dotnet framework development or cSynapse india dotnet framework development or c
Synapse india dotnet framework development or c
 
The Business of Microsoft Silverlight
The Business of Microsoft SilverlightThe Business of Microsoft Silverlight
The Business of Microsoft Silverlight
 
C compiler-ide
C compiler-ideC compiler-ide
C compiler-ide
 

Mehr von Robert MacLean

Mehr von Robert MacLean (20)

14 things you need to be a successful software developer (v3)
14 things you need to be a successful software developer (v3)14 things you need to be a successful software developer (v3)
14 things you need to be a successful software developer (v3)
 
Git
GitGit
Git
 
OWASP TOP 10
OWASP TOP 10OWASP TOP 10
OWASP TOP 10
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
Looking at the Vue
Looking at the VueLooking at the Vue
Looking at the Vue
 
Kotlin 101
Kotlin 101Kotlin 101
Kotlin 101
 
Features of Kotlin I find exciting
Features of Kotlin I find excitingFeatures of Kotlin I find exciting
Features of Kotlin I find exciting
 
JavaScript Gotchas
JavaScript GotchasJavaScript Gotchas
JavaScript Gotchas
 
DevConf Survival Guide
DevConf Survival GuideDevConf Survival Guide
DevConf Survival Guide
 
The state of testing @ Microsoft
The state of testing @ MicrosoftThe state of testing @ Microsoft
The state of testing @ Microsoft
 
Visual Studio ❤ JavaScript
Visual Studio ❤ JavaScriptVisual Studio ❤ JavaScript
Visual Studio ❤ JavaScript
 
What is new in C# 6?
What is new in C# 6?What is new in C# 6?
What is new in C# 6?
 
Putting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/Test
 
A Developer Day 2014 - Durban
A Developer Day 2014 - Durban A Developer Day 2014 - Durban
A Developer Day 2014 - Durban
 
Agile lessons learned in the Microsoft ALM Rangers
Agile lessons learned in the Microsoft ALM RangersAgile lessons learned in the Microsoft ALM Rangers
Agile lessons learned in the Microsoft ALM Rangers
 
Hour of code - Train the trainer
Hour of code - Train the trainerHour of code - Train the trainer
Hour of code - Train the trainer
 
Building services for apps on a shoestring budget
Building services for apps on a shoestring budgetBuilding services for apps on a shoestring budget
Building services for apps on a shoestring budget
 
3 things your app API is doing WRONG
3 things your app API is doing WRONG3 things your app API is doing WRONG
3 things your app API is doing WRONG
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
LightSwitch
LightSwitchLightSwitch
LightSwitch
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Codename: Roslyn

  • 1. Setup Visual Studio with Roslyn demo C:rogram Files (x86)ono-2.8insharp.bat ZoomIt
  • 2. WARNING: NOT A NORMAL DEV4DEVS TALK Codename ‘Roslyn’ robertmaclean www.sadev.co.za ∞ @rmaclean ∞ robert@sadev.co.za
  • 3. What is ‘Roslyn’? Project that will deliver the new VB & C♯ compilers and language services
  • 4. C♯ Compiler Themes C♯ 1.0 : New language for a new platform C♯ 2.0 : Generics, strong typing C♯ 3.0 : Declarative programming C♯ 4: Dynamic programming C♯ “5” : Asynchronous programming Note : C♯ themes != .NET Framework themes C♯ releases != .NET Framework releases C♯ “5” is not an official name
  • 5.
  • 7. Visual Studio re-developed the compiler.NET Assemblies Source Files Compiler (C++)
  • 8. Roslyn opens the box Compiler API REPL (Read-Eval-Print-Loop) Hosting in other contexts .NET Assemblies Source Files Compiler C# for C# VB for VB
  • 9. What do we get with Roslyn? Managed Compiler VB compiler written in VB C♯ compiler written in C♯ Compiler API REPL Environment “Interactive Window”
  • 10. Compiler API? Syntax Tree Emit API Source Code Compiler API Symbol API Binding & Flow API
  • 11. Syntax Tree - Nodes class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration MethodDeclaration ParameterList Block
  • 12. Syntax Tree - Tokens class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration EOF MethodDeclaration class C { } ParameterList void Block M ( ) { }
  • 13. Syntax Tree - Trivia class C { void M() { } } // C ❏ CompilationUnit TypeDeclaration EOF MethodDeclaration class C { } nbsp EOL EOL //C EOL ParameterList void nbsp Block nbsp.4 M ( ) EOL nbsp.4 { EOL nbsp.4 } EOL
  • 14. Where does Compiler API take us? Binding & Flow API Symbol API Syntax Tree What the IDE understands == The compiler understands
  • 15. What about use normal developers? Where would a Dev4Dev’s talk be without a demo? Problem – NO ROSLYN BITS ARE PUBLIC! Mono to the rescue!
  • 16. When will see ‘Roslyn’ then? Currently in development V1 features locked down Been around building 41 since at least 2008 Nothing official 19 July 2011 - Karen Ng: “To some degree, soon” API out BEFORE product
  • 17. Sources and further reading Get slides & demos at www.sadev.co.za http://stackoverflow.com/questions/4222524/what-would-you-do-with-compiler-as-a-service http://codebetter.com/patricksmacchia/2010/05/31/c-5-and-meta-programming/ http://research.microsoft.com/en-us/events/fs2011 http://social.msdn.microsoft.com/Forums/en-US/async/thread/03a51936-b4fd-4814-9161-46544eda63cf/ http://blogs.msdn.com/b/ericlippert/archive/2010/12/16/hiring-for-roslyn.aspx http://blog.functionalfun.net/2008/10/dynamic-future-of-c-40.html http://channel9.msdn.com/Shows/Checking-In-with-Erik-Meijer/Checking-In-Eric-Lippert-On-Compiler-Evolution-Designing-C-and-Blogging http://castroller.com/Podcasts/NetRocks/2230612-Eric%20Lippert%20Talks%20About%20Project%20Roslyn http://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-Questions-and-Answers http://blogs.msdn.com/b/lisa/archive/2011/03/29/teched-middle-east-2011.aspx http://www.mono-project.com/CsharpRepl http://www.sharpcrafters.com

Hinweis der Redaktion

  1. Mono: C:\\Program Files (x86)\\Mono-2.8\\bin\\gsharp