@Jand42 Jand42 released this Dec 23, 2017 · 388 commits to master since this release

Assets 2

WebSharper 4.1.0.171

New features

  • #853 Server-side event handlers and ctx.ClientSide can take any fixed F# quotation now and translates it to JavaScript (auto-quoted in both languages, so straight lambda function syntax is enough).
  • #865 New implementation for WebSharper.Sitelets.Router type, fully composable and also working on the client-side. WebSharper.UI adds helpers to use it for client-side routing. This allows generating safe links on the client for server-side endpoints, also on the server to states handled by the client.

Fixes/improvements

  • #862 Fix using <UseDownloadedResources>True</UseDownloadedResources> in web.config, now local script links are correct for any sub-page.
  • #864 Expanded WebSharper.Testing to expose more equality test alternatives provided by QUnit.
  • #854 Better handling of F# trait calls (using a member constraint inside an inline function). Now an overloaded method is resolved based on signature.
  • #858 Optimization of remoting protocol: array of types are not included when it is empty.

Breaking changes

  • #857 Attributes previously in WebSharper.Sitelets namespace and assembly are now in WebSharper namespace and in WebSharper.Core.dll.
  • A Sitelet's Router field is now of type IRouter, compatible in capabilities with the old Router record. The new Router type offers more combinators and is implementing IRouter.
  • Also with the WebSharper 4.1, WebSharper.UI.Next has been renamed to WebSharper.UI, affecting both package and namespace naming. For C# projects, an additional package reference for WebSharper.UI.CSharp is needed, and .CSharp has been removed from all namespace names, so now no extra usings are needed to get the C#-oriented extension methods. A compatibility package WebSharper.UI.Next 4.1 still exists for immediate back-compatibility, switching to WebSharper.UI is recommended for new features and fixes.