Roslyn: Mastership of state analysis

RU / Day 1 / 16:00 / Track 3

Technologies used: Roslyn, Visual Studio SDK (VSIX).

Target audience: developers and build-engineers, especially those who develop their frameworks or works with someone else's frameworks, where there is no static analysis support.

The main problems and their solutions: to improve quality of the code, to cut down the time it takes to find a solution to the typical problems when working with frameworks (especially self-written).

What audience would learn from the talk:

  • in which cases it's worth writing your own code analysis and in which cases it's not;
  • how much does it cost in terms of effort;
  • introduction to Roslyn: how to create a new analyzer, how to test it, how to create a code fix;
  • how to make a full integration into development process: working with legacy-code, integration into CI/CD, pull requests;
  • the pitfalls: versioning and backward compatibility of Roslyn SDK, aspects of integration into Visual Studio;
  • how to further accelerate the development process using Roslyn for refactoring, formating, improvement of the code readability, etc.

What kind of experience does speaker have in this area: for a year and a half, Vladimir’s team has been developing tools for static analysis and extension to Visual Studio using Roslyn. This project was born as a solution of the following problem: company has its own development platform (Acumatica xRP Framework), developers inside the company and partner companies use it to write a business logic (ERP and various extensions to it). That is why speaker’s company faced with a task of improving quality of a code, written on company’s platform, checking it for compliance with company’s guidelines, partner’s decisions certification, reducing development time by avoiding the most common mistakes even at the stage of the code writing (since errors are shown immediately during the static analysis), and accelerating the development with the help of additional tools (custom syntax highlighting, custom code navigation, formatting, refactoring etc.).

Download presentation