F# Web Tools
The F# Web Tools augment the F# distribution with tools to author homogeneous client/server/database web applications in one type-checked project. The modal distinctions between client and server are checked through the use of F# workflows, and LINQ can be used for database access. In the first version, parts of the application are dynamically served as JavaScript. Planned extensions include serving client-side portions as Silverlight code.
The goal of the project is to deal with the following three essential problems that authors of "Ajax" based web applications have to deal with:
- Limited client-side environment - Significant part of the application runs on the client-side and the most common execution environment available there is JavaScript, which is a problematic language for more complicated tasks. In F# WebTools you can use F# for developing client-side code and it is even possible to use subset of standard F#/.NET libraries.
- Discontinuity between server and client side - "Ajax" applications are written as two separate parts (one running on the client and second on the server) that need to communicate often, but currently it is possible to do it only using web services or similar technologies. In F# Web Tools where the code for both parts is written in a single file, you can simply use function calls.
- Components in web frameworks are only server-side - Finally, writing "Ajax" style applications in object-oriented frameworks (like ASP.NET) is difficult, because there is no way for implementing interactions between components that should occur on the client side. In F# Web Tools the 'component' can expose both client and server-side methods and events that can be used for defining these interactions.
Project Links
- F# Web Tools Project [^] - CodePlex
- Rich client/server web applications in F# [^] - Draft paper about the project
- Ajax-style Client/Server Programming with F# [^] - Slides from the presentation at MSR Cambridge
F# Web Tools Articles
- Thesis: Client-side Scripting using Meta-programming (3/17/2008)
Contains a link to my Bachelor Thesis about F# WebTools, which I partially worked on during my visit in Microsoft Research and which I successfully defended last year.
- F# Support for ASP.NET and Notes on Samples (3/8/2008)
In this article I look at the F# suppot for ASP.NET and at some interesting aspects of the samples that are available in the F# distribution.
- F# Web Tools: "Ajax" applications made simple (7/13/2007)
This article introduces the F# Web Toolkit, which is an "Ajax" web framework that solves three major problems that many people have to face when developing modern web applications.
(Published: October 11, 2007 02:43)


