Diferença Entre Assembly E DLL

Diferença Entre Assembly E DLL
Diferença Entre Assembly E DLL

Vídeo: Diferença Entre Assembly E DLL

Vídeo: Diferença Entre Assembly E DLL
Vídeo: C# beginners :- Assembly , EXE and DLL 2024, Novembro
Anonim

Assembly vs DLL

Uma biblioteca é uma coleção de recursos que podem ser usados para desenvolver aplicativos. Uma biblioteca geralmente é composta de sub-rotinas, funções, classes, valores e tipos. Durante o processo de vinculação (geralmente feito por um vinculador), bibliotecas e executáveis fazem referência uns aos outros. Os arquivos DLL são os arquivos de biblioteca vinculados dinamicamente. O DLL foi desenvolvido pela Microsoft. Mas devido a alguns problemas presentes com arquivos DLL, a Microsoft surgiu com o formato de arquivo Assembly (com o framework. NET). Os arquivos de montagem são muito semelhantes às DLLs fisicamente, mas têm muitas diferenças internas.

O que é DLL?

A Dynamic Link Library (mais comumente conhecida como DLL) é uma implementação de biblioteca compartilhada desenvolvida pela Microsoft. Ele usa as extensões.dll,.ocx ou.drv e elas são usadas nos sistemas operacionais Microsoft Windows e OS / 2..dll é usado pelos arquivos DLL regulares. E a extensão.ocx é usada pelas bibliotecas que contêm controles ActiveX e a extensão.drv é usada por arquivos de driver de sistema legado. O formato do arquivo DLL é o mesmo dos arquivos EXE do Windows (arquivos executáveis portáteis no Windows de 32 bits / 64 bits e novo executável no Windows de 16 bits). Portanto, qualquer combinação de código, dados e recursos pode estar contida em arquivos DLL (assim como em arquivos EXE). Na verdade, os arquivos de dados com o formato de arquivo DLL são chamados de DLLs de recursos. Bibliotecas de ícones (com extensão.icl) e arquivos de fontes (com extensões.fon e.fot) são exemplos de DLLs de recursos.

Componentes chamados seções constituem uma DLL e cada seção tem seus próprios atributos, como somente leitura / gravável e executável / não executável. As seções de código são executáveis, enquanto as seções de dados não são executáveis. As seções de código são compartilhadas e as seções de dados são privadas. Isso significa que todos os processos que usam a DLL usarão a mesma cópia do código, enquanto cada processo terá sua própria cópia dos dados. A biblioteca dinâmica primária para Windows é kernel32.dll, que contém as funções básicas (funcionalidade relacionada a arquivos e memória) no Windows. COM (Component Object Model) é a extensão da DLL para OOP (Object Oriented Programming). DLLs convencionais são mais fáceis de usar do que arquivos COM.

O que é uma Assembleia?

Os arquivos assembly foram introduzidos pela Microsoft a fim de resolver vários problemas presentes nos arquivos DLL. Os arquivos de montagem foram introduzidos com o framework Microsoft. NET. Uma unidade lógica executável de funcionalidade é chamada de Assembly. Os assemblies são executáveis em. NET CLR (Common Language Runtime). Fisicamente, os assemblies existem como arquivos EXE ou DLL. Porém, eles são muito diferentes das DLLs do Microsoft Win32, internamente. Um arquivo de montagem é composto de um manifesto, metadados, MISL (código Microsoft Intermediate Language) e outros recursos. Uma montagem é autodescritiva. O manifesto contém informações como nome, versão, cultura, nome forte, lista de arquivos, tipos e dependências. O código MISL é executado por meio do CLR (não pode ser executado diretamente).

Qual é a diferença entre Assembly e DLL?

DLL é uma biblioteca vinculada dinamicamente. Embora os assemblies sejam fisicamente iguais às DLLs, eles são muito diferentes internamente. Não é possível manter a consistência entre um conjunto de DLLs, mas o CLR pode manter a consistência entre um conjunto de assemblies, porque os assemblies são autodescritivos (eles contêm a lista de dependências internamente). Ao contrário das DLLs, as informações de versão são aplicadas aos assemblies (pelo CLR). A implantação lado a lado (aplicativos diferentes usando versões diferentes) é possível com os assemblies.

Recomendado: