roslyn compiler as a service
TRANSCRIPT
![Page 2: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/2.jpg)
COMPILER IS A BLACK BOX
![Page 3: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/3.jpg)
ROSLYN TEAMAnders Hejlsberg - father of Microsoft's C# language.
Matt Warren - software achitect at Microsoft on the C#programming language product team.
Pete Golde - lead developer of the original Microsoft C#compiler.
Karen Ng - lead program manager on the Visual StudioProfessional team.
![Page 4: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/4.jpg)
FEATURESManaged compilers (C# / VB)Code analysis APIsLanguage service extensibilityRead-Eval-Print-Loop (REPL)
![Page 5: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/5.jpg)
COMPILER PIPELINE
![Page 6: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/6.jpg)
COMPILER API
![Page 7: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/7.jpg)
LANGUAGE SERVICE
![Page 8: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/8.jpg)
SYNTAX TREESImmutableResilientEfficientComplete & Consistent
![Page 9: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/9.jpg)
SYNTAX TREE CODE EXAMPLEclass C{ void M() { } // C}
![Page 10: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/10.jpg)
SYNTAX TREE - NODES
![Page 11: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/11.jpg)
SYNTAX TREE CODE EXAMPLEclass C{ void M() { } // C}
![Page 12: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/12.jpg)
SYNTAX TREE - TOKENS
![Page 13: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/13.jpg)
SYNTAX TREE CODE EXAMPLEclass C{ void M() { } // C}
![Page 14: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/14.jpg)
SYNTAX TREE - "TRIVIA"
![Page 15: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/15.jpg)
SYNTAX TREE CODE EXAMPLEclass C{ void M() { } // C}
![Page 16: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/16.jpg)
SYNTAX VISUALIZER
![Page 17: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/17.jpg)
WORKSPACES
![Page 18: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/18.jpg)
EXAMPLEProjectId pid1, pid2;DocumentId did1, did2;ISolution solution = Solution.Create(SolutionId.CreateNewId("Solution")) .AddCSharpProject("Project1.dll", "Project1", out pid1) .AddDocument(pid1, "A.cs", "public class A { }", out did1) .AddCSharpProject("Project2.dll", "Project2", out pid2) .AddDocument(pid2, "B.cs", "class B : A { }", out did2) .AddProjectReference(pid2, pid1);
![Page 19: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/19.jpg)
DEMO
![Page 20: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/20.jpg)
FOR REVIEWRoslyn documentation - http://bit.ly/roslyndocsRefactoring with Roslyn Circus Comes to TownBUILD: Anders – Future of C# and Visual BasicMeet the Design Team
![Page 21: Roslyn compiler as a service](https://reader033.vdocuments.us/reader033/viewer/2022052522/554a2dc5b4c9051b578b4f6b/html5/thumbnails/21.jpg)
THANK YOU!
source -
@2j2e
http://github.com/2j2e
http://bit.ly/rolsynbasics