WebSharper 4.1 is now available on NuGet, and as a vsix installer on the WebSharper website.
New and updated documentation: WebSharper 4.1 for C# and WebSharper 4.1 for F#.
See some new features live at Try WebSharper: in C# and in F#.
The release notes are also on GitHub.
ctx.ClientSide can take any fixed F# quotation now and translates it to JavaScript.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.See the details of Sitelet and Router features in the C# and F# documentation.
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....Attr family of functions have been renamed to match just the name of the tag, while the previous functions taking no Attr list have been removed. So previous div [text "Hello"] becomes div [] [text "Hello"] with WebSharper.UI.x and y are both Var<int> or View<int> then V(x.V + x.Y) is eqivalent to using View.Map2 (+). Also within F# text or Attr. functions and any C# HTML combinators, the logic for V(...) is applied automatically, so no extra wrapping is needed..Vars property, exposing all the variables that has been bound to inputs in the template. If you specify no binding, a Var will be implicitly created for the input.IRef type has been removed and Var is now an abstract class.See the details of UI features in the C# and F# documentation.
<UseDownloadedResources>True</UseDownloadedResources> in web.config, now local script links are correct for any sub-page.WebSharper.Testing to expose more equality test alternatives provided by QUnit.inline function). Now an overloaded method is resolved based on signature.WebSharper.Sitelets namespace and assembly are now in WebSharper namespace and in WebSharper.Core.dll.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.Can’t find what you were looking for? Drop us a line.