Diferença entre assembly e DLL

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 ligação (normalmente feito por um vinculador), bibliotecas e executáveis ​​fazem referência um ao outro. Os arquivos DLL são os arquivos da biblioteca que estão vinculados dinamicamente. DLL foi desenvolvida pela Microsoft. Mas, devido a alguns problemas presentes com arquivos DLL, a Microsoft apresentou o formato do arquivo Assembly (com a estrutura.NET). Os arquivos de montagem são muito semelhantes às DLLs fisicamente, mas têm muitas diferenças internas.

O que é DLL?

Dynamic Link Library (mais conhecida como DLL) é uma implementação de biblioteca compartilhada desenvolvida pela Microsoft. Ele usa o. dll,. ocx ou. drv extensões e são usados ​​em 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 do sistema legado. O formato do arquivo DLL é o mesmo que os arquivos do Windows EXE (arquivos executáveis ​​portáteis em 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 ser contida em arquivos DLL (assim como em arquivos EXE). Como um fato, os arquivos de dados com o formato de arquivo DLL são chamados de DLLs de recursos. As bibliotecas de ícones (com extensão. Icl) e os arquivos de fonte (com extensões.source e.cop) são exemplos de DLL de recursos.

Componentes chamados seções compõem uma DLL e cada seção possui 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á 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 base (funcionalidade relacionada a arquivos e memória) no Windows. COM (Component Object Model) é a extensão da DLL para OOP (Object Oriented Programming). As DLLs convencionais são mais fáceis de usar do que os arquivos COM.

O que é uma Assembléia?

Arquivos de montagem foram introduzidos pela Microsoft para resolver vários problemas presentes com arquivos DLL. Os arquivos de montagem foram introduzidos com a Microsoft. Framework NET. Uma unidade lógica de lógica executável é chamada Assembly. As assembléias são executáveis ​​em. CLR NET (Common Language Runtime). Fisicamente, as montagens existem como arquivos EXE ou DLL. Mas, eles são muito diferentes das DLL do Microsoft Win32, internamente. Um arquivo de assembly é composto por um manifesto, metadados, MISL (Microsoft Intermediate Language Code) e outros recursos.Uma montagem é auto-descrevente. 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 através do CLR (não pode ser executado diretamente).

Qual a diferença entre Assembly e DLL?

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