By Adam Granicz on Thursday, May 15, 2014 — 0 comments

Program F# with CloudSharper everywhere Core team

Are you an F# user on Mac OS or Linux, looking for the easiest way to develop multi-project F# solutions with full code assistance and type checking? Would you like to use F# Interactive for developing and testing parts of your web applications interactively? Would you like to benefit from the multitude of web libraries in your development environment? Well, if yes - look no further, CloudSharper, the world's most versatile online IDE has arrived to Mac and Linux!

Here are a couple screenshots showing CloudSharper in action on Mac OS and Linux (click on them to view the full-size image):

We will going full force to bring you even more awesome features to kickstart your F# development experience on the web, so register your free CloudSharper account, use it in your everyday work, and tell us what you think.

Happy coding!

By Anton Tayanovskyy on Thursday, May 15, 2014 — 0 comments

Dangers of react and VirtualDom Core team

This is a brain dump from a Twitter/IRC discussion with @panesofglass and @bryanedds. So there is this brand-new thing called Facebook React and hype wave about Virtual DOM. I only skimmed this library, but here are some reasons why I remain sceptical: Identity! Typical DOM trees are a lot more than the markup. They are full of pieces of state that are *opaque* - abstract types, and *mutable*. This is especially true if you use 3rd-party libraries, but even with vanilla DOM, input tag, once r[...]
>> Read the full article on
By Loïc Denuzière on Monday, May 12, 2014 — 0 comments

CloudSharper Local alpha released Core team

CloudSharper is here! It has been several weeks since the previous release, therefore this version includes several major improvements.

  • CloudSharper is now officially supported on mono. Here are the installation instructions for Ubuntu 14.04:

    • Install the following packages from the Ubuntu repository:
      mono-complete fsharp
    • Download the zip version of CloudSharper Local, available here (or linked on the login page) and extract it in the folder of your choice.
    • To start CloudSharper Local, run the following command:
      mono CloudSharper.exe
  • The F# Intellisense service is now based on the latest FSharp.Compiler.Service, the community-maintained library used by the MonoDevelop and Emacs modes for F#.
  • The F# Interactive service is also based on FSharp.Compiler.Service. This gives us more control over the internals of fsi and allows more reliable extensibility for tools such as our inline charting library and on-the-fly compilation to JavaScript via WebSharper.
  • CloudSharper now manages a solution file per workspace. It is a standard Visual Studio solution file, allowing you to work comfortably on the same workspace with CloudSharper and Visual Studio. Projects are automatically added to it when created with the "Create new project" window, and removed when the .*proj file is deleted.
  • Minimal NuGet package management. CloudSharper checks for any packages.config file in your workspace and automatically installs the corresponding packages. Upcoming versions will provide automatic insertion of the relevant references in project files and a GUI to easily search, install and reference NuGet packages.

The following long-standing bugs have been fixed:

  • On some computers, the CloudSharper Local Console failed to start properly, which forced these users to start CloudSharper.exe from the command line. This is not the case anymore.
  • The installer now properly removes older versions of CloudSharper Local.

Here is the complete change list:

  • #139: "exit 1;;" in F# Interactive gives error message
  • #272: Console doesn't start service properly
  • #305: Projects not in subfolders crash the console
  • #308: CloudSharper.Installer.msi is not removing older versions
  • #309: Use fsi from FSharp.Compiler.Service instead of the current wrapper
  • #313: Context menu on workspaces list
  • #316: Do not ship System.dll, Microsoft.Build.* etc - breaks on Mono
  • #318: FSharp.Core vs
  • #319: Conflicts between MS Build 4.0 and 12.0
  • #323: Mono; stuck at creating Interactive service
  • #324: Mono: downloadTemplate hits NotImplemented
  • #325: Start cs.exe bug
  • #326: Login with FPish redirect needs updating
  • #327: File tabs improvements
  • #329: Solution file support
  • #330: Project references dialog
  • #331: Closing affected file tabs on folder delete
  • #332: AsyncDisposable losing exceptions.
  • #333: bug in portRangeAllocator + AsyncDisposable
  • #334: FSI gets started twice per session
  • #335, #337: Mono: fsi does not print anything to the console
  • #336: CloudSharper.exe spinning CPU
  • #339: MSBuild building/cleaning projects fails on Mono
  • #341: Executing an FSI script fails with fireworks on Mono
  • #342: MSBuild service -- find a solution that works both on Mono and .NET
  • #343: Allow creating an empty workspace without needing to go to azure
  • #345: FSharp.Core v4.3.1.0 not found on Mono
  • #346: Mono / HTML project: Connection Reset when viewing generated HTML
  • #347: Mono: native failure on FSharpInterfaceDataVersionAttribute ctor
  • #349: Completion returns nothing when the project file has been opened
  • #350: Build dependencies missing
  • #351: Completion not working for WebSharper projects (mono + windows)
  • #352: Completion not working after build in Mono
  • #353: Add the latest nuget.exe to the installer and zip
  • #354: Execute NuGet package restore when necessary
  • #355: Add a "NuGet Package Restore" context menu item
  • #357: "Package restore" output should go into Build Messages
  • #358: fsproj changes not getting picked up
  • #363: Triggering msbuild when another build is already running crashes the local component
  • #364: MSBuild service throws an exception if a project file is invalid
  • #365: MSBuild is silent when passed an invalid project file
  • #367: fsi: WebSharper code raises Failed to translate property access
  • #370: Mono: exception when writing to the solution file

Happy coding!

By Anton Tayanovskyy on Friday, April 18, 2014 — 0 comments

Does syntax matter? Or how I started progrmamming. Core team

How I started programming: well there was some Basic, Pascal and PHP, but I started getting serious only after encountering and trying to understand Haskell, while doing grad school for an unrelated subject. Haskell challenged me, somehow. It looked like nothing I have seen before. And playing with it had that feeling of figuring out a puzzle. How I found Haskell: going through the list of languages that Kate or some such editor supported highlighting for. Yeah, I know.. In alphabetic order. [...]
>> Read the full article on
By Anton Tayanovskyy on Wednesday, April 9, 2014 — 0 comments

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.

By Loïc Denuzière on Friday, April 4, 2014 — 0 comments

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!

By Loïc Denuzière on Tuesday, March 25, 2014 — 0 comments

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!

By Adam Granicz on Tuesday, March 25, 2014 — 0 comments

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!

By Adam Granicz on Friday, March 14, 2014 — 0 comments

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!

By Adam Granicz on Thursday, March 6, 2014 — 0 comments

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!