VSLab Shell

by cisterni 27. July 2008 17:26

I think that one of the most interesting areas of VSLab, partly unforeseen, is the project of developing a next generation system shell as a package. System shells have a long history and there is always an attempt to find the new one, but I think these are here to stay, but they also are the past. We are living in a world where the stream-based composition of software is far from satisfactory, and also the completion forms provided by shells are inadequate.

In 2001 I defined a shell called ObjShell, attempting to exploit the component-based nature of COM for software composition. At that time I realized that Unix shells are just a simpler version of this where each program was a component with a well defined interface and an associated process, and the shell was the mean by which these components were integrated. ObjShell were a very nice project and today I can say it's a pity I didn't find the time to work on it for the .NET version, otherwise the Power Shell would have arrived several years before. And in fact I was contacted by the PS team (I spoke to Jeffrey Snover when He was in charge of PS) though I didn't succeded in trying to convince on some basic design principles of the ObjShell that I would have loved to see in the PS. I'm not a PS fan, I like the object streaming metaphor, but I didn't feel need for another unreadable language full of switches and dollars.

I think that programming languages and the associated toolchain have grown enough to blur the distinction between the program and the shell, it was true for VB and COM and it is more true nowadays with .NET and languages such as F# using the interactive top level. Now with few lines you can read system counters as PerfMon does and do several other things. VSLab Shell will be a package designed to be next generation shell, where statements are highlighted to be executed and a single file may contain several scripts. Intellisense it is far better than Tab-based completion. At the moment we are working on the core functionalities of the shell, but also designing interfaces to hardware such as ILO featured by HP.

More about VSLab Shell will be available in the next release of VSLab.

Currently rated 2.3 by 7 people

  • Currently 2.285714/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Design | Shell

VSLab R. Daneel released

by cisterni 16. July 2008 01:45

I just released the new release of VSLab codenamed R. Daneel. This release adds the package feature, an important element to build DSL and tools on top of VSLab. Packages are simply .NET assemblies with appropriate metadata used by VSLab to offer a dialog to manage them. Ok, ok you can code it, but it's handy to select which packages should be loaded, if at startup, and if you are lazy enough you can even ask for automatic namespace opening!

This is how package manager looks like:

You can load packages interactively or flag them for startup. You have two assembly caches (different from the GAC so you are not required to understand strong naming) for packages, one in the VSLab installation dir, and the other in the user profile. I managed to start the UAC dialog on Vista to have packages installed under program files.

Currently rated 2.0 by 3 people

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Design | General

Under the hood

by cisterni 13. July 2008 20:14

I'm going crazy in refactoring and improving VSLab runtime. I'm trying to improve early design choices made while trying to find the right approach to implement it. This is important because the new package mechanism requires better design. I'm changing also core names and I've added a new VS command to be used to move as much code as possible into fsi.exe instead than into the VS addin. The FSIExec command allows F# functions to send a string to the F# interactive top-level for evaluation. This is a powerful form of meta-programming allowing F# code generating code fragments to be evaluated in the fashion of the eval function of dynamic languages.

Currently rated 2.0 by 6 people

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Design

VSLab in lab

by cisterni 9. July 2008 19:02

Today has been the first try with Visual Studio Lab in a real laboratory. At "E. Piaggio" interdepartemental research center at University of Pisa we have interactively controlled a stepped motor of Aerotech (which is kind enough to provide a .NET class library) using F# interactive and VSLab. The idea is to instrument a research prototype for biomedical applications with Viewlets showing the state of a printer used for tissue reconstruction using cells.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

General | Applications

Package

by cisterni 7. July 2008 12:46

VSLab allows to quickly design Domain Specific Languages without having to rely on the full VS SDK. The advantage is flexibility and accessibility to programmers willing to extend VS without having to fight with the intricacies of COM that tend to surface when interacting with DTE and Visual Studio extensibility. To help defining modules easy to use we are defining an architecture for Packages that are loaded by VSLab in the easiest possible way and that can ask for dependencies without having to resort to #r #I directives explicitly. We are also planning for supporting automatic loading of packages at startup.

Original Viewlet Samples will be distributed in packages now. One significant package will be the VSLab Shell, a shell for performing System administration through Visual Studio.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Design

Community

by cisterni 5. July 2008 20:17
I check the CodePlex statistics everyday and I'm happy that people is getting interested in the project. The reason is that I think that VSLab has very great potential and I'm happy when I can share this vision with me. I think it may be time for starting a community if people starts developing viewlets. I'm currently working to the notion of Package to make sharing of viewlets easier. Contact me if you are interested.

Currently rated 1.5 by 2 people

  • Currently 1.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

General | Community

VSLab is growing

by cisterni 5. July 2008 18:43

Visual Studio Lab is growing and I felt the need for a place to keep interested people about it. About the things we are doing and possible directions. I tried to use the Discussion tool on CodePlex but it is not really satisfactory. So I decided to start this blog to let know people about what is going on about this project.

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

General

Powered by BlogEngine.NET 1.4.0.0
Theme by Mads Kristensen

VSLab blog

VSLab is a Visual Studio extension designed to support Visual Studio interaction from F# interactive. It is a Microsoft product developed at University of Pisa, by a team lead by Antonio Cisternino.

Resources

Recent comments

Comment RSS

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in  anyway.

© Copyright 2008