Se você se encontra confuso em meio a tantos termos relacionados a construção de aplicações usando as linguagens e ferramentas da Microsoft, você não está sozinho.

Neste, artigo eu tento esclarecer alguns dos termos mais comuns no universo do .NET.

Este artigo foi inspirado no vídeo publicado por Scott Hanselman: What is .NET? What's C# and F#? What's the .NET Ecosystem? .NET Core Explained, what can .NET build?

.NET

.Net é uma plataforma para construir aplicações. Essa plataforma contém um runtime chamado de CLR (Common Language Runtime), uma série de linguagens (C#, F#, VB .NET) e um monte de bibliotecas que permitem que você construa basicamente qualquer aplicativo. Seja um aplicativo de desktop, um aplicativo da web ou algo em um dispositivo móvel.

Existem várias implementações do .NET:

  • O .NET Framework é a mais antiga e conhecida. Esse é o framework para aplicações exclusivas do Windows. Use-o quando estiver criando um aplicativo desktop do Windows, ou UWP, ou trabalhando com o ASP.NET 4.6+ mais antigo.
  • .NET Core / .NET 5 é novo e de código aberto. Ele é cross-platform, o que significa que você pode executá-lo no Linux, MacOS e no Windows.
  • Em seguida, Mono / Xamarin, é basicamente uma re-implementação de código aberto para dispositivos móveis iOS, OS X, Android e Windows Phone.

Baixe e instale o .NET através do link .NET | Free. Cross-platform. Open Source.

Você terá as seguintes opções

  • .NET Framework: para aplicações Windows apenas.
  • .NET Core 3.1: aplicações cross-platform.
  • .NET 5 (é a versão mais recente do .NET Core).

O que é C#, F#, e VB.NET?

O .NET contém uma familia de linguagens de programações. Destaque as mais famosas:

C #

C # (pronuncia-se "C sharp") é uma linguagem de programação simples, moderna, orientada a objetos e com type-safe.

Tem suas raízes na família de linguagens C, o que torna o C # imediatamente familiar aos programadores C, C ++, Java e JavaScript.

var names = new List<String>
{
   "Ana",
   "Felipe",
   "Emillia"
};

foreach (var name in names)
{
   Console.WriteLine($"Hello {name}");
}

Type-safe significa que o compilador irá validar os tipos das variáveis declaradas durante a compilação e lançar um erro se você tentar atribuir o tipo errado a uma variável. Por exemplo, você declara uma variável do tipo inteiro e tenta atribuir um valor de texto na mesma.

F #

F # (pronuncia-se "F sharp") é uma linguagem de programação funcional cross-plataform e open-source para .NET. Também inclui programação orientada a objetos e imperativa.

let names = [ "Ana"; "Felipe"; "Emillia"]

for name in names do
    printfn $"Hello {name}"

Cross-platform significa que pode funcionar em vários tipos de plataformas (x86, x64, etc) ou ambientes operacionais (Linux, MacOs, Windows).

Programação funcional é um paradigma de programação cuja maior diferença é que, usa-se funções matemáticas em vez de declarações para expressar ideias.

Visual Basic

Visual Basic é uma linguagem acessível com uma sintaxe simples para a construção de aplicativos orientados a objetos e type-safe.

Dim names As New List(Of String)({
    "Ana",
    "Felipe",
    "Emillia"
})

For Each name In names
    Console.WriteLine($"Hello {name}")
Next

Se você já trabalhou com VB6 e VBA (Macros), irá familiarizar-me muito rapidamente com o Visual Basic .NET.

Veja mais em .NET programming languages | C#, F#, and Visual Basic (microsoft.com)

O que é NuGet?

NuGet é um gerenciador de pacotes. Códigos são compartilhados por meio de algo chamado de pacotes. Exemplos de pacotes são as bibliotecas ASP .NET MVC, Newtonsoft (para manipular JSON), etc.

Um gerenciador de pacotes é um conjunto de ferramentas usado para automatizar a instalação, atualização, configuração e uso de pacotes (bibliotecas de códigos). Isso seria o equivalente ao npm (node package manager) do Node.JS ou Maven do Java.

Através de um arquivo de manifesto, onde são declarados todos os pacotes, o gerenciador de pacote consegue determinar o que e onde obter as bibliotecas de código que o seu software depende. O arquivo manifesto utilizado por NuGet packages.config. Abaixo, um exemplo:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net46" />
  <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net46" developmentDependency="true" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
  <package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net46" />
  <package id="Newtonsoft.Json" version="8.0.3" allowedVersions="[8,10)" targetFramework="net46" />
  <package id="NuGet.Core" version="2.11.1" targetFramework="net46" />
  <package id="NuGet.Server" version="2.11.2" targetFramework="net46" />
  <package id="RouteMagic" version="1.3" targetFramework="net46" />
  <package id="WebActivatorEx" version="2.1.0" targetFramework="net46" />
</packages>

dotnet CLI

dotnet cli é uma interface de linha de comando do .NET - CLI significa Command-line interface.

Você pode executar comandos tais como dotnet new, dotnet run, dotnet publish.  Esse comandos criam um novo projeto .NET, executa-o, e publica-o.

O dotnet cli seria o equivalente ao javac do Java.

dotnet new

Esse comando cria um novo projeto, arquivo de configuração ou solução com base em um template que você especifica. Se você digitar apenas dotnet new, será apresentado com uma lista de opções de templates e quais as linguagens suportadas:

Para criar um novo projeto usando o template Console Application, execute o seguinte;

dotnet new console

dotnet run

Este comando executa o código-fonte.

Visual Studio, Visual Studio Code, Visual Studio for MAC

Para desenvolver aplicações .NET, o recomendável é que você utilize uma ferramenta de IDE (integrated development environment). IDE significa ambiente de desenvolvimento integrado.

Um IDE é uma aplicação que fornece recursos para o desenvolvimento de software. Um IDE normalmente consiste em pelo menos um editor de código-fonte, ferramentas de automação de compilação e um depurador (debugger).

A Microsoft disponibiliza 3 ferramentas para desenvolvimento de aplicações em .NET.

Visual Studio

O Visual Studio é a ferramenta mais antiga e utilizada para desenvolvimento de aplicações em .NET. Em sua versão 2019, ele possui 3 opções Professional, Standard e Community. A maior diferença entre estas versões é quais ferramentas estão disponíveis e público alvo.

Professional e Standard são destinadas a empresas e têm um custo de licença.

Community é destinado a desenvolvedores independentes, estudantes, entre outros e é gratuito.

O Visual Studio funciona apenas no Windows.

Visual Studio Code

O Visual Studio Code é um IDE leve e rápido. Ele também é cross-platform, o que significa que ele roda no Linux, Mac e Windows.

Ele não se parece em nada com o Visual Studio original. A única semelhança está no nome apenas.

Esse IDE tornou-se o editor preferido de programadores front-end principalmente para o desenvolvimento de aplicações utilizando HTML, CSS e JavaScript.

Se você já utilizou editores de código tais como Sublime, Atom e Bracket, vai se sentir muito familiarizado com o Visual Studio Code.

O Visual Studio Code é gratuito.

Visual Studio for Mac

Esse IDE é uma versão gratuita do Visual Studio específica para computadores com o Sistema Operacional MacOs.

Ela é um pouco limitada em termos de recursos.