
This video gives an overview of entire course.
Setting up F# is different in VS 2017 than in earlier versions. This video shows how to get the tools ready.
VS Code is fast, free, and cross platform, but using F# is quite different from Visual Studio. This video shows how to install and use the Ionide F# tools.
VS Code and Ionide rely on open source FAKE and Paket tools to make projects compile into assemblies. The experience is very different from Visual Studio, but this video shows how to do it.
This video shows how to write and run unit tests in F# in Visual Studio using MSTest, NUnit, and XUnit.
You can write better tests faster if you use functional testing libraries designed just for F#. This video shows how to do that.
In this video, we will understand why IDTs are preferred over classes for functional programming. Know when to use each type of IDT.
In this video, we will use the five types of collections in F# to model groups of objects and also will understand when and how to use each type.
In this video, we will compose your application out of small, easily testable parts avoiding bloat.
In this video, we will leverage the ready-made collection functions in F# to do complex processing on large amounts of data without writing a lot of code.
In this video, we will see how to make functional F# programs interoperate with programs written in non-functional, object-oriented .NET languages like C#.
In this video, we will see how to accurately model and implement the required behavior to design good software. Object-oriented approaches to design often focus on data before behavior. But the functional features of F# and its interactive prototyping, let you model and implement behavior from the beginning.
F# units of measure turn numeric values into domain-specific types. In this video, we will see that with UoMs you can easily tell what a numeric value represents in the real world. Even better, a UoM can only be used for correct purposes in calculations.
Whereas UoMs are for numbers. In this video, we will see that how single-valued unions let you turn any .NET type – including strings, DataTimes, and bools into a domain-specific type. SCUs make clear what a value means in the real world, and what things it can be used for.
Bugs won’t happen at runtime if they keep the program from compiling. In this video, we’ll see how to use F#’s type system to make invalid runtime conditions unrepresentable.
A pure function is one with no side effects. This video will show how to use pure functions to improve both the expressiveness and safety of your code.
Dependency injection is a common way to make code more extensible and testable. In object oriented languages, dependency injection is usually implemented with interfaces. In this video, we will see how F# lets you implement dependency injection easily and with less ceremony by using higher order functions.
Sometimes all the data a function needs isn’t available at once. This video shows how classes are often used in object oriented programming to solve this problem, and F# partial functions are a more straightforward solution.
In OOP, it’s often easier for an object to call its own methods than to call methods on other objects. This encourages creating large bloated classes. In this video, will see that F# functions can call other functions easily. , And that’s why complex behaviors can be composed out of the simpler behavior of individual functions.
In OOP, it’s easy to define a class’s data, but more difficult to enforce data validity rules, and still more difficult to enforce state transition rules. In this video, we will see how with F# it’s easy to define state transitions, even before you define all the data for each state.
Developers are challenged today to build applications in less time, while maintaining high standards of quality, reliability, security, and performance. The F# programming language can help you meet these challenges by letting you write solutions with less code, fewer bugs, and better alignment with business requirements.
This video course starts by showing how to use the functional features of F# to rapidly turn requirements into software designs that are correct, complete, extensible, bug-free, and easy to read and understand. We will start by setting up our F# development environment and reviewing some key language features. We'll then look in depth at two powerful techniques for building real-world F# applications: type-first design and function composition. We'll then learn to leverage advanced F# tools to build and test applications.
The video course examines key language features and functional programming techniques with the goal of providing a good understanding of the basic building blocks that can be used to build higher abstractions and more comprehensive solutions. As we go, we will learn how to set up a development environment and design a build process with tools that leverage the F# language.
About the author
Richard Broida is a software design and programming consultant specializing in Microsoft Windows and Azure technologies. Over his career he has developed enterprise applications for clients in medical, banking, insurance, manufacturing, transportation, and e-commerce. He is a frequent speaker on F#, C#, and cloud technologies and has taught .NET programming courses for adult professionals. You can follow Richard on Twitter (@SirEel) or on LinkedIn. He lives in Cleveland, Ohio.