Saturday, June 28, 2008

VSLab – Interactive F# in Visual Studio

CodePlexVSLab

Project Description

Visual Studio Lab (VSLab) exploits the power of F# and its interactive top level to provide an interactive environment similar to MatLab and Mathematica, in which you can easily create Add-ins and interact dynamically with them inside Visual Studio. Moreover, since F# is a compiled language, the final code can be compiled as a standalone application.

Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins (called viewlets) used to show data and support development of scientific based applications.

Visual tutorial

The easiest way to look at VSLab is a powerful version of F# interactive that allows to open Visual studio toolwindows and interactively draw inside them. VSLab provides several facilities to create and manage Viewlets, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because fsi.exe run in a separate process and it isn't trivial at all to convince VS to accept efficient drawing from an external process. In fact VSLab has been developed to be an example of DTE use, the Visual Studio extensibility, and F# was the natural candidate for exploiting this power because of its interactive abilities. More technical documents will follow, for the moment let me introduce VSLab in the quickest way (assuming that you know a little bit of F#).

Screenshot-4

…”

I have no idea what to do with this, but I thought it was pretty cool and since I like posting about cool stuff… :)

I’ve yet to take a look at F# (or functional programming for that matter), but from what I hear in the casts I’ve caught, it sounds interesting. I like the idea of focused languages for targeted tasks. Languages for specific problem domains. I like that, for example, there doesn’t seem to be the drive to make WinForms via F#. That F# isn’t meant as a replacement for C#/VB (having two “primary” languages in the battle is enough I think ;) It seems there will be a place for F# assemblies, solving specific problems, in your C#/VB solutions. Using the right tool for the right job and all that.

(via martin esmann - Visual Studio Lab (VSLab))

1 comment:

Unknown said...

You have to try it! Using F# interactive inside Visual Studio you can access .NET BCL lively, and VSLab is a way to obtain VS toolwindow defined on the fly using WinForms. I've just released a new version with more documentation and Whitepapers explaining several aspects of VSLab.

-- Antonio Cisternino