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: O trem mais rápido já construído | A física completa disso 2024, Julho
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. DLL foi desenvolvido pela Microsoft. Mas devido a alguns problemas presentes com arquivos DLL, a Microsoft criou o formato de arquivo Assembly (com o framework. NET). Arquivos de montagem são muito semelhantes a DLLs fisicamente, mas têm muitas diferenças internas.

O que é DLL?

Dynamic Link Library (mais comumente conhecido como DLL) é uma implementação de biblioteca compartilhada desenvolvida pela Microsoft. Ele usa as extensões.dll,.ocx ou.drv e são usadas nos sistemas operacionais Microsoft Windows e OS/2..dll é usado pelos arquivos DLL normais. E a extensão.ocx é usada pelas bibliotecas que contêm controles ActiveX e a extensão.drv é usada pelos arquivos de driver do sistema legado. O formato de arquivo DLL é o mesmo dos arquivos EXE do Windows (arquivos executáveis portáteis em Windows de 32 bits/64 bits e Novo executável em 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). De fato, 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 fonte (com extensões.fon e.fot) são exemplos de DLLs de recursos.

Componentes chamados seções formam 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 arquivo e memória) no Windows. COM (Component Object Model) é a extensão da DLL para OOP (Programação Orientada a Objetos). DLLs convencionais são mais fáceis de usar do que arquivos COM.

O que é uma Assembléia?

Arquivos Assembly foram introduzidos pela Microsoft para resolver vários problemas presentes em arquivos DLL. Os arquivos assembly foram introduzidos com a estrutura 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. Mas, eles são muito diferentes das DLLs do Microsoft Win32, internamente. Um arquivo assembly é composto de um manifesto, metadados, MISL (código Microsoft Intermediate Language) e outros recursos. Um assembly é autodescritivo. O manifesto contém as informações como nome, versão, cultura, nome forte, lista de arquivos, tipos e dependências. O código MISL é executado através 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 impostas para assemblies (pelo CLR). A implantação lado a lado (aplicativos diferentes usando versões diferentes) é possível com assemblies.

Recomendado: