One of the myths about F# and functional programming is that it is only good for complex mathematics. This could not be further from truth. A web server is essentially a function from a request to a response and so functional programming is a perfect fit for it.
In this one-day workshop, you’ll learn all you need to get started with building web applications in F# using the Suave.io server. We’ll start with an walkthrough that introduces the basic F# concepts and constructs and uses them to build a simple interactive web site. By the end of the workshop, you’ll write a application that accesses multiple external data sources asynchronously, uses agent-based programming model and WebSockets to send data to the client and can be easily deployed to Azure or Heroku.
The course requires no prior functional programming knowledge, but if you have done some F# before, we have many fun bonus problems for you. You will learn:
A brief theoretical introduction to every concept will be followed by numerous practical demos and exercises. At the end of the workshop, you’ll leave with a complete real-world F# application.
The course doesn’t require prior experience with F# or functional programming. You will need a laptop with F# installed.
In the course, you get to work on one or more sample projects. After explaining the basic Suave concepts, we’ll give you a basic template with a plenty of fun exercises that gradually introduce the library and the F# language. Here is a list of sample projects that we did in the past.
Create a simple polling site that reads poll information from JSON data, lets the users vote in different polls, saves the results and even visualizes results of polls using charts.</p>
As a bonus problem, you can also monitor the poll status using WebSockets and refresh the results whenever another user votes.</p>
In this demo, you get to create a simple chatting site (be it WhatsApp or Slack).
Users can enter one or more chatrooms, send messages to the rooms and see what
is happening. On the backend, agent-based architecture using F# MailboxProcessor
is used to handle requests in a scaleable way.</p>
Write a question. Get an answer. Or maybe not, because MoonBot is not as clever.
But if you program it, it will be! The idea is to write a bot that can find
interesting information such as news, weather forecasts, stock prices or even
Urban Dictionary definitions. This is a great way to learn how to call services
and access a variety of data sources.
Hands-on w/ @SuaveIO and #fsharp w/ @tomaspetricek pic.twitter.com/9HcwuUao9J
— Paulmichael Blasucci (@pblasucci) June 23, 2016
Nice hands on workshop with pairing #suave #fake by @tomaspetricek #ncrafts
— Norman Mendel (@N0_M3) May 21, 2015
The #fsharp agent workshop with @tomaspetricek is running smoothly! pic.twitter.com/U3lhBU3u9t
— Jérémie Chassaing (@thinkb4coding) June 27, 2014