SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Die .NET Compiler Plattform 
Roslyn 
Christian Giesswein 
@giessweinweb
About Me 
• Ing. Christian Giesswein, BSc. 
Christian@giesswein-apps.at 
www.giesswein-apps.at 
• Gründer von Giesswein-Apps 
• Individualentwicklung, Consulting und Trainings 
• Die bunte Welt von C#/.NET 
• C#, WCF, WPF, ADO.NET, Entity Framework, ASP.NET.. 
• OS-Entwicklung (https://github.com/giessweinapps) 
• osm2mssql – OpenStreetMap für MS-SQL 
• MonoDebugger für Visual Studio 
• TfsDashboard
Die Frage des Tages 
„Was mache ich als Entwickler damit?“ 
oder… 
„Was mach ich überhaupt hier?“
csc.exe 
• csc.exe - CSharpCompiler.exe 
• vbc.exe – VisualBasicCompiler.exe 
C# / VB.NET Code 
Compiler 
(csc.exe/vbc.exe) 
Common 
Intermediate 
Langue Code (CIL) 
• C:WindowsMicrosoft.NETFramework64v4.0.30319
Roslyn 
• Die neue Compiler-Plattform von Microsoft 
• Open-Source https://roslyn.codeplex.com/ 
• Die Zukunft für uns C# und VB.NET - Entwickler 
• C:Program Files (x86)MSBuild14.0Bin
Open-Source bedeutet… 
• Ich geh mit meinem Visual Studio.. 
• … und bau mir mal eben den Compiler von C# 
• … studiere wie der Compiler funktioniert 
• Microsoft öffnet sich für andere 
Betriebssysteme: Linux, Mac OS 
• „Mono“ profitiert von Roslyn seit Anfang an 
• Die Community hat die Möglichkeit 
Verbesserungen einzubringen und mitzuwirken
C# 6.0 Was kommt auf uns zu? 
• Auto-Property Verbesserungen 
• Expressions für Properties und Methoden 
• Using static 
• Null-Conditional Operator 
• String Interpolation 
• NameOf-Erweiterung 
• Index initializers 
• Exception Filters 
• Await in catch/finally
VB.NET 
• Auch VB.NET erhält Verbesserungen 
• Roadmap zeigt welche Änderungen 
wahrscheinlich sind 
• Roadmap hat sich über das Jahr gesehen recht stark 
verschoben 
• Schwerpunkt liegt auf C# 
• https://roslyn.codeplex.com/wikipage?title=Langua 
ge%20Feature%20Status&referringTitle=Document 
ation
Compiler-as-a-service 
• „Compiler-as-a-service“ 
• Das gesamte (neuere) Tooling baut auf Roslyn auf 
• Codeanalyse mit Roslyn 
• http://referencesource.microsoft.com/ 
• Alles wird NuGet – … warum nicht auch Teile des 
Compiler?
Compiler-as-a-Service
Installation 
• Was brauch ich für eigene Code-Analysen? 
• Visual Studio 2015 SDK 
• Entweder lokal oder in der Cloud 
• SDK Templates für Code-Analysen mit Roslyn 
• https://visualstudiogallery.msdn.microsoft.com/849f3ab1- 
05cf-4682-b4af-ef995e2aa1a5 
• .NET Compiler Platform Syntax Visualizer 
• https://visualstudiogallery.msdn.microsoft.com/70e184da- 
9b3a-402f-b210-d62a898e2887
Roslyn – Unter der Motorhaube 
• Roslyn wurde mit sehr viel Asynchronität und 
Parallelität versehen: 
• TPL und async/await 
• Um die Synchronisation von Daten zu 
erleichtern sind alle Datenstrukturen 
unveränderlich(=immutable).
Eigene Diagnosen und Fehlerbehebungen 
• Mit Roslyn wurde die Grundlage geschaffen, 
dass jeder Entwickler und jedes Entwicklerteam 
Ihre eigenen Diagnosen implementiert 
• Visual Studio spielt dabei Out-Of-The-Box mit
Zusammenfassung 
• Mit Roslyn kommt ein Compiler der in 
C#/VB.Net geschrieben ist 
• Wird mit VS 2015 ausgeliefert 
• Vollen Einblick in den Quellcode 
• Neue Features in den Programmiersprachen 
• Eigene Analysen per Roslyn/NuGet möglich
Twitter: @giessweinweb 
Email: christian@giesswein-apps.at 
Web: www.giesswein-apps.at 
… oder persönlich :-) 
Vielen Dank für Ihre Aufmerksamkeit

Weitere ähnliche Inhalte

Andere mochten auch

Texto academico.docx elvira
Texto academico.docx elviraTexto academico.docx elvira
Texto academico.docx elviraluiscarlos09
 
Infoxicación: ¿Cómo evitarla?
Infoxicación: ¿Cómo evitarla?Infoxicación: ¿Cómo evitarla?
Infoxicación: ¿Cómo evitarla?julitotolava
 
Respuesta a Rodri
Respuesta a RodriRespuesta a Rodri
Respuesta a RodriFabi Basin
 
EL INTERNET
EL INTERNET EL INTERNET
EL INTERNET lamejoru
 
Practica 8 intoxicacion por mercurio
Practica 8 intoxicacion por mercurioPractica 8 intoxicacion por mercurio
Practica 8 intoxicacion por mercurioNelly Guaycha
 
Presentación hipertension
Presentación hipertensionPresentación hipertension
Presentación hipertensionkeyla castillo
 
Schön schwarz
Schön schwarzSchön schwarz
Schön schwarzJingleT
 
Canasta Básica EUROTEC
Canasta Básica EUROTECCanasta Básica EUROTEC
Canasta Básica EUROTECjosue alvarez
 
El proyecto técnico andrea vuelta 3º eso
El proyecto técnico andrea vuelta 3º eso El proyecto técnico andrea vuelta 3º eso
El proyecto técnico andrea vuelta 3º eso andrealoveyoursmile
 
El burro el niño y el viejo
El burro el niño y el viejoEl burro el niño y el viejo
El burro el niño y el viejotrillisa
 
Lino flores
Lino floresLino flores
Lino floreslino177
 
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?akom360
 
Salidas profesionales módulo
Salidas profesionales móduloSalidas profesionales módulo
Salidas profesionales móduloevasoriaanton
 
Langosta con ajos
Langosta con ajosLangosta con ajos
Langosta con ajospepteyyol
 
Presentación hipertension arterial
Presentación hipertension arterialPresentación hipertension arterial
Presentación hipertension arterialkeyla castillo
 
Praxisnahe Lösungen
Praxisnahe LösungenPraxisnahe Lösungen
Praxisnahe LösungenJingleT
 
Berenjenas rellenas
Berenjenas rellenasBerenjenas rellenas
Berenjenas rellenaspepteyyol
 

Andere mochten auch (20)

E procurement
E procurementE procurement
E procurement
 
Texto academico.docx elvira
Texto academico.docx elviraTexto academico.docx elvira
Texto academico.docx elvira
 
Infoxicación: ¿Cómo evitarla?
Infoxicación: ¿Cómo evitarla?Infoxicación: ¿Cómo evitarla?
Infoxicación: ¿Cómo evitarla?
 
Respuesta a Rodri
Respuesta a RodriRespuesta a Rodri
Respuesta a Rodri
 
EL INTERNET
EL INTERNET EL INTERNET
EL INTERNET
 
Raul chacon
Raul chaconRaul chacon
Raul chacon
 
Practica 8 intoxicacion por mercurio
Practica 8 intoxicacion por mercurioPractica 8 intoxicacion por mercurio
Practica 8 intoxicacion por mercurio
 
Presentación hipertension
Presentación hipertensionPresentación hipertension
Presentación hipertension
 
Schön schwarz
Schön schwarzSchön schwarz
Schön schwarz
 
Canasta Básica EUROTEC
Canasta Básica EUROTECCanasta Básica EUROTEC
Canasta Básica EUROTEC
 
El proyecto técnico andrea vuelta 3º eso
El proyecto técnico andrea vuelta 3º eso El proyecto técnico andrea vuelta 3º eso
El proyecto técnico andrea vuelta 3º eso
 
El burro el niño y el viejo
El burro el niño y el viejoEl burro el niño y el viejo
El burro el niño y el viejo
 
Diaposi fisiopato
Diaposi fisiopatoDiaposi fisiopato
Diaposi fisiopato
 
Lino flores
Lino floresLino flores
Lino flores
 
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?
Webinale 2014: Gibt es ein Rezept für erfolgreiches Bloggen?
 
Salidas profesionales módulo
Salidas profesionales móduloSalidas profesionales módulo
Salidas profesionales módulo
 
Langosta con ajos
Langosta con ajosLangosta con ajos
Langosta con ajos
 
Presentación hipertension arterial
Presentación hipertension arterialPresentación hipertension arterial
Presentación hipertension arterial
 
Praxisnahe Lösungen
Praxisnahe LösungenPraxisnahe Lösungen
Praxisnahe Lösungen
 
Berenjenas rellenas
Berenjenas rellenasBerenjenas rellenas
Berenjenas rellenas
 

Ähnlich wie Roslyn DDC Kompakt 2014

Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend DeveloperChristoph Hautzinger
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Digicomp Academy AG
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Robin Sedlaczek
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineOPEN KNOWLEDGE GmbH
 

Ähnlich wie Roslyn DDC Kompakt 2014 (20)

Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend Developer
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
Fachreferat: Visual Studio 2012, Windows 8 und .NET 4.5
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 

Roslyn DDC Kompakt 2014

  • 1. Die .NET Compiler Plattform Roslyn Christian Giesswein @giessweinweb
  • 2. About Me • Ing. Christian Giesswein, BSc. Christian@giesswein-apps.at www.giesswein-apps.at • Gründer von Giesswein-Apps • Individualentwicklung, Consulting und Trainings • Die bunte Welt von C#/.NET • C#, WCF, WPF, ADO.NET, Entity Framework, ASP.NET.. • OS-Entwicklung (https://github.com/giessweinapps) • osm2mssql – OpenStreetMap für MS-SQL • MonoDebugger für Visual Studio • TfsDashboard
  • 3. Die Frage des Tages „Was mache ich als Entwickler damit?“ oder… „Was mach ich überhaupt hier?“
  • 4. csc.exe • csc.exe - CSharpCompiler.exe • vbc.exe – VisualBasicCompiler.exe C# / VB.NET Code Compiler (csc.exe/vbc.exe) Common Intermediate Langue Code (CIL) • C:WindowsMicrosoft.NETFramework64v4.0.30319
  • 5. Roslyn • Die neue Compiler-Plattform von Microsoft • Open-Source https://roslyn.codeplex.com/ • Die Zukunft für uns C# und VB.NET - Entwickler • C:Program Files (x86)MSBuild14.0Bin
  • 6. Open-Source bedeutet… • Ich geh mit meinem Visual Studio.. • … und bau mir mal eben den Compiler von C# • … studiere wie der Compiler funktioniert • Microsoft öffnet sich für andere Betriebssysteme: Linux, Mac OS • „Mono“ profitiert von Roslyn seit Anfang an • Die Community hat die Möglichkeit Verbesserungen einzubringen und mitzuwirken
  • 7. C# 6.0 Was kommt auf uns zu? • Auto-Property Verbesserungen • Expressions für Properties und Methoden • Using static • Null-Conditional Operator • String Interpolation • NameOf-Erweiterung • Index initializers • Exception Filters • Await in catch/finally
  • 8. VB.NET • Auch VB.NET erhält Verbesserungen • Roadmap zeigt welche Änderungen wahrscheinlich sind • Roadmap hat sich über das Jahr gesehen recht stark verschoben • Schwerpunkt liegt auf C# • https://roslyn.codeplex.com/wikipage?title=Langua ge%20Feature%20Status&referringTitle=Document ation
  • 9. Compiler-as-a-service • „Compiler-as-a-service“ • Das gesamte (neuere) Tooling baut auf Roslyn auf • Codeanalyse mit Roslyn • http://referencesource.microsoft.com/ • Alles wird NuGet – … warum nicht auch Teile des Compiler?
  • 11. Installation • Was brauch ich für eigene Code-Analysen? • Visual Studio 2015 SDK • Entweder lokal oder in der Cloud • SDK Templates für Code-Analysen mit Roslyn • https://visualstudiogallery.msdn.microsoft.com/849f3ab1- 05cf-4682-b4af-ef995e2aa1a5 • .NET Compiler Platform Syntax Visualizer • https://visualstudiogallery.msdn.microsoft.com/70e184da- 9b3a-402f-b210-d62a898e2887
  • 12. Roslyn – Unter der Motorhaube • Roslyn wurde mit sehr viel Asynchronität und Parallelität versehen: • TPL und async/await • Um die Synchronisation von Daten zu erleichtern sind alle Datenstrukturen unveränderlich(=immutable).
  • 13. Eigene Diagnosen und Fehlerbehebungen • Mit Roslyn wurde die Grundlage geschaffen, dass jeder Entwickler und jedes Entwicklerteam Ihre eigenen Diagnosen implementiert • Visual Studio spielt dabei Out-Of-The-Box mit
  • 14. Zusammenfassung • Mit Roslyn kommt ein Compiler der in C#/VB.Net geschrieben ist • Wird mit VS 2015 ausgeliefert • Vollen Einblick in den Quellcode • Neue Features in den Programmiersprachen • Eigene Analysen per Roslyn/NuGet möglich
  • 15. Twitter: @giessweinweb Email: christian@giesswein-apps.at Web: www.giesswein-apps.at … oder persönlich :-) Vielen Dank für Ihre Aufmerksamkeit