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.