Many claim that it’s not so easy to decide which pattern cmdlet to use with a particular control. For long time we were tied to what Microsoft’s UI Automation outputs to us. However, there is a way to increase productivity: extension methods. Yes, they are not visible in PowerShell by default, nonetheless I’d like to offer an object model that grew from nothing else but extension methods.
To start, let’s page through the presentation, with binaries of 0.8.7 alpha 3 or higher in your hands. Enjoy!
I have found, absolutely occasionally, a set of slides about UIAutomation.
A great presentation, the author highlighted popular and useful features, pros and contras are described well.
Need to put here several notes:
page 9: Timeout = 60. The Timeout is in milliseconds (i.e., 60000) as Microsoft requires in Cmdlet Design Guidelines. They not always follow their rules (for example. the sleep cmdlet uses seconds), so that I created the -Seconds parameter for usability.
page 12: Lack of documentation – yes, it is. Here I need to admit the fact, the constant wish to describe the framework AFTER all features are done. Well, I need to continue documenting.
Last update and still Beta. I disagree on it. There are always workable binaries of a next version and all the binaries go the same testing and release process (and not only pre-versions are usually uploaded with the same quality as the ‘title’ version, but they as a rule contain fixes and improvements over ‘title’/’recommended’ binaries). To me, the version is a set of fixes and new features. If there are only fixes, such binaries simply could not be a new version, if there’s nothing new to offer.
Regarding the phrase ‘still Beta’, in my opinion, ‘release’ is a set of cmdlets and IDE, and improved spy, and several other things. I merely could not call cmdlets ‘release’ as they require knowledge of PowerShell to enter. An average software tester in not a PowerSheller, so that to be called ‘release’ the product should be simpler and more beautiful.
I hope that my position here is clear, and cmdlets are practically ‘release’. However, the full set of software (cmdlets, UIARunner, UIAutomationSpy, missing IDE, embedded test management ,etc ,etc) is not release yet.
I’d like to discuss the page 13 (hey, author), especially the third and the fourth items – I believe that RD (Remote Desktop?) is not a problem, just a place to implement some settings. I use Remote desktop via RemoteApp widely and have no issues here.
The second item is not my fault as I suspect (the framework follows MS UI Automation here), the third item I don’t understand. The first item may need explanation: if the author (as seen on the pictures) tested a wizard, especially a setup wizard, there could be a problem with wizard pages. Wizard switches pages and the handle of window changes. The scripter should get window every step, and this is implemented in wizard cmdlets (in later betas of 0.8.6).
To conclude, Juraj created an excellent presentation, for community and for me to understand better what the frameworks consumers think.