comment
We are happy to announce the release of version 3.4.19 of the WebSharper stack, which you can download here. This release is mainly dedicated to bug fixes and minor features.
Xamarin Studio / MonoDevelop addin on the main channel
The WebSharper addin is now available on the main Xamarin Studio channel. This means that you can now drop the githubusercontent.com-based custom repository, and grab WebSharper directly from Xamarin instead! Simply check the "Web Development" category in the addin manager's gallery.
UI.Next Checked number inputs
The main new feature (and breaking change) is in UI.Next. The functions Doc.IntInput and Doc.FloatInput, which associate a Var<int> or Var<float> to a <input type="number"> element, took little care to check the correctness of the actual text entered by the user. This could result in awkward and even browser-inconsistent user experience, where mistakenly entering "1e" would return 1 on some browsers and 0 on others.
These combinators have therefore been modified to perform more input checking and bind the value to a Var<CheckedInput<_>>, with the following definition:
1 2 3 4
type CheckedInput<'T> =
| Valid of value: 'T * inputText: string
| Invalid of inputText: string
| Blank of inputText: stringThis way, typing "1e" consistently sets the Var to Invalid "1e".
The old behavior can still be achieved using Doc.IntInputUnchecked and Doc.FloatInputUnchecked, but is not advised.
Full change log
Here are the minor changes and bug fixes to WebSharper and components since the previous release.
WebSharper
#402: Fix exception when compiling a WebSharper project that references a Roslyn-compiled assembly.
#467: Add
JS.RequestAnimationFrameandJS.CancelAnimationFrame, with a shim for IE9-.#470: Fix the
printffamily of functions for union cases with[<Constant>]attributes.#471: Fix exception on mono when looking for a
[<Website>]if a dependent assembly is missing.#473: Add server-side JSON serialization of the
unittype.Add missing proxy for
jQuery.parseHTML.
WebSharper.UI.Next
#31: Add
Doc.Verbatimto create aDocfrom verbatim HTML. Be careful not to use it with user input data!#33: camelCase on Expr-based events (eg.
on.keyUpinstead ofon.keyup).#34: make
IntInputandFloatInputchecked (see above).#36: Add attr.``data-`` combinator to
WebSharper.UI.Next.Htmlto createdata-foo="value"-type attributes.#37: Add
Doc.SelectOptional, which adds a first selectable option that sets theVartoNone.#38: Add
Doc.SelectDynandDoc.SelectDynOptional, for which the list of available options comes dynamically from aView.#39: Add
View.MapCached, which is identical toView.Mapexcept that it doesn't call the mapping function again if the input value is equal to the previous input. Useful if the mapping function is computationally expensive. Note that the output is still marked obsolete, it is simply re-filled with the same cached value.#40: Add
Doc.WebControl, which allows including aWebSharper.Web.Controlinside a server-sideDoc.#41: Add
.With()method overloads forWebSharper.Sitelets.Content.Templatethat takeDocs as holes.#42: Add instance member versions of
Doc.Run,Doc.RunByIdandDoc.AsPagelet.
MonoDevelop.WebSharper
Release on the main Xamarin channel (see above).
#3 on websharper.templates: duplicate
.fsprojfile when creating a project whose name isn't also a valid identifier.
Happy coding!






