Computer Science Experimentation

Monday, September 3, 2012

Three-tier web application with F# and javascript

In the previous posts, I described several examples of services using F# with WCF.
 In this post, and in a series of future ones, I will describe a high efficient web application technology using three-tier architecture: host server, database server and web browser interface.

The software resources used in these posts are:

·        Host server:

o   F# language

o   Windows Communication Foundation (WCF) – services oriented application framework

·        Database server:

o   SQL Server Compact – database engine

o   Entity Framework – object relational mapper

o   F# type providers – information rich application component

·        Web client:

o   HTML5 – web markup language

o   javascript – web scripting language

o   jquery – javascript library

o   jqWidgets – web user interface library

o   knockoutjs –model-view-view-model javascript library

In my opinion, these set of software technologies represent the state-of-art available for web applications. The advantages are:

·        All software, except the jqWidgets and knockoutjs, are supplied by Microsoft

·        Microsoft Visual Studio is the only development tool required

·        All software, except jqWidgets, are free if you own the Window Operation System

·        Host server has high performance due to compiled code and the use of REST and Json

·        Application can be self-hosted or part of a server application as IIS

·        No SQL commands are needed to access the database

·        Client is available in all devices that support HTML5

·        Several components are used to hide complexity resulting in application with few lines of code


A user authentication web application is presented as an example.
Check the full article including source code at: