Plataforma .NET
         .NET framework

  Leonardo Melo Santos
  http://about.me/leonardomelosantos
Conteúdo programático
● Problemas de tecnologia
● O que é .NET
● Common Language Runtime
● Class library
● Namespaces
Problemas de tecnologia
● DLL hell
● Muitas tecnologias
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
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...
Cenário atual
● Internet
● Aplicações móveis e conectadas
● Necessidade de produtividade
● Necessidade de segurança
● Interoperabilidade entre sistemas
  ○ Web + Desktop + Mobile + Nuvem + ...
.NET
.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.
.NET framework
CLR (Common Language Runtime)
● Máquina virtual do .NET
● Gerencia:
  ○ Ambiente de execução;
  ○ Segurança;
  ○ Memória;
  ○ Compilação;
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
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.
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.
Class library
● Componentes (ou bibliotecas) que facilitam
  o desenvolvimento;
● Útil para reuso de código;
● Utilizável por qualquer linguagem .NET.
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
Dúvidas

Curso de OO com C# - Parte 03 - Plataforma .NET

  • 1.
    Plataforma .NET .NET framework Leonardo Melo Santos http://about.me/leonardomelosantos
  • 2.
    Conteúdo programático ● Problemasde tecnologia ● O que é .NET ● Common Language Runtime ● Class library ● Namespaces
  • 3.
    Problemas de tecnologia ●DLL hell ● Muitas tecnologias
  • 4.
    O inferno dasDLLs ● 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 ● Tecnologiasespecí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 + ...
  • 7.
  • 8.
    .NET framework ● Umaplataforma, 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.
  • 9.
  • 10.
    CLR (Common LanguageRuntime) ● Máquina virtual do .NET ● Gerencia: ○ Ambiente de execução; ○ Segurança; ○ Memória; ○ Compilação;
  • 11.
    MSIL (Microsoft IntermediateLanguage) ● É 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 - CommonLanguage 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 - CommonTypes 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ógicado 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
  • 16.