DotNet Core Tooling

Exploring the new tools introduced for .NET Core
By Ciprian Stupinean Posted 10 August 2016

DotNet Core Tooling

Short overview

On June 27, 2016, version 1.0 of .NET Core, ASP.NET Core and Entity Framework Core was released. These new products are the future of .NET, ASP.NET and Entity Framework. They are a redesign version of already available products from Microsoft. The "Core" products have a high-performance and modular design. Beside this all products are cross-platform and are available on Mac OS, Windows and Linux. Another important thing is that they are all open-source. With the introduction of these new products, Microsoft created a new set of tools.

Visual Studio tools

On the Windows platform, the most important IDE to develop applications for .NET is Visual Studio. For integration of the new products, Microsoft created a new extension for .NET Core which provides all necessary SDK for creating and running applications. Before starting to develop a .NET application, you need to have Visual Studio Update 3 and .NET Core Tools for Visual Studio installed. Both, the update and tools, can be found on the official Microsoft .NET Core page.

Since we're all familiar with the Visual Studio development environment, the next part will be more focused on new command line tools from the framework which helps developing new applications with .NET Core.

.NET "dotnet" Command Line Interface (.NET CLI)

The new CLI tool is called dotnet and is often referred as dotnet CLI to prevent misunderstanding with .NET. This new tool changes the way we handle builds in .NET Core and adds more features. To give you an idea, once you have the SDK installed, you can type these three simple commands for your first "Hello World" app. The first generates a console app, the second restores package dependencies and the last builds and runs the app.

dotnet new
dotnet restores
dotnet run

By typing dotnet --help you can see all available command and what each command does. Bellow can be seen the output.

.NET Command Line Tools (1.0.0-preview3-003221)
Usage: dotnet [host-options] [command] [arguments] [common-options]

  [command]             The command to execute
  [arguments]           Arguments to pass to the command
  [host-options]        Options specific to dotnet (host)
  [common-options]      Options common to all commands

Common options:
  -v|--verbose          Enable verbose output
  -h|--help             Show help 

Host options (passed before the command):
  -v|--verbose          Enable verbose output
  --version             Display .NET CLI Version Number
  --info                Display .NET CLI Info

Common Commands:
  new           Initialize a basic .NET project
  restore       Restore dependencies specified in the .NET project
  build         Builds a .NET project
  publish       Publishes a .NET project for deployment (including the runtime)
  run           Compiles and immediately executes a .NET project
  test          Runs unit tests using the test runner specified in the project
  pack          Creates a NuGet package

This new command line interface combined with Visual Studio and Visual Studio Code form the new way of developing applications targeting .NET Core framework. The dotnet command line interface is not fully released and it's in preview form, so feedback is very welcomed for the tools. People who want to get involved in helping with development can contribute to the github project repository.

All in all, I found .NET CLI a good tool for developers who are developing applications with .NET Core. In my opinion, this command line interface is very exciting because I see a different way of working with Microsoft technologies outside of the classical Visual Studio IDE experience.

Ciprian Stupinean
Ciprian Stupinean