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:

  1. 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.
  2. 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.
  3. 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 Articles

    Published: October 11, 2007 02:43