comments
WebSharper – a year in review
Just over a year ago, last year in December we released WebSharper 3 on Apache, putting it into the hands of every F# web developer. One thing we learned from WebSharper 2 is that more frequent releases are better and this year kept the whole team busy with constant innovation and new releases. Below is a list I cherry-picked from the WebSharper blog:
WebSharper 3.0 with support for source maps, embedded sitelets, a more standardized API and namespace changes, better JavaScript interoperability #1, #2, #3, and #4, streamlined routing syntax, MonoDevelop and Xamarin Studio templates, self-hosted applications
WebSharper 3.1 with support for ASP.NET MVC, lightweight syntax to embed client-side code into sitelets, more routing enhancements (wildcard paths, multiple endpoints with a shared URL prefix, posting form data)
WebSharper 3.2 with streamlined syntax for sitelets, dot syntax for event handlers, server-side templating enhancements, more router syntax simplifications, and WebSharper.Warp-related enhancements
WebSharper 3.3 with client-side JSON serialization, F# 4.0 and its new collection functions, and cross-tier server-client-reusable HTML.
WebSharper 3.4 with a revamped Sitelets API, streamlined HMTL syntax (lowercase HTML combinators, more natural attribute syntax, cross-tier includes, client-side extensions, basic reactive templating), cross-site RPC for mobile web applications, new templates. You also get ASP.NET-hosted OWIN applications, data binding (http://websharper.com/blog-entry/4547/websharper-3-4-14-released) and a ton of other enhancements in UI.Next applications, as well as support for
OnAfterRender
.WebSharper 3.5 with pluggable HTML support, and various fixes #1, #2, #3, and splitting off the internal testing framework into a separate library
WebSharper 3.6 with CDN support, making WebSharper 3.6+ applications blazing fast, and a built-in cookies library and server-side resources.
We have also:
Showed how to do auto-refreshing Azure-deployments on GitHub commits and provided a new template for these projects
Introduced WebSharper.Warp: a frictionless WebSharper library for building scripted and standalone OWIN-based, full-stack F# web applications.
Introduced Try WebSharper, an online mini-IDE for developing and sharing WebSharper snippets with on-the-fly type checking, code completion and compiling to JavaScript. You can also version these snippets, import them from gists and add update notes to each version. And best of all, you can use almost all WebSharper extensions and you get on-hover type info and extension info as well.
Introduced WebSharper.Suave, a middleware for running WebSharper sitelets on Suave, and a new client-server template to help you get started easily.
Rolled out WebSharper.Data and WebSharper.Charting, making it easy to work with heterogeous data sources from client-side code and adding advanced charts and visualizations to your projects.
Exceeded 1000 topics on the WebSharper Forums.
Conferences and academia
This year we concentrated on getting work out and attended fewer conferences than in previous years. In 2014, the WebSharper team gave 16 talks on WebSharper in six countries, this year we gave nine talks in six countries.
The team submitted three research papers to academic conferences in 2015, continuing our tradition to publish research results in peer-reviewed conferences.
Next to conferences and research papers, our team has been active in teaching and trainings. Among others, we run functional reactive web development courses with F# and WebSharper at the Eotvos Lorand University (ELTE) and the University of Dunaujvaros, and have signed a similar agreement with the University of Szeged. We are also involved in creating an online semester long course for international students.
Coming up
Our WebSharper team has been cooking up some awesome things that are not yet available or not yet documented. In particular, with more blog entries coming up on each:
WebSharper 4 - we are finalizing the last bits of moving WebSharper to the F# Compiler Services (FCS) and merging the F#+WebSharper compilation steps into a single sweep, giving a significant boost to compilation speed, better F# language coverage, and fixing a number of corner cases in earlier releases. The first alphas are out in early January under a new WebSharper codename “Zafir”.
WebSharper 4 for C# - we are finally able to bring WebSharper to C# developers, covering the most common C# scenarios (asyncs, LINQ, etc.), most of the language, and calls to any one of the existing extensions in the WebSharper ecosystem. A lot more on this in upcoming blogs.
WebSharper.React - bringing React to WebSharper applications. Here is a live example:
WebSharper.LiveData - automatic syncronization of reactive data models between a server and its participating clients. You can read a draft of our first, upcoming tutorial.
WebSharper.Forms and WebSharper.Forms.Bootstrap - reactive web forms (aka. reactive Piglets) with custom rendering. Here is a live example that uses Bootstrap-based rendering for a login form:
New extensions, in particular WebSharper.JointJs and WebSharper.Rappid - bringing awesome diagramming solutions to WebSharper:
Updating CloudSharper with the latest WebSharper - this has been left on the backburner for several releases, now it's time to sync the two again. Once this work is finished, CloudSharper will be your one-stop shop for online web and mobile development with C# and F#; quick data access, analytics and visualization, and a host of other interactive capabilities.
This article gave you a quick overview of WebSharper in 2015, and is by no means complete. One thing is certain: WebSharper remains the primary choice for F# web developers, giving unparalleled productivity and access to the largest F# web ecosystem, and works well with a number of other efforts (ASP.NET, MVC, OWIN, Suave, Hopac, etc.) in the web and development space.
Happy coding and Happy Holidays!
I have been learning the latest stuff from the JS world for a few months now. Previously I only knew basics like jquery,D3 and a little bit of Angular.
My language of choice is F# and it is not going to change any time soon.
After a few months of learning I already know TypeScript, React, Redux and more.
I'm looking forward to see React binding for WebSharper. I would like to code my markup with JSX, bind everythink in JavaScript and replace Redux completly with Websharper!
I also have one question: is it/or will it be possible to compile F# (websharper) file to JS using a command? Particularly I would like to embed this process to gulp and include it in my solution according to my needs.
Thanks for a great work!