Aprender a programar .NET – o que precisas para começar
27 de Agosto de 2025

A tecnologia .NET é uma plataforma de desenvolvimento gratuita criada em 2002 pela Microsoft. Teve início na versão 1.0 da .NET Framework, inicialmente desenvolvida apenas para aplicações desktop Windows.
Desde então, esta linguagem de programação tem estado em constante evolução, contando com vários projetos multiplataforma e de código aberto, além de uma ampla gama de frameworks, que suporta diferentes ambientes: mobile, web, desktop, IoT, tornando-a uma das tecnologias mais populares e versáteis do mundo.
Componentes principais de .NET
Existem vários componentes criados para .NET, contudo, conteúdo, os dois principais são o Common Language Runtime (CLR) e a biblioteca de classes de .NET Framework. O CLR é um mecanismo de execução que identifica aplicações em execução. A biblioteca de classes fornece um conjunto de APIs e tipos para funcionalidades comuns. Nesta plataforma, a Microsoft oferece três linguagens: .NET – C#, F# e Visual Basic.
Configurar o ambiente de desenvolvimento
A Microsoft disponibiliza dois IDE’s para desenvolvimento: o Microsoft Visual Studio 2022 e o Visual Studio Code, sendo que ambas têm suporte para IA através do GitHub Copilot.
Como instalar e configurar o Visual Code
A instalação é simples, mas pode ter variáveis conforme os pacotes selecionados ou linguagens que serão suportadas. A instalação standard pode ser feita em seis passos, mas com um adicional se for necessário adicionar outro idioma.
1 - Verificação de requisitos do computador
É importante validar se o computador reúne todos os requisitos, como: memória, processador, espaço em disco, sistema operativo e atualizações, para garantir que não há problemas durante a instalação.
2 - Determinar qual a versão a instalar
Neste passo, selecionamos qual a opção do Visual Studio mais viável, com especial atenção ao licenciamento. É possível optar pela versão open source do Visual Studio Code, que é multiplataforma e mantido pela própria Microsoft. O seu download pode ser feito aqui ou aqui.
3 - Iniciar a instalação
Após o download, é necessário executar o installer. A mensagem deverá ser semelhante a esta:

4 - Escolha das opções de trabalho
Neste passo, serão apresentadas várias opções para suporte das linguagens e frameworks. É possível selecionar entre cargas de trabalho com projetos em dispositivos móveis, C#, C++, web, entre outros.

5 - Escolha de componentes individuais (opcional)
É possível selecionar componentes individuais para maior conveniência. Embora seja opcional, este passo é importante no caso de trabalhar com frameworks específicas.

6 - Selecionar local de instalação (opcional)
Sempre que necessário, pode ser selecionada outra diretoria ou volume.

Conceitos básicos de programação em .NET
Porque usar C#?
- - É uma das linguagens de programação mais populares, ocupando, na data deste artigo, o 5º lugar no ranking TIOBE;
- - É fácil de aprender e conta com uma grande comunidade e documentação de excelente qualidade, tornando a jornada de aprendizagem mais acessível;
- - C# é uma linguagem orientada a objetos, o que fornece uma estrutura clara e de fácil legibilidade.
- - É semelhante a outras linguagens como C, C++, Java, o que torna a transição mais fácil.
Programação orientada a objetos em C#
Declarar uma variável
Para criar uma variável, deve ser especificado o tipo e atribuir um valor.
Ex: type nomeVariavel = value;
Tipos de operadores existentes
Operadores aritméticos
Os operadores aritméticos são utilizados para realizar operações em variáveis e valores.
Operador | Nome | Descrição | Exemplo |
---|---|---|---|
+ | Addition | Adds together two values | x + y |
- | Subtraction | Subtracts one value from another | x - y |
* | Multiplication | Multiplies two values | x * y |
/ | Division | Divides one value by another | x / y |
% | Modulus | Returns the division remainder | x % y |
++ | Increment | Increases the value of a variable by 1 | x++ |
-- | Decrement | Decreases the value of a variable by 1 | x-- |
Operadores de atribuição
Os operadores de atribuição são usados para atribuir valores a variáveis.
Operador | Exemplo | Mesmo que |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x - 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
Operadores de comparação
Os operadores de comparação são usados para comparar dois valores (ou variáveis), o que é importante na programação para encontrar respostas e tomar decisões.
Operador | Nome | Exemplo |
---|---|---|
== | Equal to | x == y |
!= | Not equal | x != y |
> | Greater than | x > y |
< | Less than | x < y |
>= | Greater than or equal to | x >= y |
<= | Less than or equal to | x <= y |
Operadores lógicos
Como acontece com os operadores de comparação, os operadores lógicos permitem testar valores verdadeiros ou falsos.
Operador | Nome | Descrição | Exemplo |
---|---|---|---|
&& | Logical and | Retorna verdadeiro se ambos forem verdadeiros | x < 5 && x < 10 |
|| | Logical or | Retorna verdadeiro se um for verdadeiro | x < 5 || x < 4 |
! | Logical not | Reverso do resultado, retorna falso se o resultado for verdadeiro | !(x < 5 && x < 10) |
Estrutura condicional If/Else
C# oferece suporte às condições lógicas usadas na matemática, sejam:
- - Menor que: a
- - Menor ou igual a: a
- - Maior que: a > b
- - Maior ou igual a: a >= b
- - Igual a: a == b
- - Diferente de: a! = b
Exemplo::
int time = 20;
if (time < 18)
{ Console.WriteLine("Bom dia."); }
else
{ Console.WriteLine("Boa noite."); }
Estrutura condicional Switch/Case
A estrutura switch é usada para selecionar um dos blocos de código.
Exemplo::
switch(expression)
{
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
break;
}
Ciclos de repetição while/for/foreach
O loop while percorre um bloco de código enquanto uma condição especificada for verdadeira.
Exemplo::
int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i++;
}
Sabendo exatamente quantas vezes se pretende percorrer um bloco de código, é mais conveniente utilizar o Loop for em vez do Loop while.
Exemplo::
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
Existe também um Loop foreach, que é usado exclusivamente para percorrer elementos num array (ou outros conjuntos de dados).
Exemplo::
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars)
{
Console.WriteLine(i);
}
Arrays
Arrays são matrizes usadas para armazenar vários valores numa única variável, em detrimento de declarar variáveis separadas para cada valor. Para declarar uma array, é necessário definir o tipo de variável entre colchetes.
Exemplo::
string[] carros;
Adicionar elementos:
String[] carros = {"volvo", "opel", "fiat"};
Aceder a elemento por posição:
Console.WriteLine(carros[0]); // Acessa a primeira posição do array "carros"
Classes
Em C# tudo está relacionado com classes e objetos, que possuem atributos e métodos. Por exemplo, na realidade, um carro é um objeto que tem atributos como peso e cor, além de métodos, como acelerar e travar. Uma classe funciona como um molde para criar objetos.
Exemplo:
class Carro
{
string color = "verde";
}
Strings
As strings são utilizadas para armazenar texto. Uma variável de string contém uma coleção de caracteres entre aspas.
String variável = “aqui é o texto”;
Desenvolvimento web com .NET
Introdução ao ASP.NET Core
O ASP.NET Core é uma framework para o desenvolvimento de aplicações web, baseado no padrão MVC (Model-View-Controller). É uma framework de código aberto que permite a execução em múltiplas plataformas como Windows, Linux e Mac. O ASP.NET Core estende a plataforma .NET com ferramentas e bibliotecas específicas para a construção de aplicações web.
Como criar a primeira aplicação web
- - Iniciar o Visual Studio e selecionar Criar um projeto.
- - Na caixa de diálogo, escolher Criar um novo projeto e depois Aplicação Web do ASP.NET Core (Model-View-Controller). De seguida, clicar em Avançar.
- - Na caixa de diálogo Configurar novo projeto:
- - Inserir Meu Projeto no campo Nome do Projeto. Para o nome, o uso de maiúsculas e minúsculas deve corresponder a cada namespace quando o código for copiado.
- - O Local do projeto pode ser definido como desejares.
- - Selecionar Avançar.
- - Na caixa de diálogo Informações adicionais:
- - Selecionar .NET Core 8.0 (Suporte de Longo Prazo)
- - Verificar se a opção Não usar instruções de nível superior está desmarcada.
- - Clicar em Criar:

- - Próximos passos:
- Pressionar CTRL+F5 para executar a aplicação sem o debugger.
- O Visual Studio exibirá uma caixa de diálogo caso o projeto ainda não esteja configurado para usar SSL:

- Se solicitado, selecionar Sim para confiar no certificado SSL do IIS Express. A seguinte caixa de diálogo é exibida:

Selecionar Sim, no caso de o certificado de desenvolvimento ser de confiança. A imagem seguinte mostra a aplicação:

Trabalhar com bases de dados em .NET
Introdução ao Entity Framework Core
O Entity Framework Core (EF) é uma versão leve, extensível, de código aberto e multiplataforma da popular tecnologia de acesso a dados do Entity Framework. O EF Core pode atuar como um O/RM (Object-Relational Mapper), que:
- - Permite que os programadores .NET trabalhem com uma base de dados utilizando objetos .NET.
- - Elimina a necessidade de grande parte do código de acesso a dados que normalmente precisa de ser gravado.
Com o EF Core, o acesso a dados é executado usando um modelo composto classes de entidade e um objeto de contexto, que representa uma sessão com a base de dados. O objeto de contexto permite consultar e salvar dados.
O EF dá suporte às seguintes abordagens de desenvolvimento de modelo:
- - Gerir um modelo de uma base de dados existente.
- - Codificar um modelo para corresponder ao banco de dados.
- - Utilizar migrações de EF para criar uma base de dados a partir do modelo. As migrações permitem evoluir a base de dados conforme o modelo é alterado.
Configurar uma base de dados
Instalar o Entity Framework Core
Para instalar o EF Core, é necessário escolher o pacote do fornecedor de base de dados do EF Core para o qual é desejado direcionar. A título de exemplo, posemos utilizar o SQLite, executado em todas as plataformas que suportam .NET.
Executar o comando através do Visual Studio:
- Ferramentas > Gestor de Pacotes NuGet > Consola do Gestor de Pacotes
Install-Package Microsoft.EntityFrameworkCore.Sqlite
- Código que pode exemplificar como funciona um contexto de acesso a dados:
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace Intro;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;ConnectRetryCount=0");
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public int Rating { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
Criação de uma base de dados
No gestor de pacotes executar os seguintes comandos:
- - Install-Package Microsoft.EntityFrameworkCore.Tools // Ferramentas para executar e adicionar migrações
- - Add-Migration InitialCreate // Comando para adicionar a migração inicial.
- - Update-Database // Comando para criar a base de dados.
O código seguinte representa um CRUD básico das consultas em SQL:
using System;
using System.Linq;
using var db = new BloggingContext();
// Nota: Este exemplo requer que o banco de dados seja criado antes da execução.
Console.WriteLine($"Database path: {db.DbPath}.");
// Criar
Console.WriteLine("inserindo um novo blog");
db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
db.SaveChanges();
// Ler
Console.WriteLine("Query de um blog");
var blog = db.Blogs
.OrderBy(b => b.BlogId)
.First();
// Update
Console.WriteLine("Atualizando o blog e adicionando uma postagem");
blog.Url = "https://devblogs.microsoft.com/dotnet";
blog.Posts.Add(
new Post { Title = "Olá Mundo", Content = "Eu escrevi um aplicativo usando EF Core!" }
);
db.SaveChanges();
// Delete
Console.WriteLine("Delete o blog");
db.Remove(blog);
db.SaveChanges();
Testar código em .NET
Importância dos testes de código
Os testes de software são uma parte fundamental do desenvolvimento. Eles garantem que o código funciona como esperado e ajudam a identificar e corrigir bugs.
Os testes de unidade reforçam paradigmas de pensamento modular, melhorando a cobertura e a qualidade dos testes. Além disso, a automação dos testes unitários permite que os programadores se concentrem mais na programação e na implementação de novas funcionalidades.
Criar um projeto para testes
- - Abrir o Visual Studio
- - Em “File” selecionar “New Project”
- - Procurar por “test”, selecione o pretendido “MSTest” ou “NUnit test project”, em seguida clicar em “Next”
- - Dar um nome ao projeto e clicar em “Next”
- - Selecionar a Framework e clicar em “Create”
Criar um método de teste
Abaixo ilustramos um exemplo de uma conta bancária, onde o primeiro teste verifica que um valor válido (ou seja, um valor que seja menor que o saldo da conta e maior que zero) retira a quantidade correta da conta.
Adicionar o seguinte método à classe BankAccountTests:
[TestMethod] // todas as classes de testes são decoradas com esta tag
public void Debit_WithValidAmount_UpdatesBalance()
{
// Arrange
double beginningBalance = 11.99;
double debitAmount = 4.55;
double expected = 7.44;
BankAccount account = new BankAccount("Mr. Bryan Walton", beginningBalance);
// Act
account.Debit(debitAmount);
// Assert
double actual = account.Balance;
Assert.AreEqual(expected, actual, 0.001, "Account not debited correctly");
}
O método define um novo objeto BankAccount com um saldo inicial e, em seguida, retira um valor válido. Depois, usa o método Assert.AreEqual para verificar se o saldo final é conforme o esperado. Métodos como Assert.AreEqual, Assert.IsTrue, entre outros, são frequentemente utilizados em testes de unidade.
As ferramentas mais usadas para identificar e corrigir erros no código são NUnit, MSTest e xUnit, sendo que todas fornecem diversos recursos para testar o código e torná-lo mais robusto e fiável.
Procurar erros numa aplicação
Os atalhos de teclado são uma forma rápida de executar comandos de debugging, mas os comandos equivalentes, como comandos da barra de ferramentas ou do menu também são indicados.
Para iniciar o depurador, selecionar F5 ou escolher o botão Destino de Debugging na barra de ferramentas padrão, ou clicar em Debugging > Iniciar Debugging na barra de menus.

A tecla F5 inicia a aplicação com o debugger anexado ao processo. Como não alterámos nada para examinar o código, a aplicação é executada até à conclusão.
Prompt de comando do WindowsCopiar
Hello, f! Count to 1
Hello, fr! Count to 2
Hello, fre! Count to 3
Hello, fred! Count to 4
Hello, fred ! Count to 5
Hello, fred s! Count to 6
Hello, fred sm! Count to 7
Hello, fred smi! Count to 8
Hello, fred smit! Count to 9
Hello, fred smith! Count to 10
É possível interromper o debugger selecionando Shift+F5, pressionando o botão Parar Debugging na barra de ferramentas ou escolher Debugging > Parar Debugging na barra de menus.
Na janela do console, selecionar qualquer tecla para fechá-la. Um dos recursos mais úteis da ferramenta de Debugging é a capacidade de inspecionar variáveis, permitindo verificar o estado do programa em execução.
Artigos populares
O papel de COBOL na infraestrutura bancária
RPG/AS400: Como esta tecnologia está a acompanhar o avanço digital
As competências essenciais para analistas funcionais
O segredo do sucesso em IT: Como os Business Analysts fazem a diferença
COBOL em 2025: Relíquia ou Oportunidade?
Majorana 1 - Um novo marco na computação quântica