Tecnologias

Conheça as principais tecnologias disponíveis para desenvolvimento.

Linguagens

C#

C # é uma linguagem orientada a objetos que permite aos desenvolvedores criar uma variedade de aplicativos seguros e robustos que são executados no .NET Framework. Você pode usar o C # para criar aplicativos cliente do Windows, serviços da Web em XML, componentes distribuídos, aplicativos cliente-servidor, aplicativos de banco de dados e muito, muito mais. O Visual C # fornece um editor de código avançado, designers convenientes de interface de usuário, depurador integrado e muitas outras ferramentas para facilitar o desenvolvimento de aplicativos baseados na linguagem C # e no .NET Framework.

A sintaxe do C # é altamente expressiva, mas também é simples e fácil de aprender. A sintaxe de chaves do C # será instantaneamente reconhecível para qualquer pessoa familiarizada com C, C ++ ou Java. Os desenvolvedores que conhecem qualquer um desses idiomas normalmente conseguem começar a trabalhar produtivamente em C # em um tempo muito curto. A sintaxe C # simplifica muitas das complexidades do C ++ e fornece recursos poderosos, como tipos de valores anuláveis, enumerações, delegados, expressões lambda e acesso direto à memória, que não são encontrados em Java. O C # suporta métodos e tipos genéricos, que fornecem maior segurança e desempenho de tipos, e iteradores, que permitem que os implementadores de classes de coleção definam comportamentos de iteração personalizados que sejam simples de usar pelo código do cliente. As expressões de consulta integrada à linguagem (LINQ) fazem da consulta fortemente tipada uma construção de linguagem de primeira classe.

Como uma linguagem orientada a objetos, o C # suporta os conceitos de encapsulamento, herança e polimorfismo. Todas as variáveis e métodos, incluindo o método Main, o ponto de entrada do aplicativo, são encapsulados dentro das definições de classe. Uma classe pode herdar diretamente de uma classe pai, mas pode implementar qualquer número de interfaces. Os métodos que substituem métodos virtuais em uma classe pai exigem a palavra-chave de substituição como uma forma de evitar a redefinição acidental. Em C #, uma estrutura é como uma classe leve; é um tipo alocado para pilha que pode implementar interfaces, mas não suporta herança.

Além desses princípios básicos orientados a objetos, o C # facilita o desenvolvimento de componentes de software por meio de diversas construções de linguagem inovadoras, incluindo as seguintes:

Assinaturas de método encapsulado chamadas delegadas, que permitem notificações de eventos com segurança de tipos.

Propriedades, que servem como acessadores para variáveis de membros privados.

Atributos, que fornecem metadados declarativos sobre tipos em tempo de execução.

Comentários de documentação XML inline.

Language-Integrated Query (LINQ), que fornece recursos de consulta integrados em uma variedade de fontes de dados.

Se você tiver que interagir com outro software do Windows, como objetos COM ou DLL nativo Win32, você pode fazer isso em C # através de um processo chamado Interop. A interoperabilidade permite que programas C # façam quase tudo que um aplicativo C ++ nativo pode fazer. C # até suporta ponteiros e o conceito de código inseguro para aqueles casos em que o acesso direto à memória é absolutamente crítico.

O processo de criação de C # é simples comparado a C e C ++ e mais flexível que em Java. Não há arquivos de cabeçalho separados e nenhum requisito de que métodos e tipos sejam declarados em uma ordem específica. Um arquivo de origem C # pode definir qualquer número de classes, estruturas, interfaces e eventos.

A seguir estão os recursos adicionais do C #:

Para uma boa introdução geral à linguagem, consulte o Capítulo 1 da Especificação de Linguagem C #.

Para obter informações detalhadas sobre aspectos específicos da linguagem C #, consulte a referência do C #.

Para obter mais informações sobre o LINQ, consulte LINQ (Language-Integrated Query).

Arquitetura do .NET Framework Platform

Programas C # são executados no .NET Framework, um componente integral do Windows que inclui um sistema de execução virtual chamado CLR (common language runtime) e um conjunto unificado de bibliotecas de classes. O CLR é a implementação comercial pela Microsoft da CLI (Common Language Infrastructure), um padrão internacional que é a base para a criação de ambientes de execução e desenvolvimento nos quais idiomas e bibliotecas trabalham juntos sem problemas.

Código-fonte escrito em C # é compilado em uma linguagem intermediária (IL) que está em conformidade com a especificação da CLI. O código IL e recursos, como bitmaps e seqüências de caracteres, são armazenados no disco em um arquivo executável chamado assembly, normalmente com uma extensão de .exe ou .dll. Um assembly contém um manifesto que fornece informações sobre os requisitos de tipos, versão, cultura e segurança do assembly.

Quando o programa C # é executado, o assembly é carregado no CLR, o que pode levar várias ações com base nas informações no manifesto. Em seguida, se os requisitos de segurança forem atendidos, o CLR executará a compilação just in time (JIT) para converter o código IL em instruções nativas da máquina. O CLR também fornece outros serviços relacionados à coleta automática de lixo, tratamento de exceções e gerenciamento de recursos. O código executado pelo CLR às vezes é chamado de código gerenciado, em contraste com código não gerenciado, que é compilado na linguagem de máquina nativa que tem como alvo um sistema específico. O diagrama a seguir ilustra os relacionamentos em tempo de compilação e em tempo de execução dos arquivos de código-fonte C #, as bibliotecas de classes do .NET Framework, os assemblies e o CLR.

A interoperabilidade de idiomas é um recurso importante do .NET Framework. Como o código IL produzido pelo compilador C # está de acordo com o Common Type Specification (CTS), o código IL gerado pelo C # pode interagir com o código gerado a partir das versões .NET do Visual Basic, Visual C ++ ou qualquer um de mais de 20 outros Idiomas compatíveis com CTS. Um único assembly pode conter vários módulos escritos em diferentes linguagens .NET e os tipos podem se referenciar como se fossem escritos no mesmo idioma.

Além dos serviços de tempo de execução, o .NET Framework também inclui uma extensa biblioteca de mais de 4.000 classes organizadas em namespaces que fornecem uma ampla variedade de funcionalidades úteis para tudo, desde entrada e saída de arquivos até manipulação de strings para análise XML, até controles Windows Forms. . O aplicativo C # típico usa extensivamente a biblioteca de classes do .NET Framework para lidar com tarefas comuns de encanamento.

Fonte: Microsoft