Wie schreibt man mit C# DLL’s und wie nutzt man sie?

Man mag ja von DLL’s (insbesondere von .NET-DLL’s, die sich von den anderen unterscheiden) halten was man möchte, aber sie haben zwei große Vorteile:

1) Sie sind austauschbar. Somit kann man Algorithmen ändern, Fehler beseitigen oder einfach nur zusätzliche Funktionen einfügen ohne, dass das Programm das sie nutzt mitgeändert werden müsste. Denkbar wäre zum Beispiel einen Sortieralgorithmus per DLL zu implementieren – und die DLL auszutauschen, je nachdem ob man zum Beispiel Introsort/Quicksort oder Mergesort verwenden möchte.

2) Sie eignen gut um im Team zu arbeiten: Man gibt dem Kollegen die DLL mit den langsamen Grafikfunktionen schon einmal vorab, damit er an seine Anwendung testen kann und macht gleichzeitig die Grafikroutinen schnell.

Mir ist aufgefallen, dass man die DLL auch als Datencontainer nutzen kann – auf diesen haben verschiedene Teile des Programms Zugriff, wenn man sie als Singleton umsetzt. Aber vorsicht: Sie können nicht zum Datenaustausch zwischen Prozessen („Interprozess-Kommunikation“) genutzt werden.

So erstellt man eine DLL mit Visual Studio 2010

  1. Neues Projekt „Klassenbibliothek“ erstellen
  2. ganz normal Funktionen einprogrammieren – das sieht bei mir so aus:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace eigeneBibliothek
{
public class MatheKlasse
{
public int x=0;
private static MatheKlasse instanzvar=null;

private MatheKlasse()
{

}

public static MatheKlasse getInstance()
{
if (instanzvar == null)
instanzvar = new MatheKlasse();
return instanzvar;
}

public long Add(long i, long j)
{
return (i + j);
}

public long Multiply(long x, long y)
{
return (x * y);
}
}
}

  1. jetzt kann die DLL erstellt werden und befindet sich dann wie gewohnt im /bin-Ordner des Projektes

Nutzung von .NET-DLL’s

So einfach wie das Erstellen ist auch die Nutzung:

  1. Erstelle ein neues Konsolen-Projekt
  2. Rechtsklick auf „Verweise“ -> „Verweis hinzufügen“ -> „Durchsuchen“-Tab und die Datei wählen (im Idealfall hat man sie gleich in das bin-Verzeichnis des aktuellen Projekts kopiert):
  3. Ein using mit dem Namespace der DLL einfügen – bei mir sieht das so aus:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using eigeneBibliothek;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MatheKlasse mk = MatheKlasse.getInstance();
mk.x = 42; //für späteren Test als Datenspeicher

Console.WriteLine("Library einbinden-Test: "+mk.Add(5, 3));
Console.ReadKey();
}
}
}

Schlagwörter: , ,

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s