StartseiteSoftwareentwicklung

Softwareentwicklung

Git: Nicht vorgemerkte Änderungen in neuen Branch verlagern

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 und veröffentlicht werden. Möchte man ...

Weiterlesen »

Zeitstempel in (ASP) .NET Core Anwendungen auf der Konsole anzeigen

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 verfügbare Logging-Komponente ist also recht ...

Weiterlesen »

Browser Sync: ASP.NET Core automatisch neu laden in Visual Studio Code

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 Genuss von automatischen Browser-Aktualisierungen. Browsersync ...

Weiterlesen »

Visual Studio Projekt als lokale NuGet Paketquelle einbinden

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 sich zwischen diesen beiden Wegen ...

Weiterlesen »

LEMP-Stack: Nginx und PHP-FPM mit PHP 7 auf einem Ubuntu-Server installieren

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 dies noch nicht in ihren ...

Weiterlesen »

Jenkins mittels GitLab-Push triggern: Konfiguration des neuen GitLab Plugins

Ein Jenkins-Job wird durch GitLab automatisch gestartet

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 Trigger für das Ausrollen aufs ...

Weiterlesen »

ASP.NET Core Projekt von Version 1.0 auf 1.1 aktualisieren

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 ganz selbsterklärend. Dieser Artikel beschreibt ...

Weiterlesen »

ASP.NET Core: ViewBag-Eigenschaft im Konstruktur eines Controllers setzen

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, im Konstruktor eines Controllers Eigenschaften ...

Weiterlesen »

Razor-Ansichten in ASP.NET Core mit dem neuen cache TagHelper zwischenspeichern

Der neue cache Helper bietet eine einfache Möglichkeit, Inhalte in Razor-Ansichten zwischenzuspeichern.

Razor ist eine einfache, flexible, aber zugleich mächtige Template-Sprache für ASP.NET und ASP.NET Core Webanwendungen. Allerdings werden Razor-Ansichten erst zur Laufzeit in C# Code kompiliert. Dieser wiederum muss bei jeder Anfrage ausgeführt werden. Zwar erledigt ASP.NET Core dies sehr performant. Je nach Anwendung macht es dennoch Sinn, die kompilierten und gerenderten Razor-Ansichten zwischenzuspeichern. Insbesondere Teilansichten, die sich nicht verändern wie beispielsweise ...

Weiterlesen »

ASP.NET Core: TagHelper statt UrlHelper für sauberen und lesbaren Code

Die neuen ASP.NET Core TagHelper erzeugen sauberen HTML-Code

Im alten ASP.NET MVC gab es eine recht umfangreiche Sammlung an UrlHelpern. Sie wurden zur Generierung von Links und Formular-Elementen wie Labeln oder Textboxen in Razor-Ansichten genutzt. Ihr Vorteil bestand darin, dass die entsprechenden HTML-Elemente automatisch auf Basis der genutzten Komponenten (Model, Route usw) generiert wurden. In einem Formular genügte es daher, beispielsweise den Anzeigetext nur im Model zu ändern ...

Weiterlesen »