Mister Goodcat

Peter's home of all things life

Thursday, 5/12/2016 8:30 AM
by Peter Kuhn
0 Comments

Das Passwort, bitte

Thursday, 5/12/2016 8:30 AM by Peter Kuhn | 0 Comments

Im letzten Post habe ich mich drüber ausgelassen, wo man mit chirurgischer Präzision in ASP.NET Core ansetzen kann, um einen Authentifizierungsmechanismus mit minimalem Aufwand einzuklinken. Bleibt noch zu klären, wie eine solche Implementierung aussehen sollte. Mit nur einer Hand voll Regeln ist man beim Verwalten von Passwörter bzw. Nutzerzugängen auf der sicheren Seite. More...

Friday, 5/6/2016 7:00 AM
by Peter Kuhn
0 Comments

Wie viel Authentifizierung hättens denn gern?

Friday, 5/6/2016 7:00 AM by Peter Kuhn | 0 Comments

Wenn man eine Webseite mit eigenen Inhalten entwickelt, dann stellt man irgendwann fest: "Hmmm, vielleicht wäre es ganz günstig, wenn nicht jeder im Internet meine Artikel bearbeiten könnte". Es muss also eine Art von Authentifizierung und Schutz her, und wenn man sich im Kontext von ASP.NET Core mit dem Thema beschäftigt, landet man sehr schnell bei ASP.NET Identity: User Manager, Sign-In Manager, Entity Framework, Default Token Provider... uff!? Zeit, erstmal einen Schritt zurückzugehen und alles nüchtern von oben zu betrachten. More...

Monday, 5/2/2016 9:57 AM
by Peter Kuhn
0 Comments

Wie man HTML (nicht) zu Markdown konvertiert

Monday, 5/2/2016 9:57 AM by Peter Kuhn | 0 Comments

In einem ersten Schritt zur Befreiung meines Blogs habe ich vorgefühlt, was es bedeuten würde, den bestehenden Content (den BlogEngine.NET als HTML in XML ablegt) umzuwandeln in Markdown. Das (XML-codierte) HTML aus den Dateien der jetzigen Engine zu extrahieren war natürlich nicht schwer. Nun aber stand ich vor der Aufgabe, aus dem heterogenen Wust an HTML schönes, einheitliches Markdown zu gewinnen. More...

Sunday, 4/12/2015 11:39 PM
by Peter Kuhn
0 Comments

Vereinheitlichung von Businesslogik durch serverseitiges JavaScript

Sunday, 4/12/2015 11:39 PM by Peter Kuhn | 0 Comments

Prolog

Beim Stichwort "serverseitiges JavaScript" denkt vermutlich jeder zunächst an Node.js (oder io.js). Allerdings beschäftigt sich dieser Artikel mit der Ausführung von JavaScript in C#, also im Kontext einer .NET-Anwendung. Tatsächlich müsste es sich dabei nicht einmal unbedingt um eine Serveranwendung handeln, die Ideen sind auch problemlos auf Rich Clients übertragbar. Die Motivation entstand aber unmittelbar aus den Anforderungen einer verteilten (Web-)Anwendung heraus (s.u.). More...

Wednesday, 7/23/2014 10:00 PM
by Peter Kuhn
1 Comments

A Semantic Version Provider

Wednesday, 7/23/2014 10:00 PM by Peter Kuhn | 1 Comments

I did some thinking recently on how team collaboration with different versioning strategies of components should look like, ideally, to cause as little friction as possible. Particularly, the use of technologies like NuGet to distribute components, and ways to integrate this with continuous builds, made it necessary to re-consider some details I had taken as a given before.

During a proof-of-concept phase for some workflow ideas I came to the conclusion that it would be necessary to have some sort of service that can provide version numbers on a "global" level (e.g. accessible to everyone, not only to your build system, but also individual developers). Naturally, I wanted it to follow a semantic versioning approach, something I've grown a fan of during the last years.

What started as a quick implementation of a sample service has now turned into a complete library for semantic version generation that can be used in arbitrary .NET projects. It's fully backed by unit and integration tests and should be production-ready (your mileage may vary). You can find it on GitHub. The repository also contains a Web API wrapper that exposes its features as a web service, with support for arbitrary numbers of projects, components and the like to version, through configuration.

Monday, 7/14/2014 1:00 PM
by Peter Kuhn
0 Comments

Dependency Injection: das große Bild

Monday, 7/14/2014 1:00 PM by Peter Kuhn | 0 Comments

Beim Thema Dependency Injection kann man leicht mal den Überblick verlieren, wenn man sich in größeren Projekten bewegt. Dabei meine ich diesmal nicht unbedingt die Abhängigkeiten selbst, sondern die Zuständigkeiten dafür, wer diese eigentlich verwaltet. In größeren Solutions existieren verschiedenste Projekte oft nebeneinander, von Webanwendungen über REST-APIs bis hin zu Clients, und alle scheinen unterschiedliche Mechanismen zu verwenden. Aber es gibt auch Lichtblicke. More...

Monday, 6/23/2014 9:00 AM
by Peter Kuhn
0 Comments

JavaScript: Kapselung und Vererbung (Teil 3)

Monday, 6/23/2014 9:00 AM by Peter Kuhn | 0 Comments

Die Art, wie ich in Teil 2 die Vererbungshierarchie über die Prototypenkette hergestellt habe, hat eine interessante Diskussion ausgelöst, da es dazu durchaus unterschiedliche Meinungen gibt. Es lohnt sich also, einen genaueren Blick auf die verschiedenen Möglichkeiten zu werfen. More...

Friday, 6/20/2014 7:00 AM
by Peter Kuhn
0 Comments

JavaScript: Kapselung und Vererbung (Teil 2)

Friday, 6/20/2014 7:00 AM by Peter Kuhn | 0 Comments

Mit den Grundlagen aus dem ersten Teil des Artikels können wir nun einen Blick auf die Möglichkeiten der Vererbung mittels des Prototypen-Mechanismus in JavaScript werfen. Lange Zeit habe ich diesen "irgendwie" genutzt, ohne aber die Funktionsweise vollständig zu verstehen. Es hat sich gelohnt, das nachzuholen. More...

Thursday, 6/19/2014 7:00 PM
by Peter Kuhn
0 Comments

JavaScript: Kapselung und Vererbung (Teil 1)

Thursday, 6/19/2014 7:00 PM by Peter Kuhn | 0 Comments

Eines der bisher weitgehend unverstandenen Details an JavaScript für mich war das Thema Kapselung und Vererbung. Um den gravierendsten Problemen zu entgehen, vermied ich schon lange Zeit globale Variablen und Funktionen, verstand aber die dazu genutzten Techniken nie wirklich: mal definierte ich innere Funktionen in Konstruktoren, mal gab ich anonyme Objekte mit Funktionen per Closures zurück, mal schraubte ich an der ominösen Prototype-Property herum, bis das Ergebnis meinen Vorstellungen entsprach. Es musste dringend Klärung her, was ich da eigentlich jahrelang wirklich getan hatte. More...

Thursday, 6/19/2014 5:00 PM
by Peter Kuhn
0 Comments

Ein (schmerzhaftes) Eingeständnis

Thursday, 6/19/2014 5:00 PM by Peter Kuhn | 0 Comments

Ganz im Gegenteil zu C# und ein paar anderen Sprachen, die mir ans Herz gewachsen sind, hege ich insgeheim eine tiefe Abneigung gegen JavaScript. Als ich darüber etwas genauer nachdachte, erstaunte mich diese Erkenntnis umso mehr; schließlich machte ich meine ersten Erfahrungen damit Mitte/Ende der Neunziger im Netscape Navigator, um hässliche Rollover-Effekte auf noch hässlicheren Webseiten einzubauen. Damit sollte ich mehr als genug Zeit gehabt haben, um mich im Lauf der Jahre irgendwie mit der Sprache anzufreunden. Warum also hat es nie geklappt, mit JavaScript warm zu werden? More...