Tomas Petricek’s and Phil Trelford’s two-day Functional Programming in .NET course explains 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.
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.
- You’ll learn how to use and understand functional programming concepts and technologies in practice on the .NET platform.
- Think in the functional way and use this thinking when designing .NET applications
- Write effective and succinct code in F#
- Combine F# functional libraries F# with object-oriented components in C#.
- Model problem domains using functional types
- Write reactive and asynchronous applications
PROGRAMMEDay 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