Standalone-Apps mit .NET programmieren

Nicht immer möchte man Erweiterungen gezielt für eine Office-Anwendung programmieren. Gelegentlich fallen Aufgaben an, die man zwar mit einer der Office-Anwendungen erledigen könnte, aber dazu benötigt man auch immer die jeweilige Office-Anwendung und ein passendes Dokument wie ein Excel-Workbook oder eine Access-Datenbank. Und gerade bei Access ist eine der meist gestellten Fragen: Wie kann ich die Datenbank in eine .exe-Datei umwandeln? Die Antwort lautet: Gar nicht. Wenn es aber allein darum geht, Aufgaben zu erledigen, die nicht unbedingt mit Office zusammenhängen, dann könnte man auch schnell eine .NET-App programmieren. Die hat den Vorteil, dass man erstens viel mehr Steuerelemente nutzen kann, zweitens viel mehr Bibliotheken zur Verfügung hat und drittens eine .exe erstellen kann, die man sogar noch weitergeben kann. In diesem Artikel schauen wir uns die Grundlagen für die Erstellung einer einfachen .exe-Datei mit .NET an.

Video passend zu diesem Artikel:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Aufgaben für eine .NET-App

Aufgaben für solche Anwendungen gibt es wie Sand am Meer. Damit der Aufwand zum Erstellen einer solchen Anwendung gerechtfertigt ist, sollte die Aufgabe nicht nur einmal vorkommen, sonst könnte man diese auch von Hand erledigen. Es sollte sich also um eine Aufgabe handeln, die entweder sehr umfangreich ist und dennoch sich wiederholende Schritte enthält oder eine, die man regelmäßig erledigen muss und für die man die Anwendung immer wieder nutzen kann.

Hier sind ein paar Beispiele:

  • Dokumente umbenennen und kopieren oder verschieben, zum Beispiel um regelmäßige Eingänge in den Download-Ordner in andere Ordner zu übertragen
  • E-Mails von Outlook auslesen und in bestimmten Verzeichnissen speichern
  • Seiten aus PDF-Dokumenten extrahieren oder zu neuen Dokumenten zusammensetzen – Beispiel siehe PDFs aufteilen und zusammenfügen mit .NET (www.vbentwickler.de/356)
  • PDF-Dokumente analysieren (Beispiel siehe PDF-Dokumente analysieren mit VB.NET (www.vbentwickler.de/357)
  • Alle möglichen Aufgaben, die mit dem Abrufen oder Hochladen von Daten an REST APIs beziehungsweise Webservices zu tun haben – .NET bietet hier für alle möglichen Dienste Bibliotheken in sogenannten NuGet-Paketen an
  • Daten aus verschiedenen Quellen einlesen und weiterverarbeiten
  • Automation von Abläufen wie Sichern von Dateien, Senden von E-Mails oder Ausführen von Skripten

Dir fallen sicher noch weitere Anwendungsfälle ein. Diese kannst Du gern als Thema für weitere Artikel vorschlagen – schreibe dazu einfach eine E-Mail an andre@minhorst.com.

Werkzeuge

Wir stellen in diesem Artikel die Vorgehensweise und einige Grundlagen zum Erstellen von .exe-Programmen mit Benutzeroberfläche vor. Die Benutzeroberfläche erstellen wir mit WPF. Als Programmiersprache verwenden wir Visual Basic in der .NET-Variante.

Neues Projekt erstellen

Um ein für unsere Anforderungen geeignetes Projekt zu erstellen, rufen wir in Visual Studio den Menübefehl Datei|Neu|Projekt… auf. Im nun folgenden Dialog Neues Projekt erstellen können wir mit den Auswahlfeldern die Projekttypen einschränken. Wir wollen uns auf Visual Basic als Sprache, Windows als Betriebssystem und Desktop als Ziel konzentrieren und finden dann in der Liste den Eintrag WPF-Anwendung – Ein Projekt zum Erstellen einer .NET Core-WPF-Anwendung (siehe Bild 1). Es gibt auch noch den Typ WPF-App (.NET Framework). Die Unterschiede liegen im Wesentlichen darin, dass die .NET-Core-Variante moderner ist und grundsätzlich plattformübergreifend genutzt werden kann. Wie es bei moderneren Versionen üblich ist, findet man jedoch nicht alle Bibliotheken, die auch für ältere Projektvorlagen verfügbar sind. Da wir aktuell nur Beispiele für die Windows-Plattform programmieren wollen, reicht also der Typ WPF-App (.NET Framework) aus – daher verwenden wir diesen Typ.

Erstellen eines neuen Projekts in Visual Studio

Bild 1: Erstellen eines neuen Projekts in Visual Studio

Dass Microsoft diesen Projekttyp nicht mehr weiterentwickelt, sollte man ebenfalls berücksichtigen. Hier spielt der Zeitfaktor eine Rolle: Wenn das Tool nur über einen begrenzten Zeitraum eingesetzt werden soll, kann man für das .NET Framework programmieren. Wenn die Anwendung jedoch etwas zukunftssicherer sein soll, ist die Programmierung für .NET Core sinnvoller.

Projekt konfigurieren

Der folgende Schritt zeigt die wesentlichen Merkmale des Projekts an, die für die Erstellung nötig sind (siehe Bild 2). Hier geben wir zuerst einen Projektnamen an, in diesem Fall schlicht Beispiel-App. Unter Ort legen wir das Verzeichnis fest, in dem die Projektdateien gespeichert werden sollen. In der Regel benötigen wir eine neue Projektmappe, weshalb wir diese Einstellung beibehalten. Es kann sein, dass wir zwei oder mehr Projekte in einer Projektmappe verwalten wollen, dann würden wir hier den Wert Hinzufügen wählen. Falls wir eine Projektmappe anlegen wollen, geben wir für diese auch einen Namen an. Da wir in den meisten Fällen ein Projekt in einer Projektmappe verwalten, verwenden wir den gleichen Namen wie für das Projekt.

Eingabe der Projekteigenschaften

Bild 2: Eingabe der Projekteigenschaften

Beim Typ WPF-App (.NET Framework) wählen wir im letzten Schritt noch das gewünschte Zielframework aus – das ist beim Erstellen eines Projekts für .NET Core nicht nötig. Hier ist die Auswahl der aktuellsten Version sinnvoll, es sei denn, der Zielrechner verwendet ein älteres Framework und kann nicht aktualisiert werden.

Grundelemente von Visual Studio, die wir kennen müssen

Danach erscheint Visual Studio mit einigen Elementen (siehe Bild 3). Bei einem WPF-Projekt gehört dazu immer ein erstes WPF-Fenster namens MainWindow.xaml. Dieses stellt, wenn wir die Anwendung nun starten würden, die Benutzeroberfläche der Anwendung. Hier können wir Steuerelemente anlegen, diese mit Inhalten versehen und Methoden für die verschiedenen Ereignisse definieren. Letzteres erledigen wir im sogenannten Code behind-Modul, dass prinzipiell wie ein Klassenmodul für ein Access-Formular betrachtet werden kann. Es nimmt den Code auf, der direkt durch die Ereignisse des Fensters oder seines Steuerelemente aufgerufen wird.

Die Elemente von Visual Studio

Bild 3: Die Elemente von Visual Studio

Das Element MainWindow.xaml ist standardmäßig nach dem Erstellen geöffnet und enthält zwei Bereiche:

  • Im oberen Bereich sehen wir den Entwurf der Benutzeroberfläche.
  • Im unteren Bereich sehen wir den Code, der diese Benutzeroberfläche definiert.

Die beiden Bereiche aktualisieren sich gegenseitig – wenn Du ein Steuerelement aus der Toolbox hinzufügst, wird dafür ein entsprechender Eintrag im unteren Bereich angelegt. Und wenn Du per Code ein Steuerelement hinzufügst oder seine Eigenschaften änderst, wirken sich diese Änderungen direkt auf den Entwurf der Benutzeroberfläche aus.

Nicht sichtbar ist hier der Code, der durch die Elemente der Benutzeroberfläche ausgelöst wird. Diesen blenden wir über den Projektmappen-Explorer ein. Dieser wird standardmäßig im rechten Bereich angezeigt und listet die bisherigen Elemente der Projektmappe und des Projekts auf. Das für uns aktuell wichtigste Element ist MainWindow.xaml. Um den Code zu diesem Element anzuzeigen, klicken wir auf den nach rechts zeigenden Pfeil links von diesem Eintrag und erweitern die Anzeige damit so, dass nun ein weiteres Element namens MainWindow.xaml.vb erscheint. Mit einem Doppelklick auf diesen Eintrag zeigen wir das Codefenster mit dem Code behind-Modul an, das aktuell nur das Element zur Definition der Klasse enthält (siehe Bild 4).

Das noch recht leere Code behind-Modul

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Visual Basic Entwickler:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar