This articlerelies largely or entirely on asingle source. Relevant discussion may be found on thetalk page. Please helpimprove this article byintroducing citations to additional sources. Find sources: "WebSharper" – news ·newspapers ·books ·scholar ·JSTOR(January 2023) |
Original author(s) | Intellifactory |
---|---|
Initial release | 2008 |
Stable release | 4.5.14 / May 29, 2019 (2019-05-29) |
Written in | F# |
Operating system | Linux,Windows,Mac OS X,Android,iOS,Windows Phone |
Available in | F#,C# |
Type | Ajax framework |
License | Apache License 2.0, Commercial |
Website | websharper |
WebSharper is anopen-source and commercial web-programming framework that allowsweb developers to create and maintain complexJavaScript andHTML5front-end applications in theF# programming language. Other than a few native libraries, everything is F# source.
WebSharper includes support forjQuery,HTML5,DOM andEcmaScript. WebSharper Mobile includes support forAndroid,iOS andWindows PhoneFormlets andSitelets.
Unlike many other web-programming toolkits, WebSharper offers a rich set of abstractions and DSL syntax for common web-related chores, such as composing HTML, defining web forms, managing required resources and handling URLs safely.[1]
WebSharper extensions include
WebSharper can be used with any text editor. WebSharper can also be used withVisual Studio 2008/2010/2012 templates with full ASP.NET integration and withMonoDevelop.
As a general framework for making web apps, WebSharper is also capable of being used as a framework for making mobile and tablet apps, either by making the needed widgets and animations from scratch, or by using one of the mobile frameworks for WebSharper. AnHTML5 app written in WebSharper can have separate views for Tablets and Mobile phones.
The following sample displays a single HTML paragraph:
[<JavaScript>]letMain()=Div[P[Text"Welcome"]]
The matching server-side code is also written in F#:
typeHelloWorldViewer()=inheritWeb.Control()[<JavaScript>]overridethis.Body=HelloWorld.Main():>Html.IPagelet
{{cite journal}}
:Cite journal requires|journal=
(help)