WebSharper available for testing on Xamarin & MonoDevelop Core team

WebSharper development gains support for Mono framework on Linux and Mac OS X, and integration with Xamarin Studio and MonoDevelop. The preview add-in is available for testing at intellifactory/monodevelop.websharper

What you get:

  • Ability to develop WebSharper projects on Linux and Mac OS X
  • A viable IDE alternative to Visual Studio for WebSharper projects

What we have done:

  • Worked around a bunch of xbuild bugs by rewriting WebSharper build logic from MSBuild XML to MSBuild tasks, this seems to work reliably on both Mono/xbuild and .NET/MSBuild
  • Created an add-in for MonoDevelop and Xamarin Studio that is able to create instances of WebSharper templates

There are some remaining issues with Web project support, especially F#/Web projects integration into the IDE, but the projects are working with xsp4.

In the near future, we plan to push this further and hope to fully support cross-platform development of OWIN-based Web projects in F#/WebSharper that would allow hosting performant websites directly in-process, rather than relying on ASP.NET xsp4 emulation.

CloudSharper Core team

This bugfix release addresses the following issues:

  • #303: Distribute System.Threading.Tasks.Dataflow.dll. The absence of this file could prevent running msbuild unless installed on your system.
  • #304: Allow the local component's sitelet server to serve several sitelets in parallel. This allows you to have several workspaces open (in separate browser tabs) and to test them simultaneously. This will also allow the upcoming multi-user component to serve sitelets for several users.
    This comes with a change in the configuration file (CloudSharper.Console.exe.config in the installation directory): the siteleturl setting is now split into siteletbaseurl and siteletportrange.

Happy coding!

CloudSharper Core team

As the version number suggests, this is only a bugfix release. The issues addressed are:

  • #301: Trying to start MSBuild while a build was already running caused the server to crash; this is no longer the case.
  • #302: The initialization code for fsi failed to run due to mismatched FSharp.Core.dll version; this caused charting and on-the-fly WebSharper compilation to fail.

As announced yesterday, we are now focusing on providing a centralized platform experience to provide CloudSharper to a group of developers or students off a single install. Follow us on twitter @CloudSharper for further announcements!

CloudSharper 0.9.9 Core team

This release continues our efforts to require fewer dependencies on your machine before you can use CloudSharper. In earlier releases, various CloudSharper templates (most notably, the WebSharper Sitelet Website template) required .targets files that were part of Visual Studio. This dependency is now eliminated.

We also made further template changes to require F# 3.1 installed on your machine, as opposed to earlier 3.0 installations, to match the updated code service that parses and type checks according to the F# 3.1 specification.

These bring the requirements for using CloudSharper now in line with what's stated on the Login page.

Other issues addressed in this release are:
  • #297 - Embedded application template doesn't compile
  • #294 - Show the full path in a tab's tooltip
  • #296 - Worktree: close all folders by default and remember which folders are open
  • #282 - Doing a build on an empty workspace should say that there is nothing to build
  • #298 - When creating a project, if it has a README, open it

Next up on our TODO list is enabling remote CloudSharper servers. This is an essential feature to enable installation-less scenarios, such as using CloudSharper as a platform at developer conferences and workshops, and those in academia such as programming in-class sessions and distance/e-learning.

More exciting developments will be announced here as they unfold, until then be sure to follow us on Twitter at @CloudSharper.

Happy coding!

CloudSharper Local alpha 0.9.8 Core team

We are happy to announce a new round of CloudSharper Local alpha releases, encapsulating the latest enhancements to the F# compiler service and delivering several bug fixes to CloudSharper's msbuild support.

Subsequent releases will focus on establishing Mono compatibility, project templates that support F# 3.1 out of the box (at the moment, you need F# 3.0 installed on your system to compile CloudSharper project templates), support for remote CloudSharper servers, and synchronizing local workspace files into cloud storage. These stream of releases will eventually lead to the official 1.0 release in Q2.

The list of bugs fixed in this release:
  • #286 Right click + Build uses IF.Build
  • #289 Moving a source file to a folder and back causes it not to type check
  • #295 Deleting and re-creating a standalone F# file crashes the completion service
  • #291 Clicking on any errors in the Notifications doesn't switch over to Messages
  • #290 Duplicate errors on moving files in the solution tree

Happy coding!

CloudSharper Local alpha 0.9.7 Core team

We are happy to announce the latest release of CloudSharper, version 0.9.7, bringing a new type checking and code assistance engine for F# projects. This last week we have been working hard on moving CloudSharper to FCS (FSharp.Compiler.Service), and with this current release much of the migration work is completed. As a result, the type checker in F# projects is considerably faster, and code assistance features are available in more locations that in previous CloudSharper releases.

Moving to FCS replaces our heavily modified and customized fork of the earlier type checking engine, and given the amount of work going into FCS nowadays it is the only sensible choice going forwards.

Happy coding!

WebSharper 2.5.98 Core team

This release brings asynchronous sitelets, brings back support for targeting .NET 4.0 - 4.5.1, and offers several bug fixes.

By popular demand, we have downgraded the WebSharper stack to work well on .NET 4.0, while also working with .NET 4.5 and 4.5.1. Both F# 3.0 and F# 3.1 are now supported.

Thanks to @Oenotria, WebSharper sitelets now support fully asynchronous execution, hooking into asynchronous API as an IIS handler.

Release notes: [link:github.com]

CloudSharper Local alpha available Core team

We are excited to announce the first release of CloudSharper Local, a spin-off of CloudSharper that uses your local machine to serve the main CloudSharper front-end. CloudSharper is an awesome new way to work with F# on the web. It enables you to use F# to easily connect to various data sources and visualize data from those data sources in rich HTML5 charts and diagrams. You can also develop HTML5 games, web and mobile applications in pure F# code, and you will feel more productive than ever. CloudSharper comes with a set of project templates to easily get you started and gives you full-fledged interactive web programming capabilities to test on the fly and in small before you deploy your larger applications.

CloudSharper Local is the first in the line of CloudSharper releases. It addresses the most immediate needs of keeping your sensitive project files on your local machine and providing you with a highly customizable and extensible local development server. We'll be blogging more about the various capabilities this local server can provide and how you can further enhance it and better tailor it to your needs, but even in its basic form it can act as a file, web, and coding server, supporting all functions of the current CloudSharper front-end.

You can get started by registering your new CloudSharper account on the Home page, and downloading and starting the local server component as you log in. To dip your toes in the water, create a new empty workspace, add a new project to it from the various templates available, and hit Build (Ctrl+B). The first build might take a little while as it needs to download several Nuget packages to complete, but once your sample app is built you can test it against your running local server by choosing Deploy locally... (Ctrl+D) from the Workspace menu.

Here is a screenshot of a new workspace with the jQuery Mobile project template compiled and running, literally one minute after registering a new CloudSharper account:

And F# type checking and code completion in action within the same project:

You can add new files easily and extend your project in any direction:

Happy coding and stay tuned for more awesome enhancements!

WebSharper 2.5.93 - improved numeric performance Core team

We are happy to announce the availability of the most recent WebSharper update, version 2.5.93, released on Feb 4, 2014. This release brings a new and improved optimizer for the Core language that is used as an intermediate form during compilation to JavaScript. The optimizer is able to eliminate more JavaScript expressions, generates more readable code, and improves JavaScript performance of numeric code (such as code using for loops heavily) by 30-50%.
The release also fixes a number of bugs related to code generation and extension templates.

Bugs fixed in this release: 209, 210, 212, 213

Happy coding!

WebSharper 2.5 Release Notes Core team

We are happy to announce the general availability of WebSharper 2.5, and the corresponding new WebSharper site that has gone through a major facelift. I plan to blog about the major individual features in detail as separate blog entries, until then, here is a short list of the main changes.

Switched to NuGet

You can now grab WebSharper or WebSharper extensions directly from NuGet, on demand when your project needs them. This gives a simple distribution and upgrade model for the compiler and extensions, however, we recommend that you install WebSharper itself through the Visual Studio .VSIX extension to benefit from the various WebSharper templates.

If you have any installed legacy (2.4 or older) WebSharper binaries and you no longer wish to use them in your legacy projects, this would be a good time to uninstall those.

Upgraded to F# 3.0

For WebSharper 2.5, we decided to move to F# 3.0 to better benefit from the new language features. F# 3.1 support is coming. By default, you will also need .NET 4.5 installed, as this is the new target framework for WebSharper 2.5. Those who wish to use WebSharper 2.5 on .NET 4.0 can use the new branch created for that. See #185 for details.

Support for VS 2012 Express and VS 2013

WebSharper 2.5 now works with the full Visual Studio 2012 suite, including the free Express For Web edition. It also works with Visual Studio 2013.

Support for Web.API and OWIN

WebSharper 2.5 now supports running WebSharper sitelets via Web.API, allowing to host sitelets standalone in a variety of web containers via OWIN or integrate them with latest ASP.NET MVC and Web.API projects (via the separate websharper.webapi project).

Support for pure-F# web projects without template indirection

WebSharper 2.4 sitelets required a C# host web application. WebSharper 2.5 removes the need for these host projects and supports pure F# web projects with sitelets embedded.

More open sourced components

We have open sourced WebSharper Mobile, the component that supplies packaging and Visual Studio templates for Android and Windows Phone; and several key extensions (Bing Maps, Google Maps, Google Visualization, WebGL, Google O3D, GlMatrix, jQuery UI, jQuery Mobile).

New extensions

We have released two new extensions (D3, and HighCharts), and have several upcoming ones in the pipeline for HTML5 games, mobile application development, and charting and visualization.

Introducing Piglets

Pluggable Interactive GUIlets - Piglets - are an improved formalism similar to formlets, that provides for better UI and logic separation. We have published the first results of this new formalism in our upcoming IFL 2013 paper.

Experimental: Bundling support

WebSharper can now merge all offline dependencies into a single bundle file, making it easier to package Single Page Applications and offline sitelets, and manage optional and on-demand loading of resources. To use bundling you can supply an additional command line argument (bundle) to websharper.exe, or simply use the new Visual Studio project template (Website Bundle) that we added to the VSIX installer. This is an experimental feature, see #128 for details.

TypeScript support for generated JS code descriptors

WebSharper now outputs .d.ts files for each generated JavaScript file, making it easier to interface with those files from TypeScript. This is an experimental feature, see ticket #144 for details.

TypeScript type provider for TypeScript 0.9.x

We have work underway to augment WebSharper 2.5 with a new TypeScript type provider that can read TypeScript declarations and create WebSharper extensions out of them on the fly. This component is released separately and its availability will be announced shortly.


We moved the WebGL bindings to the main WebSharper repository, so you can now develop WebGL-based mobile and web applications without an extension. See ticket #159 for details.

A ton of smaller enhancements and fixes

Bug fixes and extended proxy support for .NET methods: #70, #71, #72, #73, #74, #75, #77, #78, #79, #80, #83, #86, #87, #90, #91, #92, #93, #96, #101, #107, #109, #110, #111, #112, #114, #117, #118, #123, #125, #126, #133, #134, #136, #139, #145, #148, #152, #153, #154, #156, #158, #160, #161, #162, #163, #164, #165, #166, #169, #170, #172, #176, #177, #178, #180, #182, #183, #184, #186, #187. This includes support for for/while syntax in async workflows, array and string slicing (#136), better DateTime and TimeSpan support (#134), improved compilation strategies for sequence operations (#145) and mutable variables (#148)

Happy coding!