Your SlideShare is downloading. ×
Desenvolvimento em .Net - Reflection
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Desenvolvimento em .Net - Reflection

2,119
views

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,119
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento em .Net ● Reflection
  • 2. Objectivos ● perceber conceito de reflection ● identificar aplicações potenciais desta técnica
  • 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. 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. 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. Reflection ● O Object Explorer
  • 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. 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. Exemplo 1 ● no formulário 1 acrescentar uma label, uma textbox e um botão ● incluir a instrução “imports System.Reflection”
  • 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. Exemplo 1 ● Testar
  • 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. 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. Exemplo 2 ● Testar
  • 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. Exemplo 3
  • 17. Exemplo 3 ● Testar
  • 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. Exemplo 4 ● incluir no botao o seguinte codigo
  • 20. Exemplo 4 ● Testar
  • 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. Exemplo 5 ● Testar
  • 23. Objectivos ● perceber conceito de reflection ● identificar aplicações potenciais desta técnica