Course
Skills Expanded
A Functional Architecture with F#
Learn how to build mainstream applications with F#.
What you'll learn
F# is a Functional language in the .NET framework; while most people still regard it as a niche language, it’s a Turing complete, general purpose language, so you can build almost any sort of application with it. However, with its strong focus on immutability, programmers used to Object Orientation struggle with creating a proper architecture for a Functional system. This course provides an example of how to build a mainstream application in F#, using extensive demos to build a comprehensive demo application from scratch.
Table of contents
Thinking Functionally
27mins
- Introduction 0m
- Prerequisites 1m
- Once Upon a Time... 2m
- Two Types of Operations 3m
- Data Flow Architecture 2m
- Why F# 2m
- Demo: Introduction 0m
- Demo: Application UI 3m
- Demo: Recap 0m
- Demo Application Architecture 1m
- Demo Introduction: HTTP API 1m
- Demo: HTTP API 3m
- Demo Recap: HTTP API 1m
- Demo Application Package Architecture 1m
- Demo Introduction: How to Create an F# Web Project 1m
- Demo: How to Create an F# Web Project 5m
- Demo Recap: How to Create an F# Web Project 1m
- Summary 1m
Pipes and Filters
39mins
- Introduction 1m
- A Long Time Ago... 1m
- Demo Introduction: Infrastructure Housekeeping 1m
- Demo: Infrastructure Housekeeping 1m
- Demo Recap: Infrastructure Housekeeping 1m
- Introduction to Pipes and Filters 1m
- Pipes and Filters 2m
- Reactive Extensions 1m
- Message Endpoint 1m
- Demo Introduction: Message Endpoint and Integration 0m
- Demo: Message Endpoint and Integration 2m
- Demo Recap: Message Endpoint and Integration 1m
- Envelope 2m
- Demo Intro: Envelope, Envelope Wrapper, and Publish-Subscribe 0m
- Demo: Envelope, Envelope Wrapper, and Publish-Subscribe 3m
- Demo Recap: Envelope, Envelope Wrapper, and Publish-Subscribe 1m
- Handling Concurrent Updates 3m
- Agent 2m
- Message Filter 1m
- Demo Introduction: Using Agent and Message Filter to Mutate State 1m
- Demo: Using Agent and Message Filter to Mutate State 6m
- Demo Recap: Using Agent and Message Filter to Mutate State 1m
- Piping 1m
- Demo Introduction: Decoupling through Piping 0m
- Demo: Decoupling through Piping 3m
- Demo Recap: Decoupling through Piping 0m
- Message Translator 0m
- Event Message 0m
- Demo Introduction: Message Translator and Event Message 1m
- Demo: Message Translator and Event Message 2m
- Demo Recap: Message Translator and Event Message 1m
- Summary 1m
Map/Reduce
36mins
- Introduction 0m
- Purpose 1m
- Map/Reduce Pattern Language 2m
- Map/Reduce Concepts 1m
- Map 1m
- Filter 1m
- Querying In-Memory Data 3m
- Demo Introduction: Notifications 0m
- Demo: Notifications 7m
- Demo Recap: Notifications 1m
- Unfold 1m
- Take and TakeWhile 1m
- GroupBy 1m
- SumBy 1m
- Map Data Structure 1m
- Demo Introduction: Availability 1m
- Demo: Availability 14m
- Demo Recap: Availability 0m
- Summary 1m
Cross-Cutting Concerns
45mins
- Introduction 1m
- Persistence 1m
- Files 1m
- Demo Introduction: File Persistence 1m
- Demo: File Persistence 10m
- Demo Recap: File Persistence 0m
- Agents and Scalability 1m
- Demo Introduction: Azure Persistence 1m
- Demo: Azure Persistence 17m
- Demo Recap: Azure Persistence 0m
- Message Delivery 1m
- Demo Introduction: Replay Detection 0m
- Demo: Replay Detection 1m
- Demo Recap: Replay Detection 1m
- Error Handling 1m
- Demo Introduction: Error Handling 1m
- Demo: Error Handling 3m
- Demo Recap: Error Handling 1m
- Scalability 3m
- UI Code Repo 1m
- Summary 1m