Desenvolvimento em .Net
        ●   Reflection
Objectivos
●   perceber conceito de reflection
●   identificar aplicações potenciais desta técnica
Reflection
●   Processo através do qual um programa pode
    ler os seus metadados

     Aplicação .Net
        Source (vb...
Reflection
●   Através dessa introspecção e usando esses
    metadados podemos:
    –   conhecer toda a estrutura desse as...
Reflection
●   Podemos desenvolver uma aplicação que irá
    utilizar objectos que desconhece!
    –   exemplo:
         ●...
Reflection
●   O Object Explorer
MultiITV
●   Objectivo futuro
    –   ter módulos desenvolvidos em Progress e outros
        em .Net
    –   permitir um d...
Exemplo 1
●   Criar uma solução nova
●   No projecto criado inserir 2 formulários
●   mudar assembly name e root namespace...
Exemplo 1
●   no formulário 1 acrescentar uma label, uma
    textbox e um botão
●   incluir a instrução “imports System.Re...
Exemplo 1
 ●   no código do botão, incluir




[Assembly] - Defines an      GetExecutingAssembly - Gets the
Assembly, whic...
Exemplo 1
●   Testar
Exemplo 2
●   criar um novo projecto na mesma solução
●   mudar assembly name e root namespace do
    novo projecto para
 ...
Exemplo 2
●   no primeiro formulário do projecto inicial
    acrescentar mais uma label, caixa de texto e
    botao
●   in...
Exemplo 2
●   Testar
Exemplo 3
●   no projecto inicial criar
    –   uma classe chamada Utilizador com as
        propriedades nome (string), m...
Exemplo 3
Exemplo 3
●   Testar
Exemplo 4
●   Criar um novo formulario
    chamado “FormDinamico”
●   nesse form acrescentar
    uma label, uma textbox,
 ...
Exemplo 4
●   incluir no botao o seguinte codigo
Exemplo 4
●   Testar
Exemplo 5
●   incluir no novo form um novo botao
●   incluir no codigo do novo form o conteudo do
    ficheiro codigo0401_...
Exemplo 5
●   Testar
Objectivos
●   perceber conceito de reflection
●   identificar aplicações potenciais desta técnica
Upcoming SlideShare
Loading in …5
×

Desenvolvimento em .Net - Reflection

2,163
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,163
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento em .Net - Reflection

  1. 1. Desenvolvimento em .Net ● Reflection
  2. 2. Objectivos ● perceber conceito de reflection ● identificar aplicações potenciais desta técnica
  3. 3. Reflection ● Processo através do qual um programa pode ler os seus metadados Aplicação .Net Source (vb, c#, jscript, cobol.net, …) PE – portable executable (.exe, .dll) JIT Compiler
  4. 4. Reflection ● Através dessa introspecção e usando esses metadados podemos: – conhecer toda a estrutura desse assembly (.dll, .exe) ● por exemplo, saber quais os seus métodos, propriedades, ... – usar uma representação textual para executar funções nesses assemblies ● por exemplo, instanciar objectos, executar métodos, ...
  5. 5. Reflection ● Podemos desenvolver uma aplicação que irá utilizar objectos que desconhece! – exemplo: ● gestor de documentos. só sabe que tem que abrir, fechar objectos. não sabe se esse objecto é do tipo Empresa.Produto.Objecto1 ou Empresa2.ObjectoXpto
  6. 6. Reflection ● O Object Explorer
  7. 7. MultiITV ● Objectivo futuro – ter módulos desenvolvidos em Progress e outros em .Net – permitir um deployment (instalação no cliente) simples / incremental ● Reflection – Desenvolve-se um novo módulo em .Net num assembly autónomo – Configura-se a aplicação de forma a que passe a chamar esse módulo em vez do anterior programa Progress
  8. 8. Exemplo 1 ● Criar uma solução nova ● No projecto criado inserir 2 formulários ● mudar assembly name e root namespace do projecto para “Infos.Teste.LoadForm”
  9. 9. Exemplo 1 ● no formulário 1 acrescentar uma label, uma textbox e um botão ● incluir a instrução “imports System.Reflection”
  10. 10. Exemplo 1 ● no código do botão, incluir [Assembly] - Defines an GetExecutingAssembly - Gets the Assembly, which is a Assembly that the current code is running reusable, versionable, and from. self-describing building block of a common CreateInstance - Locates a type from language runtime this assembly and creates an instance of it application. using the system activator.
  11. 11. Exemplo 1 ● Testar
  12. 12. Exemplo 2 ● criar um novo projecto na mesma solução ● mudar assembly name e root namespace do novo projecto para “Infos.Teste.FormCarregavel” ● criar um formulario nesse novo projecto ● nesse formulario incluir um botao com código necessário para fechar form “Me.Close()”
  13. 13. Exemplo 2 ● no primeiro formulário do projecto inicial acrescentar mais uma label, caixa de texto e botao ● incluir no novo botao o seguinte codigo
  14. 14. Exemplo 2 ● Testar
  15. 15. Exemplo 3 ● no projecto inicial criar – uma classe chamada Utilizador com as propriedades nome (string), morada (string) e datanascimento (datetime) e uma função chamada getIdade que não recebe nenhum parametro ● no primeiro formulário do projecto inicial acrescentar uma “RichTextBox” e um novo botao ● incluir no codigo do novo botao o conteudo do ficheiro codigo0401_01.txt
  16. 16. Exemplo 3
  17. 17. Exemplo 3 ● Testar
  18. 18. Exemplo 4 ● Criar um novo formulario chamado “FormDinamico” ● nesse form acrescentar uma label, uma textbox, um botao e um panel ● incluir no codigo do novo form o conteudo do ficheiro codigo0401_02.txt
  19. 19. Exemplo 4 ● incluir no botao o seguinte codigo
  20. 20. Exemplo 4 ● Testar
  21. 21. Exemplo 5 ● incluir no novo form um novo botao ● incluir no codigo do novo form o conteudo do ficheiro codigo0401_03.txt ● incluir no botao o seguinte codigo
  22. 22. Exemplo 5 ● Testar
  23. 23. Objectivos ● perceber conceito de reflection ● identificar aplicações potenciais desta técnica

×