One of the newcomers to the PowerShell editing game is Idera, who purchased Tobias Weltner's PowerShellPlus. Tobias - a fellow Powershell MVP - has continued to work on the product, and has a great deal of passion for PowerShell. A lot of that comes through in the product. As with all of the articles in this roundup series, this will be pretty lengthy - so grab a cup of coffee and maybe a donut or two!
PowerShellPlus launches a "Getting Started" window along with the editor itself; I find it to be a bit annoying, but fortunately there's a demure checkbox at the bottom of the window that will make it stop doing that. It also opens up a "Script Execution Warning" with a similar "leave me alone" checkbox. I appreciate both the desire to (a) make me aware of features, which is what Getting Started is for, and (b) warn me of something potentially dangerous, but I hate obtrusive default messaging. It's one of the things that annoys me most about Windows and it creates a poor first-time experience with the product. You wind up clicking through boxes at first start just to get to what you paid for, which is bad.
Let's begin with basic editing features. The product provides syntax highlighting (color-coding), and does a wonderful job of providing code hinting and completion features - down to individual descriptions of each parameter for a cmdlet. If anything, the constant tooltips can actually become a bit annoying once you're used to the cmdlets, simply because they take up so much screen real estate. Brace matching is exceedingly well-done, and the live syntax checking works - although its visual implementation is a bit too "in your face" for me. Simply typing the first line of a function results in a red underline, a warning icon in the margin area, and a three-line error in a status bar at the end of the page. Okay, okay - I get it. I'm not done typing yet; leave me alone. Or better, automatically create the closing brace for me when you see me creating a new function, a la Visual Studio. Undo levels are more than sufficient, although as near as I can tell they are not persisted between editing sessions. Code folding is present, although you can't define custom foldable areas. Out of five stars, I give PowerShellPlus 4 for this category. I think most users will be pretty happy with it, but there are some refinements that I'd like to see for my own personal tastes.
Moving on to assistance features: There's no alias-to-cmdlet expansion capability, nor can you convert abbreviated parameter names into their full names. There is a robust Snippets facility, although I couldn't locate a keyboard shortcut to engage it, which I'd prefer over right-clicking. Snippets are categorized into folders, and when you select one it goes into "field input mode," allowing you tab between whatever bits of the snippet that need filled in. Escape exits the input field mode. The provided snippets are fairly minimal, consisting mainly of language constructs and other more-or-less static elements; there aren't a ton of ready examples to accomplish complex tasks. You can create your own snippets, but you seem to be limited to turning an entire script into one; you can't select a snippet of text in the editor and turn just that snippet into a Snippet. The "Save a Snippet" feature doesn't indicate which fields - filename, title, etc - are mandatory, but if you forget one, you're bounced out of the dialog and have to start over. There are no script-generation Wizards. For this category, PowerShellPlus earns two stars out of five, mainly for the strength of its Snippets feature.
Script packaging and distribution: PowerShellPlus supports .psm1 and .psd1 files, along with HTML, .bat, .txt, and others; it does not, however, support packaging a script into an executable. For this category, just two stars out of five - that packaging capability is a significant missing feature.
Integration: PowerShellPlus cannot independently execute SQL queries or WMI queries, and it does not have an integrated FTP client. It does support XML editing, which features auto-closing of tags (making it even more inexplicable why it doesn't auto-close constructs like functions in PowerShell files). It does support a command-line window integrated into the script editor, and that window has full command hinting and completion. It also has its own independent set of Snippets (which makes sense; you wouldn't usually use language constructs within the command-line, for example). I could not, however, immediately figure out how to access the command-line Snippets when the command-line was embedded into the code editor. For integration, three stars out of five - primarily for the quality of the embedded command-line window.
Remote management: As near as i can tell, there's no integration with PowerShell remoting. I'd like to see a "Run on specified computer(s)" option in the little "Run" drop-down menu, but it isn't there. Zero stars on this one.
Debugging: PowerShellPlus supports a funky kind of debugging. You have to enable debugging mode, and then you can add breakpoints to the script, either by clicking buttons in the Ribbon, or by clicking in the grey margin next to the line where you want the breakpoint. When you run the script and it does break, you can hover over things like variables to see what's inside them. Debugging mode works well, although I haven't put it through a really exhaustive test. For features, four stars out of five; I wish I could set breakpoints on variables, as you can when working from directly in the shell using the -PSBreakpoint cmdlets.
Advanced features: PowerShellPlus does not have a graphical forms builder, a file comaprison/difference tool, nor does it integrate with source control. I view that last point as a particular weakness; I think we should be encouraging ourselves to use things like source control, and not having the capability built into a tool doesn't help do that encouragement. There is, however, the ability to submit and download scripts to and from Idera's PowerShell.com Community Site. I'll award a star for that foresight, although I'd rather see integration with the independent PoshCode.org site - it's getting to be a bit much to have every vendor maintain their own "community;" I'd rather see everyone participating in fewer, independent communities. So, one star here.
PowerShell Environment: PowerShellPlus does include full support for script signing, including transparent signing every time you save a script - which I really like, as it makes it easier to use the AllSigned execution policy. I wasn't able to find a way to directly control the execution policy from within PowerShellPlus, though. PowershellPlus does load Powershell profiles, although if you need it to skip those you'll have to hold the Shift key while the product's Splash dialog box is displayed; it'd be nice if there was a more easily-accessible "Skip profile load on next start" option in the main Options dialog. Finally, PowerShellPlus doesn't seem to offer the ability to manipulate multiple sunspaces; the embedded shell is, however, the global scope for the scripts, and so you get a consistent experience. Four stars for this category.
Finally, the Overall category: The PowerShellPlus UI is functional and clean-looking. It uses a Ribbon UI (I won't debate the good/bad of that), but it also tacks a lot of toolbar icons into the window's title bar. I dislike that - it's messy, and it seems to be a "workaround" to the Ribbon - most of those icons are supposed to be available only on the "jewel" icon at top-left, a la Microsoft Office. I mean, if you're going to go with the "Microsoft Office UI," stick with it. Having half the window title bar covered with icons is distracting for me. The UI is only minimally customizable. Output appears either in the embedded or detached console window; intended and debug output is not separated into different output panes (which would be nice, and is certainly technically feasible). Documentation, however, is extensive. It integrates not only the PowerShell help, but also a wealth of material, including a complete eBook by Weltner, a Learning Center, and more. Five stars, here: UI is an intensely personal thing and this UI isn't my personal favorite, but overall I like it, it's functional, and the extensive help content is rich and appreciated.
Overall, a 55% score, which is respectable for a fairly new product. I think Idera would do well to focus, at this point, on making their feature set a bit deeper. Add support for remoting, for source control solutions, and so forth. Perhaps a bit less emphasis on capturing users into their own PowerShell.com community and more on participating with the community at large. All that said, I think most PowerShell users - whether mainly scripting or using the command-line - will like the tool. Perhaps most importantly, I think PowerShellPlus has a good ability to be a complete replacement for PowerShell.exe itself; once you get used to it - which is minimal - you get AT LEAST the functionality of Microsoft's console, plus a bit more - like code-hinting and completion.
Don't forget that I'll conclude this series of reviews with a wrap-up!
Extra: This doesn't play into the rating system I came up with, but I know a lot of you care about it, and that's the product's End User License Agreement, or EULA. As near as I can figure, Idera's license is good for one computer only. That's a lot less than their biggest competition, SAPIEN PrimalScript, which last I checked allowed a single product owner to install the product on at least three machines (and the number might actually be higher - I haven't read the EULA in a long time).
Want more PowerShell articles, along with FAQs and more? Visit http://windowsitpro.com/go/DonJonesPowerShell.