Die PHP-Erweiterung php_ssh2 ermöglicht den Aufbau von SSH-Verbindungen aus PHP heraus. Sie kommt beispielsweise bei der ssh-key-authority zum Einsatz – ein Open Source Projekt von Opera, um SSH-Keys automatisiert auf Server zu verteilen. Leider wird die Bibliothek nur spärlich aktualisiert, wenngleich sie noch funktioniert. Allerdings gestaltet sich die Installation dadurch als etwas schwierig. In meinem …
Kategorie: Softwareentwicklung
Alles rund um die Entwicklung von Software

Die Entwicklungsumgebung Visual Studio benötigt für verschiedene Zwecke Internetzugriff: Beispielsweise für den Paketmanager NuGet. Über ihn lassen sich Bibliotheken beziehen und verteilen. Aber für Aktualisierungen ist dies nötig, damit Visual Studio nach Updates suchen und diese herunterladen kann. Befindet man sich in einem Unternehmensnetzwerk mit Proxyserver, stellt das ein Problem dar. Ohne zusätzliche Konfiguration fragt …

Branches sind eine sehr praktische Funktionalität des Versionsverwaltungssystems Git: Man kann parallel an verschiedenen Funktionen arbeiten, die sich während der Entwicklung nicht beeinflussen. Dennoch lassen sich diese später zusammenführen. Stellen wir uns folgendes Szenario vor: Man entwickelt regulär an einem Projekt, beispielsweise im Entwicklungszweig. Es wurden bereits mehrere Dateien geändert. Nun soll ein Hotfix erstellt …

Die ILogger Schnittstelle ermöglicht das einfache Injizieren eines Loggers in jegliche Klasse. Durch das Protokollieren des Namespace ist stets klar, von welcher Komponente die Informationen stammen. In der appsettings.json können wir für jeden Namespace den Detailgrad einstellen. Dies geht bis hin zu Debug- und Tracelogs, die uns z.B. beim EntityFramework die SQL-Abfragen protokollieren. Das standardmäßig …

Browser Sync ist eine Funktionalität des klassischen Visual Studio: Wird eine Razor-Ansicht verändert und gespeichert, aktualisiert das Tool automatisch euer Browser-Fenster. Das händische Aktualisieren entfällt damit. Leider besitzt der quelloffene Visual Studio Code Editor bislang keine vergleichbare Funktionalität. Glücklicherweise lässt sich ein ähnliches Verhalten mit Browsersync umsetzen. So kommt ihr auch unter Linux in den …

Visual Studio kann während des Buildvorgangs automatisch ein NuGet-Paket erstellen. Im Ordner bin/Debug entsteht so eine .nupkg Datei, die dem Name der Projektmappe entspricht. Diese lässt sich – sowohl manuell als auch automatisiert – bereitstellen. Wahlweise auf NuGet.org oder einer selbst gehosteten Registry. Hierfür kommt beispielsweise ProGet in Frage. Für die finale Bereitstellung wird man …

Nginx in Kombination mit PHP und der MySQL-Datenbank bzw. dem performanteren Form MariaDB ist ein gängiger Stack für Webseiten und Anwendungen. Im neuen PHP 7 hat sich gegenüber dem Vorgänger 5.6 einiges getan, was sich bereits anhand der Versionsnummer vermuten lässt. Es macht daher Sinn, 7 statt 5.x zu verwenden, sofern möglich. Leider bietet Ubuntu …

Kontinuierliche Integration, auf Englisch Continous Integration (kurz CI) ist in der professionellen Softwareentwicklung längst zum elementaren Standard geworden. Das Bauen der Software muss kein lästiger Arbeitsschritt sein, sondern lässt sich bequem in den Arbeitsablauf integrieren: Beispielsweise löst das Pushen in einen bestimmten Branch wie dev das Erstellen auf einem Entwicklersystem auf. Wogegen ein Merge-Request als …

Bereits seit Ende 2016 ist .NET Core in Version 1.1 erschienen. Sicherheitstechnisch ist dies wahrlich kein Pflicht-Update – Erhält 1.0 als LTS-Release drei Jahre lang Aktualisierungen. Dennoch lohnt sich ein Blick auf die Neuerungen. Darunter unter anderem View-Kompoenten oder die Möglichkeit, Razor-Views bereits zur Kompilierzeit statt zur Laufzeit vorzukompilieren. Leider ist der Updateprozess noch nicht …

In einer MVC-Anwendung kommt es immer wieder vor, dass man bestimmte Daten im gesamten Controller benötigt. Beispielsweise für eine Info-Box oder Sidebar, die man mittels ViewBag/ViewData unabhängig vom Model der jeweiligen Aktionen übergibt. Als objektorientierter Entwickler kommt man hier schnell auf die Idee, die Daten einfach im Konstruktur zu laden. Jedoch ist es nicht möglich, …