<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>vslab Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home</link><description>vslab Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/wikipage?version=26</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IMPORTANT!&lt;/b&gt; VSLab for VS2010 has just been released! I&amp;#39;m sorry but I had to give up and accept that today the only way to send keys to F# interactive window is by means of SendKeys... This means that you must have F# interactive visible when commands are sent by the VSLab addin.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quick start&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Install the MSI after Visual Studio 2010.&lt;/li&gt;
&lt;li&gt;Go to Tools -&amp;gt; Add-in Manager in Visual Studio 2010&lt;/li&gt;
&lt;li&gt;Select VSLab addin&lt;/li&gt;
&lt;li&gt;Now you can load the VSLab support by pressing Shift&lt;u&gt;Alt&lt;/u&gt;V (if no splashscreen shows go to Option -&amp;gt; Keyboard, type VSLab in the search box and ensure that Shift&lt;u&gt;Alt&lt;/u&gt;V shortcut is associated with StartVSLab command).&lt;/li&gt;
&lt;li&gt;Create a new Project of type VSLab Demo e play with the examples (note the Tutorial shall soon be updated, use the others)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; DirectX for .NET is required to run the 3D function viewer.&lt;br /&gt;&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Wed, 26 Jan 2011 00:07:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110126120712A</guid></item><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/wikipage?version=25</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IMPORTANT!&lt;/b&gt; VSLab for VS2010 has just been released! I&amp;#39;m sorry but I had to give up and accept that today the only way to send keys to F# interactive window is by means of SendKeys... This means that you must have F# interactive visible when commands are sent by the VSLab addin.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quick start&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Install the MSI after Visual Studio 2010.&lt;/li&gt;
&lt;li&gt;Go to Tools -&amp;gt; Add-in Manager in Visual Studio 2010&lt;/li&gt;
&lt;li&gt;Select VSLab addin&lt;/li&gt;
&lt;li&gt;Now you can load the VSLab support by pressing Shift&lt;u&gt;Alt&lt;/u&gt;V (if no splashscreen shows go to Option -&amp;gt; Keyboard, type VSLab in the search box and ensure that Shift&lt;u&gt;Alt&lt;/u&gt;V shortcut is associated with StartVSLab command).&lt;/li&gt;
&lt;li&gt;Create a new Project of type VSLab Demo e play with the examples (note the Tutorial shall soon be updated, use the others)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Sun, 23 Jan 2011 23:34:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110123113404P</guid></item><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/wikipage?version=24</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IMPORTANT!&lt;/b&gt; VSLab for VS2010 has just been released! I&amp;#39;m sorry but I had to give up and accept that today the only way to send keys to F# interactive window is by means of SendKeys... This means that you must have F# interactive visible when commands are sent by the VSLab addin.&lt;br /&gt;&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Sun, 23 Jan 2011 23:08:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110123110851P</guid></item><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/wikipage?version=23</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IMPORTANT!&lt;/b&gt; VSLab is not dead, we had really hard time to port core mechanisms to VS 2010 (and latest release of VSLab for VS 2008). We just committed updated code, so now we are running regression tests and we are back online again! Thanks for your patience, it is difficult to maintain some of the hacks in this software.&lt;br /&gt;&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Thu, 21 Jan 2010 00:04:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100121120419A</guid></item><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/Wiki/View.aspx?title=Home&amp;version=22</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Happy birthday!&lt;/b&gt; one year has passed since the first public release! Today we released the new version compatible with May 2009 CTP of F#. More to come!&lt;br /&gt;&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 20 Jun 2009 08:57:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090620085737A</guid></item><item><title>Updated Wiki: Home</title><link>http://vslab.codeplex.com/Wiki/View.aspx?title=Home&amp;version=21</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Happy birthday!&lt;/b&gt; one year has passed since the first public release! Today we released the new version compatible with May 2008 CTP of F#. More to come!&lt;br /&gt;&lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;DownloadId=38307" alt="Screenshot-4-small.png" title="Screenshot-4-small.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Acknowledgments&lt;/h2&gt;
I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;&lt;/div&gt;</description><author>cisterni</author><pubDate>Fri, 19 Jun 2009 08:36:29 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090619083629A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=20</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: October 30 update available, fixed several bugs and consolidated the Viewlet class. Added a new sample in the tutorial.&lt;br /&gt; &lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=38307" alt="Screenshot-4-small.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Thu, 30 Oct 2008 21:29:16 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20081030092916P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: VSLab codename R2D2release available!&lt;br /&gt; &lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=38307" alt="Screenshot-4-small.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sun, 05 Oct 2008 15:40:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20081005034018P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=18</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: VSLab codename Hal release available!&lt;br /&gt; &lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog/page/Visual-Tutorial.aspx" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=38307" alt="Screenshot-4-small.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 05 Jul 2008 15:41:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080705034122P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=17</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: VSLab codename Hal release available!&lt;br /&gt; &lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=38307" alt="Screenshot-4-small.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 05 Jul 2008 15:40:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080705034021P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=16</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: VSLab codename Hal release available!&lt;br /&gt; &lt;br /&gt;The Visual tutorial has moved in the new VSLab blog.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab Visual Tutorial&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cvslab.di.unipi.it/vslab/blog" class="externalLink"&gt;VSLab blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=38307" alt="Screenshot-4-small.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 05 Jul 2008 15:38:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080705033851P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=15</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: VSLab codename Hal release available!&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are four templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Performance monitor: the viewlet presented in the &amp;quot;How to write a Viewlet&amp;quot; whitepaper that monitors VS and &lt;i&gt;fsi.exe&lt;/i&gt; CPU and memory load.&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio unless you choose otherwise during installation. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far).&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash. &lt;b&gt;New:&lt;/b&gt; Hal release improved resource cleanup, but there is still work to do on this.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sun, 29 Jun 2008 11:24:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080629112420A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;New!&lt;/b&gt;: Hal version released!&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop. &lt;b&gt;New:&lt;/b&gt; this issue will be lifted in the upcoming Hal release.&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 28 Jun 2008 18:59:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080628065923P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop. &lt;b&gt;New:&lt;/b&gt; this issue will be lifted in the upcoming Hal release.&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Sat, 28 Jun 2008 15:21:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080628032137P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37664" alt="Splash.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop. &lt;b&gt;New:&lt;/b&gt; this issue will be lifted in the upcoming Hal release.&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Wed, 25 Jun 2008 21:24:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080625092455P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:Splash.png]&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop. &lt;b&gt;New:&lt;/b&gt; this issue will be lifted in the upcoming Hal release.&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Wed, 25 Jun 2008 21:24:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080625092426P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37385" alt="Splash.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop. &lt;b&gt;New:&lt;/b&gt; this issue will be lifted in the upcoming Hal release.&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Tue, 24 Jun 2008 20:10:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080624081018P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37385" alt="Splash.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far). &lt;b&gt;New:&lt;/b&gt; you can now decide wether to wrap or not &lt;i&gt;fsc.exe&lt;/i&gt; during installation.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Mon, 23 Jun 2008 10:36:32 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080623103632A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37385" alt="Splash.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far)&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt;Trust the installer, it has been carefully developed adn removes all the additions made during uninstall.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Fri, 20 Jun 2008 23:39:50 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080620113950P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/vslab/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Visual Studio Lab &amp;#40;VSLab&amp;#41; exploits the power of F&amp;#35; 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&amp;#35; is a compiled language, the final code can be compiled as a standalone application.&lt;br /&gt;Goal of the project is to provide the basic infrastructure to turn Visual Studio in VSLab, and a number of addins &amp;#40;called viewlets&amp;#41; used to show data and support development of scientific based applications.
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37385" alt="Splash.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Visual tutorial
&lt;/h1&gt; &lt;br /&gt;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 &lt;i&gt;Viewlets&lt;/i&gt;, Visual studio toolwindow that are interactively updated by F# functions. I think that the implementation is worth to study because &lt;i&gt;fsi.exe&lt;/i&gt; 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#).&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt; &lt;br /&gt;The current release of VSLab is codenamed Kit and it is considered version 1.0 because the core mechanisms are in place. The current need is for viewlets and libraries. Installation requires:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Managed Direct-X&lt;/li&gt;&lt;li&gt;F# (and VS integration)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;The installer checks for prerequisites and then you simply next enough times to get VSLab installed.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Getting started: a new VSLab project
&lt;/h2&gt; &lt;br /&gt;We have defined a new F# project type called VSLab, it is an F# project and it is simply used to introduce .vslab files which are files that are added to the project but not compiled with the &lt;i&gt;fsc&lt;/i&gt; compiler is invoked. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37383" alt="Screenshot-0.png" /&gt;&lt;br /&gt; &lt;br /&gt;The rationale for this is that vslab files act as a sort of whiteboard where you can experiment with code snippets without committing to use them in the final program. Recall that the overal goal of the project that is to have matlab-like interaction in Visual Studio, therefore VSLab has been designed with experimentation in mind. However, we also support &lt;i&gt;code consolidation&lt;/i&gt; that this a simple form of extrusion to move snippets into &lt;i&gt;.fs&lt;/i&gt; files to be compiled.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewlets
&lt;/h2&gt; &lt;br /&gt;When you add a new file to your VSLab project you will notice a new category that allows you to choose among VSLab templates, a sort of code snippets to quickly insert viewlets in your project. Currently there are three templates:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Viewer 3D: a modified version of the wonderful DX example developed by Don Syme&lt;/li&gt;&lt;li&gt;Graph sampler: a highly configurable graph control that plots data annotated with timestamp&lt;/li&gt;&lt;li&gt;Tutorial: a set of useful VSLab code fragments showing features of the system&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37375" alt="Screenshot-1.png" /&gt;&lt;br /&gt; &lt;br /&gt;I would suggest you to start from the 3D viewer, select the code from the beginning of the file until the line &lt;b&gt;viewer1.Show()&lt;/b&gt; and evaluate it using &lt;i&gt;Alt+Enter&lt;/i&gt;. Now add a &lt;i&gt;Graph sampler&lt;/i&gt; item to your project and evaluate until the invocation of the &lt;b&gt;Show&lt;/b&gt; method.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37376" alt="Screenshot-2.png" /&gt;&lt;br /&gt; &lt;br /&gt;If you evaluate the &lt;b&gt;ShowProperty()&lt;/b&gt; line you get the property grid associated with the viewlet and you can dynamically configure your viewlet while it is running!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37377" alt="Screenshot-3.png" /&gt;&lt;br /&gt; &lt;br /&gt;Viewlets can be instantiated multiple times, let's add another 3D viewer:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37378" alt="Screenshot-4.png" /&gt;&lt;br /&gt; &lt;br /&gt;When you click &lt;b&gt;x&lt;/b&gt; on a toolwindow it gets hidden, and you can restore hidden viewlets using the VSLab toolbar:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37379" alt="Screenshot-5.png" /&gt;&lt;br /&gt; &lt;br /&gt;Using the same toolbar you can also show and hide the F# interactive toolwindow.&lt;br /&gt;You can even dynamically define viewlets without any need for compilation:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=vslab&amp;amp;DownloadId=37380" alt="Screenshot-6.png" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Editor
&lt;/h2&gt; &lt;br /&gt;After experimentation you will feel the need for consolidation of code fragments. If you select text and use right click you get the opportunity of sending code fragments to &lt;i&gt;.fs&lt;/i&gt; files in the project that can be used to compile the final application. VSLab files remain as a memory of the process that has generated the final code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Things you must know
&lt;/h2&gt; &lt;br /&gt;VSLab does several hacks to make F# interactive interoperate with Visual Studio (for robustness they ran in different processes). Many of the hacks are restricted to VSLab and does not affect your installation with few exceptions:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;VSLab can run only on the first Visual Studio instance because of COM and DTE interop&lt;/li&gt;&lt;li&gt;&lt;i&gt;fsc.exe&lt;/i&gt; has been wrapped to ignore .vslab files when compiling from Visual Studio. The wrapper invokes &lt;i&gt;fsc.exe&lt;/i&gt; after pre-processing the command line. If you run &lt;i&gt;fsc.exe&lt;/i&gt; you get the instructions to disable this behavior (though I didn't find any issue so far)&lt;/li&gt;&lt;li&gt;&lt;i&gt;Alt+Enter&lt;/i&gt; key binding starts VSLab addin running F# interactive instead of the original addin that ships with F#. It uses exactly the same objects thus it is not a problem.&lt;/li&gt;&lt;li&gt;When you are closing the environment it is recommended that you explicitly invoke the &lt;b&gt;Close&lt;/b&gt; method on viewlets, the system attempts to dispose resources but in the current release sometimes &lt;i&gt;fsi.exe&lt;/i&gt; or &lt;i&gt;devenv.exe&lt;/i&gt; crash.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;When &lt;i&gt;fsi.exe&lt;/i&gt; crashes or you quit to get a fresh instance you can use a button on the toolbar to invoke the startup code that setup the VSLab environment.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Acknowledgments
&lt;/h2&gt; &lt;br /&gt;I wish to thank all the people that have contributed to this project: my students Davide Morelli and Sara Berardelli in the first place that have made possible the core mechanisms and the 3D viewlet respectively. Cristina Nardini and Emanuele Arpini from Microsoft that supported the idea, and Don Syme that developed such a beautiful piece of code (F# and the 3D viewer) and supported me during VSLab development. I also thanks all other people that are not mentioned here but that have contributed in many ways.&lt;br /&gt;
&lt;/div&gt;</description><author>cisterni</author><pubDate>Fri, 20 Jun 2008 23:37:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080620113709P</guid></item></channel></rss>