This book tells the story of the Community for F# (C4F#) web application's development. It uses the story format so that you can understand why and how the developers chose the implementation. We desire you gain not just a knowledge of how to build web applications with F# but understand the style, as well.
If you are new to web programming, this book aims to introduce you to building a web application in F#. If you are an F# veteran struggling to select the write tool(s) for your web project, this book will be your guide. If you have built web applications in F# in the past, we hope this book offers new tips or suggestions.
We wrote this book to fill the gap in documentation about building web applications in F#. The F# Software Foundation (FSSF) hosts a guide on web programming which is primarily a list of available tools. Each project hosts documentation and samples, to varying degrees of quality and completeness. Yet no guide or documentation discusses how to select the right tool for your project. We will show you how we made decisions for this project and give you ideas for making the right selections for yours.
If you want to build the source code for the C4F# web application, you'll need the F# compiler. You can find instructions on installing F# on your environment on fsharp.org.
Once you have these two tools, you can download the C4F# web app from https://github.com/c4fsharp/c4fsharp. Then you just have to run a build script --
build.ps1 (Windows) or
build.sh (Mac or *nix) -- to build the application. The build script will download all necessary dependencies and build the application. You can then run the application using
This book tells a story. As such, you will find it easiest to follow along in a linear path. You are free to skip around to learn specific implementations, but you will lose a lot of the thinking behind the it. To reiterate, this book aims to share not just how but why you might use each tool.
Since this book tells the story of a specific implementation, you may find the decisions aren't your own. That's okay. In sharing why we didn't select a tool, we hope you find reasons it's a good fit for you.