Module 1 – Introduction to F#
This module provides an introduction to F#. Topics include a brief overview of the history of the language, what problems it is designed to solve, where it fits in within the Visual Studio / .NET ecosystem, as well as a summary of the F# community and its ethos.
- Lab 1: Installing Visual Studio 2015 with F#
Module 2 – Developing F# in Visual Studio 2015
This module focuses on configuring Visual Studio for optimum F# development. Students will also gain an introduction to writing code with the Visual Studio F# REPL, known as F# Interactive (FSI) and execute some simple F# examples.
- Lab 02: Developing F sharp in Visual Studio 2015
Module 3: F# Fundamentals
This module will introduce the student to the most important F# language features that underpin many of the higher-level features in the language and framework, as well as explaining some of the key design decisions behind the F# language.
Module 4: Functions and Data
This module will introduce the student to some of the core types in F# and compare & contrast them with equivalents available in the Base Class Library (BCL) and C# / VB .NET.
- Lab 4: Building and Consuming a Calculator
Module 5: Program Flow
This module will demonstrate common mechanisms for orchestrating program flow in F#. It also introduces the user to the last “core F# type”, the Discriminated Union.
- Lab 5: Creating a simplified Monopoly
Module 6: Collections
Collections are a core part of F#. This module will provide an overview of the various collections available in F# and compare & contrast them with equivalent types available in the Base Class Library (BCL) and C# / VB .NET.
- Lab 6: Working with Collections
Module 7: Integrating F# and C# projects
Description: As a first-class citizen on the .NET platform, F# has an excellent interoperability story with C# and VB .NET. This module illustrates how interoperability is achieved between F# and C# and VB .NET, both in terms of consuming other .NET code and exposing F# to other .NET consumers.
- Lab 7: Interop Application Review
Module 8: Exploring data using F# and Type Providers
F# has rich support for accessing data with a wide variety of Type Providers, which provide the ease-of-use of a dynamic language such as Python with the type safety of a static language such as C#. This module illustrates some common patterns and core packages for accessing data.
- Lab 8: Weather Forecasting
Module 9: Building Data-Driven Web APIs in F#
F# plays well with frameworks like Web API and can integrate with SQL through a number of mechanisms, including standard .NET APIs as well as F#-specific ones. In this session, we’ll illustrate the different mechanisms available to the user and build an API that exposes data over HTTP with a SQL backend.
- Lab 9: House Prices Web API
Module 10: Unit Testing in F#
You can write unit tests with F# just like you can with C#; because of the way that many F# functions are written, they are often easier to test than OO-equivalents. This module illustrates how to integrate your F# code with some of the unit testing frameworks that are out there.
Module 11: Wrapping up
This module will provide the student with some excellent resources and common F# packages worth investigating further.