Image Image Image Image Image Image Image Image Image

Um tour pela linguagem C#

4 de setembro de 2019 | By | No Comments

Este texto foi uma tradução e adaptação a partir do site oficial da Microsoft.

C# (pronunciado “See Sharp”) é uma linguagem de programação simples, moderna, orientada a objeto e fortemente “tipada”. O C# tem suas raízes na família de linguagens C e será imediatamente familiar para programadores em C, C ++, Java e JavaScript. Este passeio fornece uma visão geral dos principais componentes da linguagem. Se você deseja explorar a linguagem por meio de exemplos interativos, tente a introdução aos tutoriais em C# da Microsoft que em breve teremos a nossa versão brasileira aqui também. 🇧🇷

Orientada a Objetos e a Componentes

C# é uma linguagem orientada a objetos, mas o C# inclui ainda suporte para programação orientada a componentes. O design contemporâneo de software depende cada vez mais de componentes de software na forma de pacotes de funcionalidade independentes e autoexplicativos. A chave para esses componentes é que eles apresentam um modelo de programação com propriedades, métodos e eventos; eles têm atributos que fornecem informações declarativas sobre o componente; e eles incorporam sua própria documentação. O C# fornece construções de linguagem para suportar diretamente esses conceitos, tornando o C# uma linguagem muito natural para criar e usar componentes de software.

C# Lidera um Time de Recursos que te Auxiliam

Vários recursos do C# auxiliam na construção de aplicações robustas e duráveis: A coleta de lixo (Garbage collection) recupera automaticamente a memória ocupada por objetos não utilizados inacessíveis; o tratamento de exceções (exception handling) fornece uma abordagem estruturada e extensível para detecção e recuperação de erros; e o design da linguagem com “tipagens” (type-safe) sendo observadas torna impossível a leitura de variáveis não inicializadas, indexar matrizes além de seus limites ou executar conversões de tipo não verificadas.

C# tem um sistema de tipo unificado. Todos os tipos do C#, incluindo tipos primitivos, como int e double, herdam de um único tipo de objeto raiz (object). Assim, todos os tipos compartilham um conjunto de operações comuns e valores de qualquer tipo podem ser armazenados, transportados e operados de maneira consistente. Além disso, o C# suporta tipos de referência e tipos de valor definidos pelo usuário, permitindo alocação dinâmica de objetos, bem como armazenamento em linha de estruturas leves.

Controle de Versão no Design do C#

Para garantir que os programas e bibliotecas C# possam evoluir ao longo do tempo de maneira compatível, muita ênfase foi colocada no controle de versão (versioning) no design do C#. Muitas linguagens de programação prestam pouca atenção a esse problema e, como resultado, os programas escritos nessas linguagens são interrompidos com mais frequência do que o necessário quando são introduzidas versões mais recentes das bibliotecas dependentes. Aspectos do design de C# que foram diretamente influenciados por considerações sobre versão incluem os modificadores virtuais (virtual) e de substituição (override) separados, as regras para resolução de sobrecarga de método e o suporte a declarações explícitas de membros da interface.

Olá, Mundo!

O programa “Olá, Mundo!” é tradicionalmente usado para introduzir uma linguagem de programação. Aqui está em C#:

Exemplo de “Olá, Mundo!” escrito em C#

Os arquivos de origem C# normalmente têm a extensão de arquivo .cs. Supondo que o programa “Olá, Mundo!” esteja armazenado no arquivo hello.cs, o programa poderá ser compilado usando a linha de comando:

Chamada do arquivo que tem o nosso código do “Olá, Mundo!”

Este comando produz um assembly executável chamado hello.exe. A saída produzida por este aplicativo quando é executada é:

Output, ou em português, a saída/resultado do código executado na chamada anterior.
Importante

O comando csc é compilado para a estrutura completa e pode não estar disponível em todas as plataformas.

O programa “Olá, Mundo!” começa com uma diretiva using que faz referência ao namespace System. Namespaces fornecem um meio hierárquico de organização de programas e bibliotecas C#. Os namespaces contêm tipos e outros namespaces – por exemplo, o namespace System contém vários tipos, como a classe Console referenciada no programa, e vários outros namespaces, como I/O e Collections. Uma diretiva using que faz referência a um determinado namespace permite o uso não qualificado dos tipos que são membros desse namespace. Por causa da diretiva using, o programa pode usar Console.WriteLine como abreviação de System.Console.WriteLine.

Fiz questão de destacar acima o uso do namespace que, apesar da repetição na documentação oficial neste parágrafo e de termos a consciência que é algo básico, já notei no dia-a-dia que muitos profissionais que tiveram aulas de C# na faculdade acabam tendo dificuldade ao entender o uso do namespace, por isso convido a comentarem suas dúvidas sobre o conteúdo e assim nos aprofundarmos nesse conceito básico para que lá na frente não existam dificuldades em entender o “alicerce” da linguagem.

A classe Hello declarada pelo programa “Olá, Mundo!” possui um único membro, o método chamado Main. O método Main é declarado com o modificador estático (static). Embora os métodos de instância possam fazer referência a uma instância de objeto envolvente específica usando a palavra-chave this, métodos estáticos (static) operam sem referência a um objeto específico. Por convenção, um método estático (static) chamado Main serve como ponto de entrada de um programa.

A saída do programa ou simplesmente output, é produzida pelo método WriteLine da classe Console no namespace System. Essa classe é fornecida pelas bibliotecas de classes padrão, que, por padrão, são automaticamente referenciadas pelo compilador.

É só o começo…

Há muito mais para aprender sobre C#. Os tópicos a seguir fornecem uma visão geral dos elementos da linguagem C#. Essas visões gerais fornecerão informações básicas sobre todos os elementos da linguagem e fornecerão as informações necessárias para aprofundar os elementos da linguagem C#:

  • Estrutura do Programa
    • Aprenda os principais conceitos organizacionais na linguagem C#: programas, namespaces, tipos, membros e assemblies.
  • Tipos e Variáveis
    • Aprenda sobre tipos de valor, tipos de referência e variáveis na linguagem C#.
  • Expressões
    • Expressões são construídas a partir de operandos (operands) e operadores (operators). Expressões produzem um valor.
  • Afirmações (Statements)
    • Você usa instruções para expressar as ações de um programa.
  • Classes e Objetos
    • As classes fazem parte dos tipos mais fundamentais de C#. Objetos são instâncias de uma classe. As classes são criadas usando membros, que também são abordados neste tópico.
  • Estruturas (Structs)
    • Structs são estruturas de dados que, diferentemente das classes, são tipos de valor.
  • Matrizes (Arrays)
    • Uma matriz (array) é uma estrutura de dados que contém um número de variáveis que são acessadas por meio de índices computados.
  • Interfaces
    • Uma interface define um contrato que pode ser implementado por classes e estruturas. Uma interface pode conter métodos, propriedades, eventos e indexadores. Uma interface não fornece implementações dos membros que define – apenas especifica os membros que devem ser fornecidos por classes ou estruturas que implementam a interface.
  • Enumerações (Enums)
    • Um tipo de enumeração é um tipo de valor distinto com um conjunto de constantes nomeadas.
  • Delegates
    • Um tipo de delegate representa referências a métodos com uma lista de parâmetros e um tipo de retorno específicos. Os delegates tornam possível tratar métodos como entidades que podem ser atribuídas a variáveis e passadas como parâmetros. Os delegates são semelhantes ao conceito de ponteiros de função encontrados em algumas outras linguagens, mas, diferentemente dos ponteiros de função, os delegates são orientados a objeto e fortemente “tipados”.
  • Atributos (Attributes)
    • Os atributos permitem que os programas especifiquem informações declarativas adicionais sobre tipos, membros e outras entidades.

Gostou do conteúdo? Utilizei este texto como guia para o primeiro dia de treinamento de uma empresa que possui desenvolvedores interessados em aprender C#, e as particularidades do dotnet core que irei detalhar mais para frente.

Mantenha-se atualizado sobre as novidades, me siga no LinkedIn (https://www.linkedin.com/in/felipedealmeida). Caso as postagens não sejam suficientes, me chame por inbox para que eu possa ajudar melhor a você e ao seu time de desenvolvedores.

Afinal, Como Fazer Aplicativos?

14 de setembro de 2018 | By | No Comments

Apesar de muito sedutor sair fazendo um aplicativo, existem etapas a serem consideradas se quisermos que esse não fique empoeirado na loja sem downloads ou instalações ativas.

Estamos a beira da Web 3.0 onde as PWA’s são uma verdadeira tendência, e esse é o primeiro ponto que podemos considerar. Mas o que isso tem a ver?

Aguardem que no canal do Youtube da comunidade GDG de Presidente Prudente teremos algo preparado por um GDE da Google que vai nos dar esse mapeamento!

Enquanto isso estou preparando algo que precisamos descobrir antes de saber Como Fazer Aplicativos!

AGUARDEM…

Geração e Leitura de QRCode

13 de setembro de 2018 | By | No Comments

O uso do QRCode (Quick Response Code), ou em português, Código de Resposta Rápida está muito popular agora para ações de Marketing e muitos no Brasil só sabem que ele existe porque precisam se autenticar no Whatsapp Web com ele. Mas ele foi inventado em 1994 no Japão e por uma empresa que é subsidiária da Toyota (sendo muito popular na Ásia até hoje). Vejam neste post essas e mais curiosidades, além de um conteúdo para quem quer gerar seus próprios QRCode’s.

EM BREVE AQUI NO NOSSO BLOG!