Tomas Petricek’s and Phil Trelford’s two-day Functional Programming in C# and F# course explains the concepts that you need to write modern applications for .NET using F#, C# with LINQ as well as current and upcoming .NET technologies that arise from functional programming ideas -- as described in the book Real World Functional Programming: With Examples in F# and C#.
Functional ideas are becoming ubiquitous in the .NET world. F# is a Visual Studio language; C# 3.0 includes many functional constructs; Reactive extensions (Rx) are based on functional design and upcoming version of C# is inspired by F# asynchronous workflows.
Learning several simple functional concepts will help you understand these technologies and use them effectively. This means that the course will make you a better programmer even if you’re not going to immediately start using F#. This course is based on experience of developing commercial applications in F# and we’ll discuss good ways of introducing F# to your daily work.
Day 1 - Introducing functional concepts
From functional programming in C# to F#
- How F# fits with the rest of the world?
- Translating object-oriented C# to F#
- Using immutable types in C# and F#
Working with functional concepts
- Using functions as values
- Declarative list processing and how LINQ works
- Declarative event processing using F# and Reactive Extensions (Rx)
Understanding and refactoring functional code
- Parallelizing CPU-intensive computations
- Testing functional programs and .NET applications with F#
Day 2 - Point of sale application in 1 day
Understanding functional design
- Using primitive functional data types: Records and Discriminated unions
- Domain modelling using functional types
- Writing programs as transformations between domain models
- Creating abstract data types
Reactive and data-oriented programming
- Sequence expressions and the workflow syntax
- Asynchronous user-interface programming
- Completing Silverlight application