F# is excellent for building scalable, robust web solutions:

  • Fast and Scalable - F# is much faster than NodeJS, Python, PHP and Ruby
  • Succinct - F# is concise, readable and type-safe, for fast development of robust web solutions
  • Asynchronous - F# provides asynchronous programming to simplify scalable client-server programming
  • Interoperable - F# interoperates seamlessly with languages such as C#, JavaScript and TypeScript
  • JavaScript-ready - F# is JavaScript-ready through WebSharper and FunScript
  • Open-source and Cross-platform - Like all good web tools!

F# also shines in the area of web API development through frameworks like ServiceStack, Web API, Frank and NancyFx.

Frameworks for Web Applications

  • logo WebSharper

    WebSharper allows end-to-end web applications with both client and server developed in F#. It includes TypeScript interoperability, mobile web apps, getting started material, templates and much more.

  • logo Pure F# ASP.NET MVC

    ASP.NET MVC is a widely used open source web framework from Microsoft. Pure F# ASP.NET MVC allows a Pure F# project for implementing a web application with ASP.NET MVC 5. Views are implemented in HTML5 using modern Javascript frameworks. Models and controllers are implemented in F#.

  • FunScript

    FunScript is an F# to JavaScript converter with TypeScript interoperability.

  • NancyFx

    NancyFx is a lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono. F# templates are available.

Frameworks for Server-Side Web APIs

Hosting

Common hosting options are:

Scaling to the Cloud

The Cloud Programming section contains more details on cloud programming with F#. Some specific resources related to web programming are:

Unit Testing Libraries

It is common to create a suite of unit tests when building web solutions. A list of open source libraries that assist with unit testing is available here:

Here are a few Visual Studio project templates available for building unit tests:

Client-side Testing

  • canopy is a web testing framework built on top of selenium and written in F#. It’s syntax is clean and concise. You can easily leverage your existing .Net code to help you test.

Books

Several books have been written that include information on building web applications with F#:

Presentations

There are several presentations and tutorials available that include information on build web applications with F#:

Older ASP.NET MVC using two projects (one F#, one C#)

When using MVC ASP.NET 3 or 4, mixed C#/F# ASP.NET MVC are used. In this approach, views are implemented in HTML with some C#. Models and controllers are implemented in F#.

Silverlight Applications:

For those still using Silverlight, you can use F# to build Silverlight projects in whole or in part. Some resources are: