.NET: apresentando a plataforma de desenvolvimento da Microsoft
Há alguns anos, o .NET se tornou uma das plataformas mais populares para desenvolver aplicações ao redor do mundo. Só para ter uma ideia, ela compete principalmente com a plataforma Java.
Para isso, conta com uma das linguagens mais populares do mercado, o C#, além de executar linguagens, como F#, VB.NET, entre outras.
Se você acabou de chegar ao universo do .NET pode se espantar um pouco com a sopa de letrinhas ou com a quantidade de formas diferentes para imprimir uma mensagem na tela, — o famoso “Olá, mundo!”.
Mas não precisa se preocupar! Neste artigo, vamos te ajudar a entender o fantástico mundo do .NET. Para isso vamos conhecer um pouco sobre o que é o .NET, sua história e características e ainda comentar sobre algumas certificações Microsoft para pessoas desenvolvedoras.
Vamos lá!
O que é .NET?
O .NET (lê-se dotnet) é um framework de desenvolvimento criado pela Microsoft em 2002.
De forma geral, ele oferece um ambiente de programação poderoso, além de uma biblioteca de classes robusta com suporte para desenvolver e executar aplicativos para diversas plataformas, como Windows, macOS e Linux.
Uma característica importante do .NET é o suporte para diversas linguagens de programação, como C#, VB.NET e F#, oferecendo grande versatilidade para a plataforma.
Assim, a partir do .NET é possível:
- Desenvolver aplicativos web, desde sites estáticos até sistemas web; c
- Criar aplicativos mobile;
- Implementar soluções em microsserviços;
- Desenvolver aplicativos de área de trabalho (o famoso desktop) e jogos.
A força do .NET está em seus dois componentes centrais: a Common Language Runtime (CLR), tempo de execução de linguagem comum em tradução livre, e a sua Class Library (biblioteca de classes).
O que é CLR — Common Language Runtime?
A CLR é o mecanismo que vai possibilitar a execução de aplicações .NET, bastante similar à máquina virtual do Java (JVM). No entanto, diferente da concorrente, a CLR é acessível por qualquer compilador que consiga produzir códigos em Intermediate Language (IL, linguagem intermediária em português), que seriam os bytecodes do Java.
A CLR se encarrega de:
- Gerenciar a memória;
- Verificar os tipos de forma segura;
- Cuidar das exceções geradas pelas aplicações;
- Implementar segurança;
- Dar suporte a atributos personalizados;
- Acessar metadados;
- Promover a interoperabilidade de linguagens;
- Aprimorar o desempenho;
- Coletar o lixo, um mecanismo que descarta objetos que não estão em uso na memória.
Imagine desenvolver um componente em C# e poder consumi-lo por meio de uma aplicação com suporte da CLR como VB.NET ou F#. Bem bacana, não é? 🙂
O que é biblioteca de classes?
A biblioteca de classes, por sua vez, oferece à pessoa desenvolvedora um conjunto de classes e interfaces, que permite acessar diversas funcionalidades do sistema, além de ser o ponto de partida para o desenvolvimento de qualquer solução na plataforma.
Sendo assim, através da biblioteca adequada, é possível criar aplicações para as mais variadas tarefas, desde um aplicativo de linha de comando até a implementação de serviços web RESTful.
As principais funcionalidades oferecidas pela biblioteca de classe do .NET são:
- Representação de tipo e exceções;
- Execução de operações de entrada e saída;
- Acesso a dados e rede;
- Encapsulamento de estruturas de dados, como listas e dicionários.
Dessa forma, com a biblioteca de classes, a pessoa desenvolvedora precisa se preocupar somente em conhecer as classes necessárias para entregar a solução.
Para isso, você pode usar a documentação riquíssima do .Net, além de diversos materiais auxiliares.
NET: um pouco sobre o MSIL
Antes de mais nada, para entender o Microsoft Intermediate Language (MSIL), é importante entender o que é código gerenciado, que será executado dentro do “ambiente controlado” da CLR.
O código gerenciado é escrito usando uma linguagem de programação de alto nível, como C#, VB.NET ou F#.
Quando compilado, o código é convertido para o MSIL (ou simplesmente IL, que é um código independente da arquitetura do CPU) e será convertido para o código de máquina em um arquivo com extensão .dll
ou .exe
.
A principal vantagem do código gerenciado é permitir que as pessoas desenvolvedoras se preocupem com a lógica da aplicação, ao invés de detalhes de baixo nível.
Além do mais, também oferece recursos avançados de interoperabilidade, suporte a reflection e componentização.
O gerenciamento automático da memória também é uma das maiores facilidades. Afinal de contas, tira a tarefa de desalocar recursos (como variáveis e objetos) de forma manual e transmite tal responsabilidade para o Garbage Collector — o coletor de lixo da memória.
.NET: JIT
No contexto da execução de uma aplicação, temos o JIT (just-in-time, na hora certa, em tradução livre), que é um componente de vital importância para o .NET.
É através do JIT que ocorre a conversão do código de uma linguagem .NET para o código de máquina específico de uma arquitetura do processador em uso. Esses processos acontecem em tempo de execução.
O processo acontece da seguinte maneira: durante a execução da aplicação, o código IL é gerado pela CLR que, em seguida, é repassado ao JIT Compiler — que analisa o código, verificando as chamadas aos métodos. Tudo isso é compilado para o código nativo de máquina.
Um dos principais benefícios da compilação JIT é a possibilidade de executar o código diretamente pelo processador. O que traz ganhos importantes de desempenho.
Além disso, durante o processo de compilação, o JIT pode melhorar o código a partir de algumas técnicas como, por exemplo, eliminar o código que não foi utilizado e otimizar laços, como for
ou while
.
É importante ressaltar que existem alguns tipos de JIT Compiler em .NET, por exemplo:
- Normal: compila os métodos da aplicação de forma individual;
- Precompiler: compila todos os assemblies de uma só vez antes da execução;
- Economia de energia: faz uma série de otimizações adicionais para reduzir consumo de energia em aplicativos embarcados ou mobile.
Então, em resumo, o JIT é o componente da arquitetura .NET que se encarrega de traduzir o IL que as aplicações em código nativo geram, para executar na CLT (a máquina virtual do .NET).
.NET: assemblies
Dentro do universo do .NET, outro conceito importante são os Assemblies
. Em geral, trata-se de um pacote que contém arquivos como .dll
, executáveis, metadados e outros recursos necessários para executar o programa.
Então, uma aplicação escrita com tecnologia .NET compreende um conjunto de assemblies dos tipos:
.dll
: utilizado por outros assemblies, como um arquivo.dll
que congrega um conjunto de funções para gerar uma chave Pix, por exemplo;.exe
: arquivo executável que criamos e será executado pela CLR.
Entender esse conceito é importante para encapsular o código em unidades lógicas, reutilizar o código na forma de componentes, carregar os assemblies na memória somente quando for necessário e obter informações do assembly de forma programática usando `reflection´.
Bem, agora que você já sabe o que é um assembly, que tal entender como ele é estruturado? Dê uma olhada na figura abaixo:
- Header (cabeçalho): contém as informações usadas pelo sistema operacional;
- CLR Header: contém as informações que a CLR usará;
- IL Code: mantém o código do assembly compilado em IL;
- Type Metadata: contém os metadados referentes aos tipos contidos no assembly, como classes, enums, structs;
- Assembly Manifest: coleção de dados que ajudam a descrever o assembly, como a versão e referências necessárias;
- Embedded Resources: é uma seção opcional, pois a aplicação pode ter ou não
resources
, que são arquivos como imagens, sons, vídeos, entre outros.
A história do .NET
Para conhecer a história do .NET, temos que voltar aos anos 1990. Naquela época, a Microsoft percebeu que precisava ter sua própria plataforma que unifica todo processo de desenvolvimento de software.
Nesse mesmo período, o Java já despontava à frente de várias tecnologias e a gigante do sr. Bill Gates não podia ficar para trás.
Eram muitos desafios. Mas, sem dúvidas, o principal era conseguir inovar e superar as limitações tecnológicas.
Para dar início ao projeto desta nova plataforma de desenvolvimento, a empresa contratou Anders Hejlsberg, o pai do Delphi, uma evolução do Pascal que era uma das tecnologias mais populares para desenvolvimento de sistemas desktop na época.
Mas o .NET iniciou, de forma oficial, apenas em julho de 2000. O objetivo principal era fornecer um ambiente de desenvolvimento de aplicativos modernos e que pudessem atender a ‘“nova” internet.
Para isso, a plataforma focou em interoperabilidade, produtividade e é claro segurança.
Em fevereiro de 2002, a Microsoft lançou a primeira versão do .NET Framework com CLR, biblioteca de classes e várias linguagens de programação — com destaque à recém-criada C# e ao VB.NET.
O público-alvo inicial eram pessoas desenvolvedoras de aplicativos para a plataforma Windows e sistemas web.
Com o passar dos anos, a plataforma passou por várias evoluções e atualizações, se consolidando como uma solução de mercado poderosa para o desenvolvimento de software.
Desde o início, a Microsoft também entregou uma nova versão da sua IDE, o Visual Studio, que em 2005 trouxe melhorias significativas para o desenvolvimento de aplicações .NET.
Em 2007, na versão 3.0, lançou a introdução das tecnologias WPF (Windows Presentation Foundation e WCF (Windows Communication Foundation).
O WCF teve como objetivo criar um modelo para construir sistemas distribuídos, de forma mais simples, que pudessem se comunicar usando diversos protocolos como, por exemplo, HTTP ou MSMQ (Microsoft Message Queuing).
O WPF, por sua vez, tinha o foco de criar interfaces mais atraentes e usava uma linguagem de marcação para definir a estrutura e layout das telas de aplicações.
Em 2010, a versão .NET Framework 4 trouxe grandes melhorias no desempenho e apresentou novos recursos como o tipo dynamic
e a programação paralela.
Até este ponto da história, o .NET Framework focava apenas no ambiente Windows. Mas como ficam as pessoas desenvolvedoras que trabalhavam no Linux?
Bom, existiam iniciativas, como o Mono, que permitia trabalhar com .NET no sistema do pinguim.
A Microsoft, sempre atenta às demandas da comunidade dev, anunciou em 2014 o .NET Core.
Trata-se de uma total reescrita do .NET Framework, focada em rodar tanto no Windows quanto no Linux. Quer dizer, a Microsoft tem duas versões da sua plataforma se desenvolvendo em paralelo.
Últimas versões do .NET
Mais recentemente, em 2020, a Microsoft decidiu unificar o .NET Framework e .NET Core em uma só versão,. O que denominou de simplesmente de .NET.
De acordo com a Microsoft, o objetivo é unificar plataformas de estruturas divergentes, reduzir complexidades e aumentar o alcance da plataforma.
As últimas versões do .NET Framework e .NET Core são 4.8 e 3.x, respectivamente. A empresa decidiu lançar a iniciativa de unificação na versão 5 e, até o momento em que estou escrevendo este artigo, está na versão 7 e com a versão 8 em preview.
Desde o início, a Microsoft evolui, constantemente, todo o ecossistema .NET, incluindo novos recursos e removendo os que não fazem mais sentido.
Mas, atualmente, o .NET é uma robusta plataforma para desenvolvimento. É amplamente utilizada na indústria de software e conta com uma ativa comunidade de pessoas desenvolvedoras ao redor do mundo.
Olha só a evolução das versões do .NET até chegar na mais atual — LTS (long time support, suporte de longo prazo, em tradução livre):
Você pode conferir a versão acessível da linha do tempo no GitHub.
Nesse processo de evolução, assim como outras tecnologias, o .NET também adotou o versionamento, disponibilizando as formas Preview e LTS (Long Time Support).
As versões pares são LTS, e as ímpares, as previews. Aqui está um recorte das versões a partir de 2019:
Fonte: Site Microsoft
Linguagens de programação da plataforma .NET
Como você já sabe, é possível trabalhar com algumas linguagens diferentes dentro da plataforma do .NET.
De fato, o C# está presente desde o nascimento do framework. No entanto, com o passar dos anos, a Microsoft incorporou outras linguagens.
Essa foi uma forma de se manter sempre atualizada e relevante. Além de proporcionar para as pessoas desenvolvedoras a possibilidade de escolher com qual linguagem trabalhar.
Atualmente , algumas das linguagens que a plataforma suporta são:
- C#: é a principal linguagem da plataforma — é moderna, orientada a objetos e fortemente tipada. Com uma sintaxe muito próxima do C e C++,possui uma curva de aprendizagem bem suave e uma comunidade bastante ativa. Abaixo um exemplo de um código em C#:
Console.Write("Digite seu nome: ");
// Ler o nome inserido pelo usuário
string nome = Console.ReadLine();
// Exibir uma saudação usando o nome inserido
Console.WriteLine($"Olá, {nome}! Bem-vindo ao mundo da programação em C#.");
// Aguardar o usuário pressionar uma tecla antes de fechar o programa
Console.ReadKey();
- VB.NE: é a atualização do antigo Visual Basic para a plataforma .NET. Então, quem já trabalhava com essa tecnologia VB consegue continuar a criar aplicações na plataforma .NET sem problemas. Abaixo um código exemplo em VB.NET:
Imports System
Module Program
Sub Main()
' Solicitar ao usuário que insira seu nome
Console.Write("Digite seu nome: ")
' Ler o nome inserido pelo usuário
Dim nome As String = Console.ReadLine()
' Exibir uma saudação usando o nome inserido
Console.WriteLine($"Olá, {nome}! Bem-vindo ao mundo da programação em VB.NET.")
' Aguardar o usuário pressionar uma tecla antes de fechar o programa
Console.ReadKey()
End Sub
End Module
- F#: é a linguagem da Microsoft que foca em programação funcional. É interessante como ela combina programação funcional e é orientada a objetos, além de oferecer recursos avançados com relação à programação assíncrona e paralela. Abaixo um exemplo:
open System
let main () =
printf "Digite seu nome: "
let nome = Console.ReadLine()
printfn $"Olá, {nome}! Bem-vindo ao mundo da programação em F#."
Console.ReadKey() |> ignore
main()
C++: é uma linguagem multiplataforma de uso geral, que implementa orientação a objetos. É derivada da linguagem C;
IronPython: é uma implementação de código aberto da linguagem Python integrada à plataforma .NET. Acesse a página da linguagem.
Essas são só alguns exemplos de linguagens que são compatíveis com a plataforma. Mas também existem outros projetos que podem ser executados, por exemplo, o Boo e Cobra.
Nuget, o gerenciador de pacotes .NET
Como é comum em outras tecnologias modernas, a plataforma .NET também possui um gerenciador de pacotes.
Essa ferramenta é de grande importância para o ecossistema, pois nos dá a possibilidade de encontrar, instalar e gerenciar bibliotecas e extensões em nossos projetos
Para entender melhor como funciona esse mecanismo, imagine que pessoas desenvolvedoras têm a necessidade de reaproveitar código útil entre projetos.
Em .NET, podemos “empacotar” o código no formato de uma dl
l e compartilhar.
Um pacote NuGet é, em resumo, um arquivo compactado com a extensão .nupkg
. que irá agrupar não só a dll, mas também os códigos relacionados, scripts e arquivos de configuração.
Esses pacotes podem ser hospedados em um repositório privado dentro de uma infraestrutura própria ou através do Nuget.org, repositório público em nuvem:
Essas são algumas das características e funcionalidades do Nuget:
- Pacotes: unidades de código distribuíveis.
- Repositórios: podemos armazenar os pacotes em um repositório online. o muget.org, oficial da Microsoft. Ele mantém e hospeda diversas bibliotecas reutilizáveis nos mais diversos projetos e conseguimos procurar pacotes ou mesmo hospedar os nossos. Abaixo a página do repositório:
- Integração com o Visual Studio: O nuget possui uma completa integração com o Visual Studio, a IDE padrão no desenvolvimento .NET. Pessoas desenvolvedoras podem procurar, instalar e atualizar pacotes diretamente através do gerenciador de pacotes NuGet no Visual Studio;
- Linha de comando: além de possuir integração com o Visual Studio,, o NuGet pode ser acessado através da CLI (command line interface). Isso permite usar o NuGet em outros ambientes de desenvolvimento e também em scripts de automação;
- Versionamento: com o NuGet é possível especificar versões de pacotes para garantir a consistência e estabilidade em seus projetos. Muito útil para evitar problemas de compatibilidade;
- Restore: quando usamos o NuGet e o projeto é criado ou aberto no Visual Studio, elet restaura os pacotes necessários a partir dos repositórios especificados, garantindo que as dependências do projeto sejam atendidas;
- Suporte: dá suporte a diversos tipos de projetos .NET, de aplicativos console até os mais recentes como o MAUI.
Conhecer o NuGet é essencial para aqueles que desenvolvem com a plataforma .NET, pois facilita a distribuição e gerenciamento de bibliotecas.
Também colabora para a extensão de código reutilizáveis em projetos .NET, economizando o esforço e contribuindo para o fortalecimento da comunidade dev. 🙂Para saber mais sobre o NuGet, deixamos as recomendações a seguir:
- Repositorio NuGet
- Microsoft - Uma introdução ao NuGet
- Curso de C#: criando e distribuindo bibliotecas em .NET
Biblioteca de testes
Já sabemos que o .NET é uma plataforma ampla, com a qual podemos desenvolver aplicações desktop, web e até mobile.
Nesse cenário, os testes representam uma boa prática da engenharia de software, já que asseguram a qualidade do que criamos.
Eles também ajudam a identificar, corrigir bugs e podem, inclusive, melhorar o design de código.
Tudo isso antes do sistema ser disponibilizado às pessoas usuárias finais. Podemos implementar testes de unidade, integração, aceitação e tantos outros.
Mas, neste momento, queremos mostrar bibliotecas que permitem a implementação de testes em seus projetos. Vamos listar as mais conhecidas e difundidas no .NET:
MSTest, está é uma biblioteca de teste fornecida pela própria Microsoft com,sintaxe muito similar a quem desenvolve em .NET.
Entre as suas vantagens, está a integração com o Visual Studio e o suporte para teste de unidade e integração.
Um exemplo de método de teste unitário usando o MSTest:
[TestClass]
public class SomaTests
{
[TestMethod]
public void TestCalcular()
{
// Arrange
Soma soma = new Soma();
// Act
double resultado = soma.Calcular(3.5, 2.5);
// Assert
Assert.AreEqual(6.0, resultado);
}
}
NUnit é uma das mais antigas bibliotecas de testes para .NET e foi desenvolvida inspirada no JUnit do Java.
É bem popular na comunidade .NET por ser bastante robusta. Suas principais características são: suporte a testes parametrizados, suporte a teste de unidade, integração e funcionais.
Aqui está um exemplo de um método de teste unitário usando o NUnit:
[Test]
public void TestCalcular()
{
// Arrange
Soma soma = new Soma();
// Act
double resultado = soma.Calcular(3.5, 2.5);
// Assert
Assert.AreEqual(6.0, resultado);
}
xUnit é uma biblioteca com foco em simplicidade e extensibilidade. É uma das mais populares para testar no .NET, sobretudo na comunidade ágil.
Suas principais características são: usar o conceito de teoria para testar várias combinações em um único método de teste e ser altamente configurável, permitindo a adoção de várias convenções de código.
Um exemplo de um método de teste unitário usando o NUnit:
[Fact]
public void TestCalcular()
{
// Arrange
Soma soma = new Soma();
// Act
double resultado = soma.Calcular(3.5, 2.5);
// Assert
Assert.Equal(6.0, resultado);
}
Existem diferenças entre essas bibliotecas. No entanto, todas permitem escrever e executar testes automatizados de forma eficaz.
Além disso, são amplamente utilizadas na comunidade .NET para garantir a qualidade do software desenvolvido. Portanto, gafanhoto 🦗, escolha com sabedoria!🙃
Como acessar dados em .NET
O acesso a dados é uma tarefa essencial dentro do desenvolvimento de sistemas. Independentemente da plataforma, em algum momento pode ser necessário, por exemplo, fazer alguma alteração na base de dados de uma aplicação.
Com este framework, quem desenvolve em C# tem diversas opções para manipular uma base de dados de forma eficiente.
Uma das primeiras abordagens para acessar dados na plataforma é o ADO.NET (ActiveX Data Objects), que entrega uma forma padronizada (praticamente uma receita de bolo) para se conectar ao banco de dados relacionais, como SQL Server, MySQL. entre outros.
Para fazer este acesso temos algumas classes como:
SqlConnection
;SqlCommand
;SqlDataReader
;SqlDataset
.
Tal conjunto de classes em conjunto permite que as pessoas programadoras consigam criar consultas e executar comandos SQL em base de dados relacionais.
Abaixo, um exemplo de um código de uma classe de conexão com MySql utilizando ADO.NET:
using MySql.Data.MySqlClient;
namespace ControleDeSeriesFilmes.DAO
{
sealed class ConnectionDAO
{
private static MySqlConnection conn = null;
public static MySqlConnection getConnection() {
if (conn == null)
{
conn = new MySqlConnection("Server=localhost;Database=filmesseries;Uid=usuario;Pwd=senha");
}
return conn;
}
}
}
Além do ADO.NET, o .NET também possui um ORM para chamar de seu: o Entity Framework, ou simplesmente EF.
Um ORM (Object-Relational Mapping) é uma ferramenta para realizar o mapeamento de uma classe para uma tabela em um banco de dados relacional.
Dentre os motivos que levam a adoção dos ORMs, podemos citar os seguintes:
- Facilidade: tal ferramenta facilita a interação com a base de dados relacionais, pois não precisamos nos preocupar em tratar objetos;
- Produtividade: com ORMs conseguimos evitar a complexidade envolvida na interação com os bancos de dados. Sendo assim, podemos nos concentrar mais na lógica de negócio do projeto e menos nas consultas SQL específicas do banco;
- Segurança: fornecem recursos de segurança, como a prevenção de injeções SQL, o que ajuda a tornar seu programa mais resistente a ataques maliciosos;
- Refatoração: caso haja a necessidade de alteração no esquema do banco de dados, um ORM pode facilitar esse processo de atualização do código correspondente. As modificações podem ser refletidas mais facilmente nos modelos de objetos;
- Curva de aprendizagem: para pessoas desenvolvedores mais familiarizados com programação orientada a objetos do que com SQL, a utilização de ORMs pode reduzir a dificuldade em aprender o necessário para trabalhar com bancos de dados.
Utilizando o EF é possível trabalhar com dados usando objetos e consultas LINQ (Language Integrated Query), uma poderosa linguagem de consulta a coleções de objetos, o que torna o acesso a dados mais intuitivo e produtivo.
Atualmente existe também o micro ORM conhecido como Dapper, uma biblioteca que oferece uma forma, rápida, simples e eficiente para acessos a dados em .NET.
É, portanto, uma boa opção em cenários em que a velocidade é um requisito importante. É o caso de uma API REST, por exemplo. Vemos abaixo uma consulta:
`var rows = connection.Query("select 1 A, 2 B union all select 3, 4").AsList();`
Para fechar, a plataforma .NET conta com diversas opções eficientes para acessar a fonte de dados, colaborando para escolhermos a melhor abordagem.
De todo modo, deve-se levar em consideração as necessidades e requisitos de cada aplicativo.
Para se aprofundar ainda mais em ferramentas de acesso a dados em .NET, confira os links abaixo:
Certificações
Progredir na trajetória profissional em tecnologia é um objetivo compartilhado por muita gente 😉.
Na programação, em especial, é importante para o desenvolvimento profissional ter uma forma de atestar para empresas a nossa capacidade e conhecimento no trabalho com uma linguagem, por exemplo.
Para isso, temos as certificações, comprovações oferecidas por empresas como a IBM, Google, Oracle e também Microsoft.
Elas são interessantes possibilidades de atestar suas capacidades técnicas em tecnologias específicas, o que pode ser uma exigência de mercado para uma vaga.
As certificações da Microsoft são reconhecidas globalmente e estão em constante atualização, com uma orientação bem voltada ao mercado.
Possuir uma delas pode ser uma grande vantagem para profissionais que estejam à procura de um emprego ou queiram melhorar seus currículos.
O universo de certificações é bem extenso, você pode vê-las na página oficial como na imagem abaixo:
Vamos abordar algumas certificações .NET focadas em pessoas desenvolvedoras:
Azure Fundamentals ( Exame AZ-900)
O objetivo desta certificação é que a pessoa desenvolvedora demonstre conhecimentos básicos de computação em nuvem em geral e do Microsoft Azure em particular.
É, portanto, um pré-requisito para as outras certificações Azure.
Azure Developer Associate (Exame AZ-204)
Nesta certificação, a pessoa precisa demonstrar conhecimentos em todas as fases do ciclo de desenvolvimento, incluindo a coleta de requisitos, design, desenvolvimento, implantação, segurança, manutenção e monitoramento da aplicação.
Assim, precisa conhecer os seguintes itens do Azure:
- SDKs (Software Development Kits);
- Opções de armazenamento de dados;
- Conexões de dados;
- APIs;
- Autenticação/autorização de aplicativo;
- Implantação de computação/contêiner;
- Depuração.
Um ponto de atenção é que a pessoa deve ter no mínimo 2 anos de experiência em desenvolvimento profissional e experiência com o Azure.
Azure Data Fundamentals (Exame DP-900)
Com essa certificação, a pessoa atesta habilidades técnicas para criar e começar a trabalhar com dados na nuvem do Azure.
Nesse caso, é necessário ter familiaridade com conceitos como dados relacionais e não-relacionais.
Azure Data Fundamentals (Exame DP-420)
A exigência dessa certificação é ter experiência para projetar, implementar e monitorar aplicativos nativos de nuvem, que armazenam e gerenciam dados.
Outras responsabilidades necessárias são a implementação de modelos e de distribuição de dados, o carregamento de dados em um banco do Azure Cosmos DB e a otimização e manutenção da solução.
É importante também ter a capacidade de interpretar JSON, ler código C# ou Java e usar o PowerShell.
Essas são só algumas das certificações disponibilizadas pela Microsoft, mas alguém pode se perguntar "Cadê a certificação de C#?” Ou de Banco de Dados SQL?”.
Acontece que o direcionamento da empresa neste quesito, nos últimos anos, tem focado na sua plataforma de cloud computing, o Azure.
No entanto, no site das certificações, ainda é possível consultar certificações e exames descontinuados.
Uma novidade interessante é a de que recentemente a Microsoft anunciou uma certificação de fundamentos do C# em parceria com a [freeCodeCamp] (https://www.freecodecamp.org/learn/foundational-c-sharp-with-microsoft/).
O melhor de tudo é que é uma certificação gratuita. Nesta iniciativa, a pessoa interessada executa uma série de treinamentos e exercícios em texto pelo site Microsoft Lean,
À medida em que você conclui os módulos e progride no treinamento, você adquire troféus que serão utilizados nas atividades da plataforma da freeCodeCamp.
Para saber mais sobre as certificações para o ecossistema .NET, consulte o site do Microsoft Learn.
Confira também o link a respeito de certificações de alunos.
Comunidades .NET
Desde a criação do framework, a comunidade .NET é uma das mais ativas dentro do universo da tecnologia.
Atualmente, existem diversas comunidades, grupos de discussões, eventos e encontros técnicos que ajudam a difundir o .NET e a alavancar ainda mais sua popularidade.
Participar de comunidades é uma ótima oportunidade para trocar experiências e conhecimentos e encontrar parcerias em projetos.
Além do mais, por ser um ambiente de aprendizagem e de colaboração, a comunidade é uma ferramenta poderosa para aumentar a motivação e a produtividade.
No Brasil, a comunidade .NET é gigante e conta com diversas iniciativas pelo país.
Você pode encontrar os eventos online e presenciais mais perto de você no site do Meetup. Essas são algumas das comunidades .NET:
Inclusive, a própria Microsoft incentiva a formação de comunidades. É só ver, por exemplo, iniciativas da empresa como o Reactor, centro de aprendizado compartilhado para pessoas desenvolvedoras se conectarem localmente.
Conclusão
Atualmente, o .NET possui um ecossistema robusto, com uma comunidade vasta e ativa dentro do mundo da tecnologia. Atrelado a ele, existe o C#, umas das linguagens mais populares para desenvolver diversos tipos de projeto, como aplicações para desktop, aplicativos móveis, sistemas web e microsserviços.
Vale ressaltar que esse assunto não se encerra aqui, afinal a plataforma .NET está em constante evolução, especialmente após ter adotado outras tecnologias, como a máquina virtual (CLR), o suporte à programação orientada a objetos e a integração com soluções em nuvem (como Azure).
Quer se aprofundar ainda mais na tecnologia .NET? Aqui estão algumas referências para te ajudar:
- Tech Guide C#, um guia de referência para estudar C# e .NET, trazendo tecnologias e conceitos que vão te ajudar a ser um profissional em T.
- Artigo Listas em C#
- Artigo Strings com c#: como usá-las para manipular textos
- Artigo Como separar palavras em String com C#
- Artigo Criando uma solução C# no Linux Ubuntu
- Artigo C#: entendendo classes e structs
- Artigo Como criar uma calculadora de IMC com ASP.NET Core Blazor
- Artigo Quem está por trás das principais linguagens de programação?
- Artigo Regex em C#: como utilizar expressões regulares
- Alura+ Blazor: o que é, WebAssembly e o uso de C# no Front-End