News from WebSharper 3.0: NuGet, Visual Studio, Mono, upcoming features and API changes

By Loïc Denuzière on Monday, December 8, 2014 — 0 comments

The community response to the WebSharper 3.0 announcement has been overwhelmingly positive. Thanks to everyone who keeps spreading the word! Here are some news from the front:

  • WebSharper just hit the NuGet repository, together with all the public extensions. Don't forget the -pre flag when running NuGet update, since they are marked as alpha.
  • We also uploaded the first version 3.0 of the Visual Studio extension, together with a few updates to the WebSharper website.
  • Thanks to some updates to IntelliFactory.Build and WebSharper itself, WebSharper 3.0 can now be built from source on Mono. Don't hesitate to try it out and report any issues you might encounter!
  • Work has also started on some API enhancements and simplifications and some new features:

    • We are implementing JavaScript source maps. This feature will allow you to see the original F# code in your browser's debug window, for a much better runtime debugging experience.
    • We are working on enhancing the foreign function interface, in particular regarding higher-order functions. Such functions are currently wrapped at the language interface in a helper that can take arguments either separately (for JavaScript calls) or as a tuple (JavaScript array, for F# calls); but this causes problems eg. with functions taking a single array as argument. We are still exploring solutions.
    • The branch js-stdlib-merge contains a simplification of the bindings for the standard JavaScript library. The gist of it is that everything that is built in the browser is currently spread between no less than five namespaces and modules; this change moves all of it into IntelliFactory.WebSharper.JavaScript. More detail in this commit message.
    • We are looking to rename the namespaces IntelliFactory.Html and IntelliFactory.WebSharper.Html to something more explicit. Many developers have been confused by this naming because the difference is not obvious: the former is for server-side markup, while the latter is for client-side markup. The server-side markup will probably be renamed to IntelliFactory.WebSharper.Sitelets.Html; we haven't yet decided a name for the client-side markup.
    • More enhancements will be coming; we hope to have the bulk of the breaking changes in before the end of the year.

Happy coding!