RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Startup IntelliFactory Rolls Out WebSharper Platform

Learning how Microsoft's F# and WebSharper work could put you on the cutting edge of web site development.

Microsoft's Tech Days Paris began this week, and programming languages and web apps are major themes. During a demo talk at the show, Don Syme, principal researcher at Microsoft Research, Cambridge, will focus on F# (a Microsoft-developed language), Robert Pickering will talk about quotations, and Adam Granicz, founder of the IntelliFactory, will discuss WebSharper, a framework that allows you to write web applications with no JavaScript, no HTML, etc. It's all functional programming.

WebSharper is fully supported in the .NET Framework and Visual Studio 2010, which allows developers to leverage the entire .NET Framework and additional F# core libraries. So, what exactly is F#? Wikipedia (http://en.wikipedia.org/wiki/F_Sharp_(programming_language)) defines it like so: "F# (pronounced F Sharp) is a multi-paradigm programming language, targeting the .NET Framework, that encompasses functional programming as well as imperative object-oriented programming disciplines. It is a variant of ML and is largely compatible with the OCaml implementation." As a developer, learning how F# and WebSharper work could put you on the bleeding edge of next generation web site development.

The WebSharper product provides a means for developers to expand into rapid web development with F#. WebSharper web applications are dramatically shorter and are considered type-safe. Plus, a plethora of extensions are available to enable third-party JS frameworks and libraries directly with F#. It all fits seamlessly together. Writing in type-safe F# allows you to write a fraction of the code you would normally write in JavaScript, which is known as an untyped language.

This doesn't mean that you can't, or shouldn't, use JS technologies. In fact, F# provides bindings to JS, so you can do jQuery, Flapjax, Qooxdoo or even YUI controls.

IntelliFactory, a startup based out of Hungary now expanding to London, Paris, and California, plans to release WebSharper in February. WebSharper applications are built from pagelets written in F# that correspond to client-side functionality, and are automatically converted into optimized JavaScript. Client-side execution alleviates unnecessary work from the web servers.

This is a stark contrast from traditional web applications that are inherently server-based, which requires the server to perform and render most of the interaction on the pages. This client-side approach speeds the delivery of a web page, which allows for more complex functionality without the risk of a slow-loading page.

Addressing Weaknesses

Developers can easily take existing ASP.NET applications and enhance them with WebSharper-based functionality. This new web developer tool addresses many of the weaknesses of ASP.NET. This includes using strings for IDs and method names to connect markup with code behind untyped form values, overly complex form construction, etc., and provides type-safe and robust alternatives such as formlets or flowlets.

When writing JavaScript code, it is easy for developers to create errors and it can take a long time to complete a project due to JS being an untyped language. In addition, there is little IDE support and many bugs only surface at runtime. WebSharper eases the development of complex UI interactions, form validation, and other typical client chores that prove daunting tasks with pure JavaScript. Due to its difficult nature, a proliferation of various JavaScript layers or packages exist to ease the burden, but they still require developers to code in JavaScript.

WebSharper uses the F# core libraries (i.e., the Seq module for filtering out certain values from a lazy sequence), and various .NET core libraries (i.e., for working with regular expressions or math functions) without any concern for how these map to JavaScript. The platform takes care of the mapping through its advanced proxy mechanism. This is also extensible, so developers provide their own mappings to JavaScript for whatever .NET type and its members.

The first version of WebSharper comes with extensions for formlet support to Yahoo UI, and Google Maps and Visualization. Further extensions to Qooxdoo, JQuery UI, surveys, and many more are planned to roll out in the near future.

Mike Rohde is a writer and editor. Throughout his career he�s written it all: from press releases to technical documentation to advertising copy to web content. He's currently working as a freelance writer. You can read his series, How to Build a Web Site, on HTMLgoodies.com.
Email AuthorEmail Author
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date