CSharp - Dividir o código por DLL

CSharp - Dividir o código por DLL

Uma das formas de dividir e organizar o código pode ser pela criação de DLL, e estes podem ser aproveitados para vários projectos.


CSharp DLL

A criação de Bibliotecas DLL (biblioteca de vínculo dinâmico  microsoft)  pode ser uma forma de dividir e organizar o código. As DLL funcionam como um módulo externo, um conjunto de código que se coloca num ficheiro diferente do principal.

Com esta organização podemos também reaproveitar o código das DLL para outros projectos. Por exemplo uma biblioteca semelhante à apresentada no exemplo pode servir para vários projectos de engenharia.

Existem muitos assuntos relacionados com as DLL nos quais não vamos entrar aqui, inclusive o uso de DLL programadas em linguagens diferentes.


Exemplo:

O caso presente envolve dois ficheiros, um como se fosse o código principal, e um secundário que contém o código para a DLL.

teste_ang.cs é o ficheiro principal

ConverteAngulosDLL.cs é o ficheiro que vai dar origem ao DLL

(os nomes podem ser outros e não tem de ter DLL no nome, este foi apenas um exemplo)

Esquema de funcionamento

Na esquerda o ficheiro que vai dar origem ao DLL, não informação sobre o ficheiro principal ou algum dos seus métodos como é lógico. Este pode servir para múltiplos usos como referimos antes.


Na direita o ficheiro principal, este sim faz referencia ao DLL. Logo na uso da directiva using para importar os namespaces do DLL.

using Angulos vai importar o namespace do ficheiro DLL.

Depois temos de usar o prefixo como propriedade, da classe que queremos usar. No caso usamos Converte seguido do método que usaremos.

Converte.GrausGrados(200.001) dá acesso à classe Converte e ao método GrausGrados tudo isto no namespace Angulos do ficheiro DLL.

Entendido isto, é apenas código, para que tudo funcione temos de compilar, primeiro a DLL e depois o executável com a referência à DLL.


Como estou a usar o Mono para Linux (.net framework Mono) os comandos a seguir são diferentes na chamada ao compilador do que seriam no Windows.

  mcs /target:library /out:ConverteAngulos.dll /recurse:ConverteAngulosDLL.cs
  mcs /out:teste_ang.exe /reference:ConverteAngulos.dll /recurse:teste_ang.cs
  mono teste_ang.exe
A primeira linha chama o ficheiro de texto e compila para uma biblioteca (/target:library).
A segunda linha compila para executável, mas tem menção à bilioteca criada no passo anterior (/reference:ConverteAngulos.dll).
A terceira linha é apenas um comando para executar o programa.

Espero que seja útil.


Comentários

Mensagens populares deste blogue

Python - Automatização em ISPOL

Linha do Oeste - Breve visita

AMV – Aparelhos de Mudança de Via