Create your own Mini Web Server in F#
4.4 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
80 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Create your own Mini Web Server in F# to your Wishlist.

Add to Wishlist

Create your own Mini Web Server in F#

Learn the design principles of Suave library using Functional-First Programming with F#
4.4 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
80 students enrolled
Created by Tamizhvendan S
Last updated 5/2017
English
Current price: $20 Original price: $40 Discount: 50% off
30-Day Money-Back Guarantee
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 Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I 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
View Curriculum
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 is the target audience?
  • Anyone who wants to wants to apply functional programming in real world
  • Anyone that wants to learn the internals of serving data over HTTP
Curriculum For This Course
+
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
About the Instructor
Tamizhvendan S
4.4 Average rating
8 Reviews
80 Students
1 Course
Lead Consultant at Ajira

Tamizh is a Pragmatic, Passionate and Polyglot Programmer. He started his programming journey at the age of 12, and the passion has not left him since then. 

He is a Full-Stack solution provider and has a wealth of experience in solving complex problems using different programming languages and technologies. F#, Node.js, Golang, Haskell are some of his favorites. 

Tamizh is also a functional programming evangelist and authored a book "F# Applied", a practical guide for web development in F# using Suave.