O documento descreve a plataforma .NET, incluindo os problemas que levou a sua criação, como o "inferno das DLLs" e a necessidade de suporte a múltiplas tecnologias. Apresenta o Common Language Runtime que gerencia a execução do código, a linguagem intermediária MSIL e as especificações CLS e CTS. Também aborda a biblioteca de classes com componentes reutilizáveis e os namespaces para organização lógica do código.
4. O inferno das DLLs
● Informações dos componentes registradas
no sistema operacional
○ Registro do Windows
● Problemas com versionamento
○ Somente uma versão do componente pode ser
registrada
● Instalações e atualizações problemáticas
5. Muitas tecnologias
● Tecnologias específicas para cada objetivo
○ Delphi e Visual Basic para aplicações do Windows
○ JavaScript, VBScript, ASP, PHP para apliações web
○ C++ e Visual Basic para Windows Mobile (ou
Windows CE)
● Compiladores específicos
○ Código C++ compilado no Windows não roda no
Linux...
6. Cenário atual
● Internet
● Aplicações móveis e conectadas
● Necessidade de produtividade
● Necessidade de segurança
● Interoperabilidade entre sistemas
○ Web + Desktop + Mobile + Nuvem + ...
8. .NET framework
● Uma plataforma, não uma linguagem
● Tecnologia voltada para necessidades atuais
○ Produtividade, suporta várias linguagens, ...
● Independência na linguagem de
programação:
○ Linguagens diferentes no mesmo projeto e interagir
entre elas. Isso é possível por existir uma IL
(Intermediate Language), ou seja, linguagem
intermediária onde todos os fontes compilados pelo
CLR resultam em uma só linguagem.
10. CLR (Common Language Runtime)
● Máquina virtual do .NET
● Gerencia:
○ Ambiente de execução;
○ Segurança;
○ Memória;
○ Compilação;
11. MSIL (Microsoft Intermediate Language)
● É a linguagem intermediária;
● Independentemente da linguagem que você escrever,
seu programa quando compilado irá gerar uma IL.
○ Porém, não é qualquer linguagem que pode ser compilada em
.NET. Ela deve seguir as regras das especificações da CLS e
CTS e só então e linguagem pode ser "nomeada" como XXX.
NET (Delphi.NET, Fortran.NET, etc)
CLS = Common Language Specification
CTS = Common Type Systema
12. CLS - Common Language Specification
● Define um conjunto de regras que as
linguagens que implementam a .NET devem
seguir para que a CLR possa gerar a IL;
● No momento da compilação é gerado um
código único intermediário (IL) e todas essas
linguagens suportadas pela .NET seguem as
regras da CLS, para que depois de gerado a IL,
ela seja interpretada corretamente pela CLR.
13. CTS - Common Types System
● Definição de tipos de dados onde tudo é um
objeto e deriva da classe System.Object
(que é o núcleo do sistema de tipos);
● Sistema de tipos de dados organizados em:
○ Tipos Valor: variáveis deste tipo são alocadas na
pilha e têm como classe base System.ValueType,
que por sua vez deriva da System.Object.
○ Tipos Referência: variáveis deste tipo são alocadas
na memória heap e têm a classe System.Object
como classe base.
14. Class library
● Componentes (ou bibliotecas) que facilitam
o desenvolvimento;
● Útil para reuso de código;
● Utilizável por qualquer linguagem .NET.
15. Namespaces
● Organização lógica do código
○ Não é organização física, diferentemente de
pacotes de Java
● Funcionalidades separadas
○ Namespace System.Data -> Acesso a Dados
○ Namespace System.Web -> Interface gráfica web
● Hierarquia