DESOSA 2021

Visual Studio Code

Figure: Visual Studio Code logo

Visual Studio Code is a lightweight open source text editor available for all major operating systems. With VS Code, Microsoft aims to provide users with a streamlined code editor that supports debugging, code execution and version control. In that sense it is more limited than another product in Microsoft’s line of confusing naming conventions: Visual Studio IDE. This doesn’t mean however, that VS Code is inferior to other well established IDE’s. With smart code completion provided by IntelliSense; built-in git commands at your disposal and the ability to customize your environment with extensions; Visual Studio Code can be enhanced to act and feel like an IDE. It is a great alternative for small to medium coding projects.

Authors

Rens Hijdra

Embedded Systems Master student at TU Delft

Hunter van Geffen

Computer Science Master student at the TU Delft

Stefan Petrescu

Data Science Master's student at TU Delft

Tim Yarally

Computer Science Master student at the TU Delft

VSCode - Software variability

Software is often not just one thing, once it becomes big enough many different use cases show up. Different groups of people would like to use the software in a variety of ways. From small things such as a visual change to bigger differences such as the compatibility with certain operating systems. In this essay, we will discuss the variability present within Visual Studio Code. We will first take a look at the overall variability of the system, followed by a discussion on the way in which this variability is managed, concluding with a section describing how Visual Studio Code implements its variability systems.

VSCode - Quality and Evolution

The software quality of a codebase is very important for the longevity of a software system. The quality of the code, the testing process and the amount of technical debt all factor into the ease in which a system can evolve and be maintained. In this essay we will discuss the ways in which the team working on Visual Studio Code have handled the challenges of maintaining such a large codebase.

VSCode - From Vision to Architecture

Main Architectural Style Let’s start by taking a look at the project as a whole. As stated in the Source Code Organization document1, the project takes both a layered as well as a modular approach to software architecture for the core package. This core package is built to be extended using the Extension API to provide nearly all features that exist in VSCode. The layer model of the core starts with a base package which provides “general utilities and user interface building blocks.

VSCode - Product Vision

“Now keep in mind, this codebase was already five years old and if we wanted to come to this open source market we had to cleanse our code so that we could share it with the public without being embarrassed.” This is a slightly altered quote by Erich Gamma1, one of the founders of Visual Studio Code. In six months time, he and his team went through the numerous lines of code to make them presentable to the general public.