"StudioShell is a project that sort of blew my mind. The crazy PowerShell integration they’ve packaged into this visual studio extension is plain amazing.
I’d highly recommend watching the demo videos near the bottom of the project’s home codeplex site.
"I have been building and releasing software for over 20 years now. One thing I have learned over the years is that if you have a lot of manual steps in your release process then you will end up making mistakes. There are many tools available that can help reduce those mistakes. StudioShell is one of those tools and it has some unique characteristics that make it stand out over the rest of the tools I have used for automating release processes.
I have been maintaining software that manages the FIRST Robotics Competition for the last 5 years. The Team Foundation Server build process for the software has been modified to package up the bits into an MSI installer. The installer and a manifest file is deployed to a webserver. This MSI and manifest make up an auto update process for all the events that are scattered across the US. The problem I have had over the years is that the process of maintaining the Wix files, manifest, and assembly info meant I had to edit the version number for the next release in multiple places. As you can imagine this was a recipe for easy mistakes that just do not need to exist.
Well I could solve this problem by modifying the build process to checkout the files that needed to have the new version number. This would certainly remove the manual process of doing this by hand before the build executes. However I am not a fan of having the build process modifying source files (Wix, manifest and assembly info). So I was left with automating the manual process outside the build. This is where StudioShell shines.
First I created a StudioShell Solution Module only because I wanted to be able to automatically change to the directory that the solution is located once the StudioShell view is opened up inside of Visual Studio. This will allow me to easily launch other powershell scripts and do some relative paths within these scripts.
"You can never have enough powershell. And it's even cooler if you can have it straight in Visualstudio so that you don't have to leave your most hated/loved IDE. Studioshell is such another addin that makes it possible to use powershell.
You can download studioshell on codeplex (Its the big green button that say download, just in case you were wondering what to click).
After you install it you will see this In your View menu.
StudioShell's goal is to fundamentally change the way you interact with Visual Studio and your code.
If you’ve ever implemented a Visual Studio extension, such as an add-in or a package, you know how convoluted this space has become. You have to become an expert in your tooling if you want to change it. StudioShell changes this landscape by exposing many of Visual Studio’s extensibility points in a simple and consistent way. It makes the Visual Studio IDE interactive and discoverable.
What an add-in does in a compiled binary, StudioShell can accomplish with a one-liner.
FeaturesThe features supported by StudioShell include:
- Support for standard PowerShell profile scripts, as well as StudioShell profile scripts - customize your StudioShell session as you would any other PowerShell session.
- Manage your projects, references, breakpoints, stack frame locals, menus, toolbars, Visual Studio settings, IDE windows, and even your code from PowerShell scripts, all in a consistent and discoverable way.
- "Solution Modules" - save your StudioShell and IDE customizations as a PowerShell module in your solution, and it will automatically be imported into your StudioShell session when the solution is loaded.
- Simple visualization controls you can invoke from the console - create a graph of project code statistics with one line of script.
- Fully integrated context-sensitive help.
- Host indifference - StudioShell features can be used from any suitable PowerShell host, including NuGet and the standard PowerShell console.