Functional Programming in F# für .NET – Kursinhalte

Die Kurs Inhalte können variieren, je nach Wissensstand, Zeitrahmen und Trainingsschwerpunkten.
Es wird Wert gelegt auf die Grundlagen und dass man das Gelernte sofort anwenden kann.

Sofort Produktiv

  • einfache und mächtige F# Syntax, wenig Code, einfaches Refactoring
  • Code ausführen während man ihn schreibt
  • effiziente und gut verständliche Datenmodellierung (Domain Driven Design (DDD)) mit Algebraischen Daten Typen die automatisch Strukturellen Vergleich und Hashing bieten.
  • Masseinheiten werden vom Compiler bei Übergabe und Berechnungen auf Korrektheit geprüft (Meter, Kilogramm, Sekunde, Pixel, Dollar, SelbstDefiniert, etc.)
  • mit F# Type Providern Ihre Daten automatisch typisiert im Code mit IntelliSense anwenden. Type Provider sind ein einzigartiges Feature von F# (seit 2010, ich konnte es kaum glauben als ich es das erste mal 2010 gesehen habe, It’s magic!), das keine andere Programmiersprache bisher ermöglicht (mit Ausnahme von IDRIS seit März 2015).
  • Erstellen von eigenen Domain Specific Languages (DSL)
  • F# ist in Visual Studio (seit 2010) schon enthalten
  • Kompatibilität, .dll’s können von C#, VB.NET und umgekehrt verwendet werden.

Wichtige Grundlagen der Funktionalen Programmierung (FP)

  • Immutability: verstehen warum Immutability gut ist und hilft Probleme einfacher zu lösen und Code besser zu verstehen. Immutable Daten Strukturen
  • Type Inference : verstehen und Nutzen erkennen
  • Partial Application und Curring
  • Rekursion: rekursive Funktionen und rekursive Datentypen
  • Higher Order Functions : map, reduce, filter, etc.
  • Pattern Matching
  • Referential Transparency
  • Lazyness: Seq, lazy
  • Memoziation
  • Algebraischen Daten Typen (ADT) (sind keine POCOs (Plain-Old CLR Objects))

Wesentliche Unterschiede von F# zu C#

  • null als ungültiger Wert (nicht als gültiger default Wert von Referenz Typen in C#)
  • unit als leerer Wert (nicht void als kein Wert wie in C#, denn void und async vertragen sich nicht gut in C#)
  • async als Library (nicht als async und await Sprachkonstrukte wie in C#)
  • lock als Funktion (nicht als Statement wie in C#)
  • choice für Exception Handling (Exception free programming)

Automatisiertes Testen

  • interaktives Testen im REPL
  • automatisches Erzeugen von Testdaten und Ermittlung des kleinsten Datensatzes, der die Fehler-Analyse vereinfacht mit FsCheck
  • Testen von Webseiten mit Canopy (Automatisiertes Surfen)

Parallel Programming und Asynchronous Programming (Concurrent Programming)

  • Parallelen Code schreiben, dem man trauen kann (immer richtiges Ergebnis)
  • Async Code composition
  • Actors (F# MailboxProcessor)

Web Programmierung (wird im Grundkurs nur gestreift)

  • F# Code zu JavaScript compilieren (mit FunScript oder WebSharper)
  • Client- und Server-Code in F# schreiben (Code Reuse) und automatisch zu .NET für Server und JavaScript für Client compilieren (mit WebSharper)
  • IntelliSense in F# für JavaScript Library Funktionen dank automatischer TypeScript Definitions File Auswertung.


Zu F# Inhouse Schulungskurse

F# Inhouse Schulungskurse

Wir bieten 2-tägige F# Kurse als Inhaus-Kurse bei Ihnen vor Ort an.
  • Kurs
    Funktionale Programmierung mit F# und .NET
  • Kursinhalt
    Mit Fokus auf die praktischen Grundlagen der Funktionalen Programmierung und solidem F# Grundwissen. Anpassen der Trainingsschwerpunkte ist möglich.
  • Inhouse
    Bei Ihnen in einem Sprechzimmer mit Beamer und Flipchart/Whiteboard.
  • Ablauf
    09:00 – 12:00 ; 13:00 – 17:00 an 2 aufeinander folgenden Arbeitstagen.
  • Sprache
    Deutsch
  • Trainingsunterlagen
    In Deutsch als PDF zum selber Ausdrucken für Notizen.
  • Kurs-Zertifikat
    Teilnehmer erhalten ein persönliches Kurs-Zertifikat bei erfolgreicher Absolvierung.
  • Vorkenntnisse
    Ideal .NET Framework und C# oder VB.NET
  • Programmierübungen
    Teilnehmer haben ihre Computer dabei mit Visual-Studio ab 2012 installiert.
  • Teilnehmerzahl
    Mindestens 4, optimal 5-7 Teilnehmer, um bei praktischen Übungen individuell zu unterstützen.
Bitte kontaktieren Sie uns, um Ihren gewünschten Trainingstermin 2016 zu sichern und die aktuellen Preise zu erfahren.

Wir sind in der Schweiz nahe St. Gallen stationiert.
Impressum
Über den F# Fsharp Kursleiter, Referent, Trainer, Instruktor.
Unsere Referenzen
Unsere F# Events






































Über den Blog

Funktionale Software Entwicklung mit F# und .Net

Willkommen auf einer der wenigen deutschsprachigen Webseiten über die Programmiersprache F# (F-Sharp, FSharp, #fsharp, .fs, .fsx, #F, FScharp, F-Scharf).

Worum geht es hier?

Wer sich für Funktionale Programmierung interessiert wird auf Aussagen treffen wie, es ist sehr mathematisch, abstrakt und komplex (Kategorientheorie). Dies wirkt meist abschreckend. Das muss aber nicht sein.

Dieser Blog will anhand der Programmiersprache F# zeigen, dass es bei Funktionaler Programmierung (FP) um mehr geht, also auch im Kleineren, die einfachen Dinge wie die Bausteine für Muster und Wiederverwendung und übergeordnet in der funktionalen Denkweise Probleme zu lösen, grossartige Möglichkeiten und Vorteile vorhanden sind.

Jeder der denkt, dass Funktionale Programmierung nur das herumreichen von Anonymen Funktionen (Lambda-Funktion) ist, die es auch in anderen Sprachen gibt, der irrt. Es ist nicht nur die Programmierung (Syntax) die funktional erfolgt, es geht auch um den Funktionalen Design, der ganz andere Denkmuster enthält als ein Objektorientierter (OO) Design.

Und weil hier eine Mehrzweck (Multi-Purpose) Programmiersprache wie F# verwendet wird, es nicht nur einzig um Funktional geht, sondern gezeigt wird, das ein guter Mix aus FP und OO Techniken einfach möglich ist. Der Nutzen von beiden Welten (FP, OO) soll in der Praxis, also basierend auf .Net (oder Mono) gezeigt werden.

Der Blog ist gedacht als eine Ein- und Weiterführung in die Funktionale Programmierung mit F#, für C#, VB.Net, C++ oder Java Entwickler, etc.

Bitte klickt doch im Fragebogen rechts Eure Programmiersprache(n) an, so könnt ihr das aktuelle Ergebnis der Umfrage sehen, Danke.
1: 
printf "HalloF#" // Die Code Beispiele werden unterstützt durch Tooltips 

Warum in Deutsch?

  • Weil man es auch automatisch übersetzen lassen kann (translate to English).
  • Weil sich Wissen und Erfahrungen besser in der Muttersprache weitergeben lassen.
  • Weil es schon genügend englischsprachige Webseiten und Literatur zum Thema F# gibt.

Was nicht?

  • Es wird hier nicht das F# Referenz Handbuch auf Deutsch übersetzt zu lesen geben.
  • Es werden hier nicht alle Fachbegriffe stur eingedeutscht.
  • Dies ist keine Microsoft Seite, denn F# ist Open Source!
val printf : format:Printf.TextWriterFormat<‘T> -> ‘TFull name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printf