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