The release notes are also on GitHub.
- Server-side event handlers and
- New implementation for
WebSharper.Sitelets.Routertype, fully composable and also working on the client-side.
WebSharper.UIadds 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.
WebSharper.UI.Nexthas been renamed to
WebSharper.UI, affecting both package and namespace naming. For C# projects, an additional package reference for
WebSharper.UI.CSharpis needed, and
.CSharphas 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.1still exists for immediate back-compatibility, switching to
WebSharper.UIis recommended for new features and fixes.
- For composing HTML in F#, the
...Attrfamily 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
- An nice and easy syntax is available for creating reactive values. If
V(x.V + x.Y)is eqivalent to using
View.Map2 (+). Also within F#
Attr.functions and any C# HTML combinators, the logic for
V(...)is applied automatically, so no extra wrapping is needed.
- Template types (created either by the C# code generator or the F# type provider) have a new
.Varsproperty, exposing all the variables that has been bound to inputs in the template. If you specify no binding, a
Varwill be implicitly created for the input.
IReftype has been removed and
Varis now an abstract class.
- Fix using
web.config, now local script links are correct for any sub-page.
WebSharper.Testingto expose more equality test alternatives provided by
- Better handling of F# trait calls (using a member constraint inside an
inlinefunction). Now an overloaded method is resolved based on signature.
- Optimization of remoting protocol: array of types are not included when it is empty.
- Attributes previously in
WebSharper.Siteletsnamespace and assembly are now in
WebSharpernamespace and in
Routerfield is now of type
IRouter, compatible in capabilities with the old
Routerrecord. The new
Routertype offers more combinators and is implementing