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.
Mark Seemann is the author of Dependency Injection in .NET and the inventor of AutoFixture. He is a professional programmer and software architect living in Copenhagen, Denmark, and currently an independent advisor. He enjoys reading, drawing, playing the guitar, good wine, and gourmet food.
Thinking Functionally Hello, my name is Mark Seemann, and this is the Functional Architecture with F# course, module 1, Thinking Functionally. In this module, you'll learn about some basic abstractions before we get started with F#. You will also see some demos of the sample applications used in this course, and you'll learn about its concrete architecture, including how to get started with an F# application.
Pipes and Filters Hello, my name is Mark Seemann and this is the Functional Architecture with F# course, module 2, Pipes and Filters. In this module, you'll see examples of selected patterns from the Pipes and Filters pattern language, as well as demos of each pattern. These patterns are all about accepting and checking input, transforming it, and mutating the state of the application. In module 3, you'll see how to return the state of the application to clients.
Map/Reduce Hello, my name is Mark Seemann and this is the Functional Architecture with F# course, module 3, Map/Reduce. In this module you'll learn about various functions from the Map/Reduce pattern language and you'll see extensive demos of how to write systems composed of such functions. The theme is to be able to answer questions about the state and data of the system.
Cross-Cutting Concerns Hello. My name is Mark Seemann and this is the Functional Architecture with F# course module 4, Cross-cutting concerns. In this module you'll learn about how to implement persistence and other cross-cutting concerns with the to use Windows Azure Storage Services. Using Azure queues, bring up the topic of replay detection and item potency. Finally, you'll see how to add error handling and logging to your application.