Essencial dos ambientes de execução

Docentes

Pedro Pereira e Jorge Martins

Carga Lectiva

4 semanas, 10h / semana (total de 40h)

Objectivos

Este módulo tem por objectivo dotar os participantes dos requisitos e o funcionamento dos ambientes de execução controlada, nomeadamente da plataforma .NET.

Resultados da aprendizagem

  • Compreender a arquitectura e características que permitem à plataforma .NET a execução controlada de componentes.
  • Conhecer o modelo de tipos da plataforma. Capacidade de utilizar e desenvolver classes genéricas.
  • Compreensão do essencial do funcionamento dos serviços  de libertação automática de memória (garbage collection), introspecção e interoperabilidade com código unmanaged.
  • Compreender o modelo de deployment de aplicações.

Programa

  • Apresentação da plataforma .NET
    • Elementos fundamentais da máquina virtual para execução controlada de código na plataforma .NET (CLR). O código intermédio e a máquina abstracta de stack. Estrutura de um componente .NET. Carregamento e execução de assemblies.
  • O Modelo de Tipos (CTS)
    • Conceitos fundamentais do modelo de tipos: Tipos, Objectos e Valores. Tipos valor e tipos referência. Membros de tipos. Delegates e eventos. Registo costumizado de eventos. Métodos anónimos; captura de variáveis.
    • Genéricos. Tipos abertos e tipos fechados. Constrangimentos. Métodos genéricos. O tipo Nullable. Colecções e interfaces genéricas da BCL.
  • Serviços de Runtime
    • Garbage Collection
      • Mecanismos usados no CLR para efectuar a gestão automática de memória
    • Reflexão
      • Acesso programático a metadata. O modelo de classes de introspecção. Extensibilidade de metadata: custom attributes.
      • Problemática de construção de plugins.
      • Seriação
    • Interoperabilidade com código unmanaged
      • O mecanismo de P/Invoke: marshalling de parâmetros; convenções de chamada;  interacção com o Garbage Collector. Modo de execução. Frames managed e unmanaged; frames de transição.
  • Deployment de componentes
    • Assemblies strongly named. Mecanismo de localização e de binding de versões usado no carregamento de assemblies strongly named. Deployment Click Once.

Comments are closed.