Create your own Mini Web Server in F#
4.4 (16 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
115 students enrolled

Create your own Mini Web Server in F#

Learn the design principles of Suave library using Functional-First Programming with F#
4.4 (16 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
115 students enrolled
Created by Tamizhvendan S
Last updated 5/2017
English
English [Auto-generated]
Price: $39.99
30-Day Money-Back Guarantee
This course includes
  • 1 hour on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Functional-First Programming with F#
  • Internals of the Suave, a popular web library in F#
  • Application of Combinator Pattern
  • Three Step Approach - An effective technique to develop applications using Functional Programming
Requirements
  • This course aimed at students with beginner to intermediate skill in F#, basic understanding of the F# syntax and a light functional understanding would be beneficial.
Description

In this latest course from FSharp.TV, we are going to learn Functional-First Programming with F# and explore what it takes to build a web server library in F#. 

How has the course been structured?  

We all know reading the source code of a widely used library/project will help us to learn a programming language better. But how about learning a language by (re)building the project itself from the ground up? Sounds interesting, isn't it? 

In this course, we are going to build a minimal version of the Suave library, a popular web development library in F#. 

We will be creating the library by focusing on one requirement at a time, and evolve it incrementally.

Note: To get most out of this course, code side by side with the videos and experience the essence of functional programming.

What is Suave?

Suave, a simple web development library in F#. It provides a lightweight, non-blocking web server and a set of combinators to manipulate route flow and task composition. The non-blocking I/O model is efficient and suitable for building fast, scalable network applications.

By Completing this course, You will learn

  • Three-Step Approach - A useful technique to develop applications using Functional Programming
  • A real world application of Combinator Pattern
  • Internals of the Suave library
  • Last but not the least, you are going to experience how to put the pieces together and build a complete project using functional programming principles and techniques
Who this course is for:
  • Anyone who wants to wants to apply functional programming in real world
  • Anyone that wants to learn the internals of serving data over HTTP
Course content
Expand 15 lectures 53:26
+ Getting Started
15 lectures 53:26

This video introduces the Author and his experiences in using F# in production. He also explains how why he has created this course and how you can approach this video tutorial to get the most out of it.

Preview 00:43

This video will provide an overview of what to expect from the course, what you will be creating and prerequisites.

Preview 01:58

This video presents three characters roleplaying in the development of MiniSuave

Preview 01:23

In this video, we will be implementing our first function "OK" to enable Mark to send a response with the status code "Ok".

Implementing HTTP OK Response Handler
05:49

This video adds two more functions to send Internal Error and Not Found responses.  It also teaches how to remove duplicate code using partial application.

Preview 03:36

We will learn how to implement request filters to send responses only if the HTTP method matches. 

Adding Request Filters
05:46

During the previous video, we learned how to filter requests based on HTTP methods. Now, we'll be extending it to filter based on resource path.

Adding Path Filter
04:37

The implementation of request filters has broken the response function that we have implemented in the introductory videos. So, let's spend some time to fix it.

Fixing Broken Parts
02:53

In this video, we will be extending the MiniSuave library by adding an API to deal with headers in the Response. 

Adding Response Header
02:10

How about some time off to reflect? In this video, we will evaluate our MiniSuave design and see how can we make it better. 

Revisiting MiniSuave APIs
02:23

Function Composition is an integral part of functional programming. This video will help us to understand what we need to change in MiniSuave to enable Function Composition

Preview 05:05

In this video, we will be making a significant amount of changes in MiniSuave to make it elegant and easier to use.

Composing WebParts
07:41

We need to handle multiple kinds of requests in a web application. But MiniSuave is not yet designed for it. Let's add a new function "Choose" to make it happen.

Adding Choose
05:48

This video explains about the combinator pattern and how it has been applied in MiniSuave

Combinator Pattern
02:15

Congratulations for completing the course. Let's see where you can go from here. 

What's Next
01:19