Cadastre-se Revistas DevMedia Cursos
 

Space de Roger Villela
Busca Autor


Últimas 20 atualizações de Roger Villela

Artigo - CLR – Fundamentals


Assembly e Managed Module

 

A plataforma .NET têm o seu conjunto de conceitos, estruturas e técnicas. Neste texto eu descrevo sobre dois destes conceitos: Assembly e Managed Module.

 

O texto descreve como estes dois conceitos são utilizados na plataforma .NET para armazenar e distribuir os componentes que compõe os softwares e recursos necessários aos mesmos.

 

Os exemplos de código/projetos citados neste texto foram desenvolvidos e estão disponíveis para as seguintes tecnologias/ferramentas:


- .NET Framework Version: v3.5

- C# Compiler Version : 3.5.21022.8

- C++/CLI Compiler Version : 15.00.21022.08 for 80x86

- ILAsm

- ILDasm

- Visual Studio 2008 Team System

 

 

 

Criando Managed Module

 

A partir do código-fonte do seu aplicativo, as ferramentas de compilação e de geração de arquivos, criam arquivos binários como resultado destes processos. No Microsoft Windows, o formato de arquivo PE/COFF (Portable Executable and Common Object File Format), é o padrão utilizado para os arquivos do tipo EXE e DLL. Este formato é utilizado nas versões 32-bit e 64-bit dos sistemas operacionais da Microsoft. Os compiladores para a plataforma .NET geram arquivos binários no formato de arquivo PE/COFF.

 

Na realidade o formato PE/COFF é uma versão modificada do formato de arquivo COFF (Common Object File Format) do Unix. O PE/COFF foi implementado a partir do Windows NT 3.1. Como o PE/COFF é um formato amplamente reconhecido e utilizado, criar um novo formato de arquivo específico para o .NET não era viável e por isto a plataforma .NET o utiliza mas inclui informações e estruturas que são reconhecidas pelo CLR (Common Language Runtime). Estas estruturas e informações não alteram as estruturas do formato PE/COFF e sim são extensões. Portanto o arquivo ainda é reconhecido pelo sistema operacional como um arquivo PE/COFF válido.

 

Com estas informações podemos agora descrever mais detalhadamente o conceito de ManagedModule.


Managed Module

 

Q: Como são organizados fisicamente os códigos e recursos que utilizo em meus softwares para a plataforma .NET ?

 

A: Os programas escritos para o CLR – Common Language Runtime residem em Managed Modules. Os códigos compilados e os recursos que compõe o software são armazenados em uma estrutura física (arquivo PE/COFF) descrita como Managed Module.  Em um Managed Module é possível armazenar vários tipos de informação além do código CIL (Common Intermediate Language) gerado pelo compilador.

 

Q: Mas o que é um Managed Module afinal?

 

Um arquivo no formato PE/COFF (Portable Executable and Common Object File Format), cujo conteúdo pode ser executado pelo CLR – Common Language Runtime.

 

Q: Sendo o Managed Module a forma como as informações são gravadas em arquivo para que este seja executado, quais tipos de informação um Managed Module pode armazenar?

 

A: Um Managed Module pode ter em seu conteúdo:

 

·        Código (CIL – Common Intermediate Language e native code).

·        Metadata

·        Resources

 

Código: O código gerado pelos compiladores é transformado em CIL (Common Intermediate Language) e armazenado no Managed Module. Um Managed Module também pode armazenar código binário nativo, ou seja, específico para uma arquitetura de processador.

 

Metadata: Armazenam as descrições dos tipos definidos no Managed Module incluindo: nomes, relacionamentos de herança, assinaturas de métodos, informações de dependência, descrições de estruturas internas e assim por diante.

 

Resources: Os resources contêm dados estáticos e somente para leitura como strings, arquivos de imagens e outros aspectos do programa que não são armazenados como código executável.

 

Para demonstrar como é um Managed Module há uma solução de exemplo, que faz parte deste texto, com a seguinte organização:


 

Projetos nas linguagens C++/CLI e C#

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
24/05/2008 11:53:00





 

Self-taught person, I have good skills in learning new technologies, specially programming languages. I have good skills in work with groups to organize ideas, explain complex concepts and structure solutions with focus in .NET implementation. I like discipline and objectivity in development process. Work environment need to be very informal, with smart people. The company needs to be very enthusiastic in use of technologies and with a strong vision of near future of platform use. The primary interest is in projects that use new technologies/platforms like: Windows Vista, WWF – Windows Workflow Foundation, WCF- Windows Communication Foundation, and WPF – Windows Presentation Foundation, Microsoft Office 2007, .NET Framework 2.0/3.0/3.5 and LINQ. Specialties: Focus in planning architecture of implementation using .NET.
Arquivo de atualizações
 2008

Estatísticas do Autor:
Número de posts: 3
Características dos posts deste autor:
Conteúdo:
Utilidade:
1 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group