It's my repository of Microsoft Full-Stack .NET development with: Asp.NET Core, Blazor, C# (C-Sharp), .NET Framework and .NET Core.
-
Microsoft iniciou nos anos 70 criando linguagens de programação: Basic
-
Nos anos 80, surge o DOS, que foi utilizado como OS padrão para computadores IBM
-
Nos próximos anos a Microsoft atua fortemente na criação do OS Windows.
-
-
1997, No fim dos anos 90, a Microsoft tentou consolidar as ferramentas de desenvolvimento (IDEs e runtimes) com o Visual Studio 97:
- Visual Basic 5
- Visual FoxPro 5
- C++ 5
- J++
-
1998, lançamento do Visual Studio 6:
- Visual Basic 6
- Visual FoxPro 6
- C++ 6
- J++ 6
A linguagem C# ou também C-Sharp, é uma linguagem de programação de alto-nível e orientada a objetos. C# (pronunciado "C sharp") é uma linguagem de programação moderna, orientada a objetos e fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET. Foi criada no início dos anos 2000 e rapidamente se tornou uma das linguagens mais populares para o desenvolvimento de aplicações de desktop, web, móveis e jogos.
Principais características do C#:
- Orientação a Objetos:
- Classes e Objetos: Suporta a criação e manipulação de classes e objetos.
- Herança: Permite a criação de classes derivadas que herdam características de classes base.
- Polimorfismo: Permite que métodos em classes derivadas tenham comportamentos diferentes.
- Encapsulamento: Permite esconder os detalhes internos de uma classe e expor apenas as funcionalidades essenciais.
-
Tipagem Forte e Estática:
- Verificação de Tipos em Tempo de Compilação: Erros de tipo são detectados em tempo de compilação, o que reduz erros em tempo de execução.
- Tipagem Estática: Os tipos das variáveis são definidos em tempo de compilação e não podem ser alterados.
-
Sintaxe e Semântica Modernas:
- Legibilidade: A sintaxe é clara e intuitiva, facilitando a leitura e escrita do código.
- Características Funcionais: Suporta programação funcional com expressões lambda, LINQ (Language Integrated Query) e delegados.
A sintaxe do C# lembra a sintaxe do JavaScript.
-
Suporte à Programação Assíncrona:
- Async e Await: Facilita a escrita de código assíncrono, melhorando a performance e a capacidade de resposta das aplicações.
-
Plataforma .NET:
Biblioteca de Classes Base: A .NET proporciona uma vasta biblioteca de classes que facilita o desenvolvimento de uma ampla gama de aplicações. O .NET Framework é uma plataforma de desenvolvimento criada pela Microsoft que fornece um ambiente de execução para aplicações e serviços, permitindo que desenvolvedores construam e executem aplicações de forma consistente. Ele inclui uma grande biblioteca de classes (Framework Class Library - FCL) e uma máquina virtual conhecida como Common Language Runtime (CLR), que oferece serviços como gerenciamento de memória, segurança, e exceção.
A linguagem C# foi desenvolvida especificamente para o .NET Framework e é uma das linguagens de programação mais proeminentes para o desenvolvimento de aplicações na plataforma .NET. C# foi desenhada para aproveitar ao máximo os recursos oferecidos pelo .NET, incluindo o CLR, FCL e outras funcionalidades. O código C# é compilado para Intermediate Language (IL), que é então executado pelo CLR. Isso permite que o código C# seja executado em qualquer plataforma que suporte o CLR. Graças ao CTS e CLS, C# pode interoperar facilmente com outras linguagens .NET como VB.NET e F#. As funcionalidades da Linguagem incluem:
Suporte Nativo: Muitas das funcionalidades avançadas do .NET, como LINQ (Language Integrated Query), manipulação assíncrona com
async
eawait
, e expressões lambda, são diretamente suportadas e integradas em C#.Atualizações e Evoluções: A evolução do C# e do .NET Framework acontece de forma coordenada, garantindo que novas funcionalidades do framework possam ser utilizadas de forma eficaz pela linguagem.
Principais Componentes do .NET Framework:
-
Common Language Runtime (CLR):
- Máquina Virtual: O CLR é o ambiente de execução do .NET que gerencia a execução de programas escritos em diversas linguagens de programação.
- Gerenciamento de Memória: Inclui coleta de lixo automática, que gerencia a alocação e desalocação de memória.
- Segurança e Isolamento: Implementa políticas de segurança e isolamento de aplicativos, proporcionando um ambiente de execução seguro.
-
Framework Class Library (FCL):
- Biblioteca de Classes: Uma extensa biblioteca de classes reutilizáveis que fornece suporte para manipulação de dados, acesso a bancos de dados, entrada/saída, gráficos, e desenvolvimento de interfaces de usuário.
- APIs Consistentes: Oferece APIs consistentes e fáceis de usar para realizar tarefas comuns.
-
Common Type System (CTS):
- Sistema de Tipos: Define todos os tipos de dados e as regras para a definição e uso desses tipos no .NET, garantindo interoperabilidade entre linguagens.
-
Common Language Specification (CLS):
- Especificação de Linguagem: Conjunto de regras que linguagens de programação devem seguir para serem compatíveis com o .NET, facilitando a interoperabilidade.
Ferramentas e IDEs: Visual Studio é o ambiente de desenvolvimento integrado (IDE) da Microsoft, Visual Studio, oferece um suporte extensivo para desenvolvimento com C# e .NET, incluindo ferramentas de depuração, designers visuais, e integração contínua.
Versões do .NET:
A plataforma .NET evoluiu ao longo dos anos e agora está disponível em diferentes formas:
- .NET Framework: A versão original, destinada principalmente ao desenvolvimento de aplicações Windows.
- .NET Core: Uma versão cross-platform e open-source do .NET, que permite desenvolvimento para Windows, macOS e Linux. Com o .NET Core (agora .NET 5+), C# pode ser usado para desenvolver aplicações que rodam em Windows, Linux e macOS.
- .NET 5+: A versão unificada que combina os melhores aspectos do .NET Framework, .NET Core e Xamarin, proporcionando um ambiente de desenvolvimento consistente para todas as plataformas.
O .NET Framework é uma plataforma poderosa e abrangente para desenvolvimento de software, e a linguagem C# é sua principal linguagem de programação. Juntos, eles oferecem uma base robusta para construir aplicações seguras, eficientes e de alto desempenho. A integração profunda entre C# e o .NET permite que desenvolvedores aproveitem ao máximo os recursos oferecidos pela plataforma, facilitando o desenvolvimento e a manutenção de aplicações complexas.
- Segurança:
- Mecanismos de Segurança: Oferece diversas características de segurança como controle de acesso, exceções e gerenciamento automático de memória com garbage collection.
Aplicações Comuns:
-
Desenvolvimento Web:
- ASP.NET: Framework para a construção de aplicações web dinâmicas e serviços web.
-
Aplicações de Desktop:
- Windows Forms e WPF (Windows Presentation Foundation): Para criar aplicações desktop ricas para Windows.
-
Desenvolvimento Móvel:
- Xamarin: Plataforma para o desenvolvimento de aplicações móveis cross-platform usando C#.
-
Desenvolvimento de Jogos:
- Unity: Um dos motores de jogos mais populares que usa C# como linguagem de script.
-
Serviços Web e APIs:
- Web API: Para a construção de APIs RESTful.
Mostra a aplicação do dotnet funcionando e suas opções:
dotnet
Mostra a versão instalada do seu dotnet:
dotnet --version
Lista todos os pacotes do sdk instalados na sua máquina:
dotnet --list-sdks
O IIS Express é um web server (servidor web) para executar o código ASP.NET Framework na web, através da sua máquina local. IIS Express é um servidor web que foi projetado principalmente para facilitar o desenvolvimento e testes de aplicações web em um ambiente de desenvolvimento local. Ele oferece muitas das mesmas funcionalidades que o Internet Information Services (IIS) completo, mas com algumas diferenças importantes que o tornam mais adequado para desenvolvimento em vez de produção.
Características do IIS Express:
-
Facilidade de Uso:
- Instalação Simplificada: Não requer permissões de administrador para instalação e configuração.
- Integrado ao Visual Studio: Funciona perfeitamente com o Visual Studio, facilitando o desenvolvimento e a depuração de aplicações web diretamente dentro do ambiente de desenvolvimento.
-
Funcionalidades de IIS:
- Compatibilidade: Suporta muitas das funcionalidades do IIS completo, como suporte a ASP.NET, autenticação, e extensões.
- Configuração Similar: Usa arquivos de configuração semelhantes aos do IIS, permitindo uma fácil transição do desenvolvimento para o servidor de produção.
-
Ambiente de Desenvolvimento:
- Focado no Desenvolvimento Local: Otimizado para rodar localmente em um ambiente de desenvolvimento, proporcionando uma experiência leve e rápida para desenvolvedores.
- Portabilidade: Facilita a configuração de ambientes de desenvolvimento em diferentes máquinas sem a complexidade de configurar um servidor completo.
Limitações do IIS Express para Produção:
-
Desempenho e Escalabilidade:
- Desempenho Limitado: Não é projetado para lidar com grandes volumes de tráfego ou altas cargas de trabalho como o IIS completo.
- Recursos Limitados: Não possui todas as otimizações de desempenho que o IIS completo oferece para ambientes de produção.
-
Segurança:
- Segurança Restrita: Embora suporte autenticação e outras funcionalidades de segurança, não é tão robusto quanto o IIS completo para ambientes de produção, que exigem níveis mais altos de segurança e controle.
-
Gestão e Monitoramento:
- Ferramentas Limitadas: Faltam algumas das ferramentas avançadas de gerenciamento, monitoramento e diagnóstico que estão disponíveis no IIS completo.
Uso Adequado de IIS Express:
Desenvolvimento e Teste Local:
- Ideal para desenvolvimento local de aplicações web.
- Facilita a depuração e o teste de funcionalidades antes da implantação em um servidor de produção.
Transição para Produção:
- IIS Completo: Para ambientes de produção, é recomendado usar o IIS completo, que oferece melhor desempenho, segurança aprimorada, e ferramentas de gerenciamento avançadas.
- Configuração Semelhante: A transição do IIS Express para o IIS completo é facilitada pela similaridade nas configurações e suporte a funcionalidades.
IIS Express é uma excelente ferramenta para desenvolvimento e teste de aplicações web, oferecendo uma experiência leve e fácil de usar para desenvolvedores. No entanto, para implantações em ambientes de produção, o IIS completo é a escolha apropriada, devido ao seu desempenho superior, robustez em termos de segurança e ferramentas avançadas de gerenciamento e monitoramento.
Aqui está um exemplo simples de um programa em C# que imprime "Hello, World!"
na console:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}