Overview of WebSharper

WebSharper is a framework and toolset for developing web/mobile applications and web services entirely in C# or F# (or a mix of the two languages) with strongly-typed client-server communication and site navigation. It provides powerful server-side capabilities and a compiler to JavaScript with a whole set of client-side functional abstractions.

Functional, composable web server

Safe HTML templating

Serve HTML content from template files, with strongly typed access to fill in holes.

Compose HTML easily

Generate HTML from C#/F# with a clean syntax.

Inlined client code

Have event handlers and client-generated content in C#/F# right inside your server-side code, auto-translated to JavaScript.

Declarative routing

Parse requests and write links using C#/F# types automatically.

Customizable JSON format

Parse and generate JSON based on the shape and attributes of your data type.

Generate static sites

Output HTML+JS into a folder, all set up to work without WebSharper's server runtime.

JavaScript compiler and utilities

Use the power of C# and/or F#

Source-to-source translation with support for latest and greatest language features of both C# and F#.

Interact with JavaScript

JavaScript inlines are checked compile-time for correctness.

Metaprogramming

Customize translation with macros: every call to annotated methods can be modified by your custom class.

Use JavaScript libraries

Many JavaScript libraries has typed interfaces for WebSharper available on NuGet.

Reactive UI

Let the data flow through your web pages.

Powerful abstractions

Write full web forms in a couple lines of code.

Seamless client-server interaction

Share code

HTML templating and combinators, parsing or creating links, JSON serialization and your custom code all have compatible behavior.

Remoting with ease

Doing an AJAX request is just a plain asynchronous call to your server-side function.

WebSocket support

Using a customizable JSON format for your messages.