Visual Studio Overview


Visual Studio includes several project types for languages such as Visual C# and Visual Basic. Visual Studio also lets you create your own project types.

You can create various types of projects using Visual Studio predefined templates depending on your requirements. When you first open Visual Studio, the start window appears, and from there, you can choose Create a new project.

On the Create a new project page, a list of your recently selected templates appears on the left. If you're not selecting from the recently used templates, you can filter all available project templates by Language, Platform, and Project type.

Languages

There are different languages available and you can check them in the All languages dropdown, such as C#, C++, F#, JavaScript, Visual Basic, etc.

Let's say we want to create a project using C# language, so choose C# language and you will see that now all the project templates available for C# are only shown.

Platforms

Visual Studio provides various platforms options and the list is available in the All platforms dropdown list, such as Android, Azure, iOS, Linux, Windows, etc.

Select the Windows as a platform and you will only see project types that can be developed using C# language and can run on the Windows platform only.

Project Types

In the All project types, you can see different types, such as Cloud, Desktop, Console, Games, Mobile, Web, etc.

Let's select Desktop from the All project types, and you will only see projects that are desktop applications.

You can also enter search text into the search box to further filter the templates, for example, let's type console in the search box.

You can only see now templates which are console projects.

Here are the most commonly used Project templates.

Template Languages Descriptions
Console App (.NET Core) C#, VB, F# A project for creating a command-line application that can run on .NET Core on Windows, Linux, and macOS that targets .NET Core.
Console App (.NET Framework) C#, VB A project for creating a command-line application that can run on .NET Core on Windows, Linux, and macOS that targets .NET Framework.
ASP.NET Core Web Application C#, F# Project templates for creating ASP.NET Core web apps and web APIs for Windows, Linux, and macOS using .NET Core or .NET Framework. Create web apps with Razor Pages, MVC, or Single Page Apps (SPA) using Angular, React, or React + Redux.
ASP.NET Web Application (.NET Framework) C#, VB Project templates for creating ASP.NET applications. You can create ASP.NET Web Forms, MVC, or Web API applications and add many other features in ASP.NET.
Class Library (.NET Standard) C#, VB, F# A project for creating a class library that targets .NET Standard.
Class Library (.NET Framework) C#, VB A project for creating a class library that targets .NET Framework.
Class Library (.NET Core) C#, VB, F# A project for creating a class library that targets .NET Core.
Windows Forms App (.NET Framework) C#, VB A project for creating an application with a Windows Forms (WinForms) user interface that targets .NET Framework.
Windows Forms App (.NET Core) C#, VB A project for creating an application with a Windows Forms (WinForms) user interface that targets .NET Core.
WPF App (.NET Framework) C#, VB Windows Presentation Foundation client application that targets .NET Framework.
WPF App (.NET Core) C#, VB Windows Presentation Foundation client application that targets .NET Core.
Unit Test Project (.NET Framework) C#, VB A project that contains MSTest unit tests that target .NET Framework.
MSTest Test Project (.NET core) C#, VB A project that contains MSTest unit tests that can run on .NET Core on Windows, Linux, and macOS that targets .NET core.

There are a lot more project templates that you can check on the Create a new project page.