Skip to content

🟢 It's my repository of C# programming language and .NET Framework/Core with his contents.

Notifications You must be signed in to change notification settings

IsaacAlves7/dotnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 

Repository files navigation

1_7I6oONv2fGLQJcNEFA4QSw

It's a repository of .NET Framework 🟢

It's my repository of Microsoft Full-Stack .NET development with: Asp.NET Core, Blazor, C# (C-Sharp), .NET Framework and .NET Core.

🟢 [C#] The History of .NET Framework

  • 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

🟢 [C#] C-Sharp

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#:

  1. 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.
  1. 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.
  2. 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.

  1. 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.
  2. 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 e await, 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. .NET Framework: A versão original, destinada principalmente ao desenvolvimento de aplicações Windows.
  2. .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.
  3. .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.

  1. 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:

  1. Desenvolvimento Web:

    • ASP.NET: Framework para a construção de aplicações web dinâmicas e serviços web.
  2. Aplicações de Desktop:

    • Windows Forms e WPF (Windows Presentation Foundation): Para criar aplicações desktop ricas para Windows.
  3. Desenvolvimento Móvel:

    • Xamarin: Plataforma para o desenvolvimento de aplicações móveis cross-platform usando C#.
  4. Desenvolvimento de Jogos:

    • Unity: Um dos motores de jogos mais populares que usa C# como linguagem de script.
  5. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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.

Hello, World! - C#

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!");
        }
    }
}

🖥️ [C#] Windows Forms Application

🪒 [C#] Razor Pages


🧵 Serilog


🔵 ASP.NET


🟦 ASP.NET Core


🟩 Entity Framework


📓 IronOCR


🗺️ ASP.NET Core RoadMap

1655838503122