Termine
Im Oktober haben wir Andre Krämer und Ronald Schlenker zu Gast.
Monaden in C#
C# hat in den letzten Jahren zu seiner objektorientierten Basis noch eine Menge von funktionalen Sprachfeatures hinzugewonnen. Lambda Expressions und Expression Trees haben auf breiter Front Einzug in den Programmieralltag von C#-Entwicklern gefunden und ihnen einen neuen Grad an Aussdrucksstärke ermöglicht.
Ein weiteres Feature, das in der .Net-Community jedoch relativ unbekannt ist, sind Monaden. Falls man überhaupt etwas über sie hört, so sind es Vorurteile: Monaden sind komplex, verwirrend, unverständlich und (in Folge) nur eine theoretische Spielerei. Das dies nicht richtig sein kann, lässt sich ganz leicht wiederlegen: Täglich nutzen tausende von Entwicklern Monaden wenn sie LINQ-Querys schreiben, denn in C# selbst ist durch die Query-Comprehension-Syntax eine aktive Unterstützung von Monaden enthalten. Somit benutzen wir alle bereits (einen speziellen) Monaden - IEnumerable, betrachten diesen jedoch nicht als losgelöstes Programmierkonzept, sondern immer durch die „Brille“ LINQ.
Wir möchten jetzt die Kernkonzepte von Monaden, losgelöst von dieser Brille, beleuchten, um mit Hilfe dieses Paradigmas ganz neue Wege für die Entwicklung von Frameworks und Bibliotheken zu entdecken. Damit dies kein leeres Versprechen bleibt, zeigen wir den Einsatz von Monaden anhand eines ganz konkreten, selbst entwickelten (frei verfügbaren) ASP.Net MVC-Validierungframeworks, das wir bereits erfolgreich in der Praxis eingesetzt haben.