Endpoint Discovery using Microsoft LogParser

A few years ago, I was working on a project for a UK client who needed to replace or rewrite a legacy inventory management  web application written in classic ASP. The problem: no documentation, and complicated, spaghetti source code with many apparently duplicate or redundant ASP files and ASMX web service endpoints.

Finger pointing by bhollar (Flickr)

Which ASP pages were actually in use? We had to find a way to limit our application migration efforts to  only those pages which were used by the application. A colleague at the time introduced me to what must be one of the best-kept secrets in the Windows developer world: Microsoft Log Parser.

Continue reading Endpoint Discovery using Microsoft LogParser

Test automation tools for WinForms desktop applications

For a client in the financial services sector, I recently had to identify some candidate products for use in automating the testing their WinForms and VC++/MFC Windows desktop applications. The applications are used for trading financial instruments, so correct operation is absolutely essential.

UPDATE: this 2019 post from Joe Colantonio has a newer list of testing tools for Windows Desktop apps. WinAppDriver, Winium, and White Framework seem to be the best options.

Drop Test by Christoph Bauer - http://www.flickr.com/photos/h34dy/
After a bit of investigation and digging round in the more murky reaches of my memory, I came up with the following list of  test automation tools for Windows desktop  applications:

Continue reading Test automation tools for WinForms desktop applications

You are invited to ScaleCamp 2010

Very pleased to receive this email today:

From: Michael Brunton-Spall
Sent: 19 November 2010 16:07
To: Matthew Skelton
Subject: You are invited to ScaleCamp 2010 – 10th December at the Guardian offices, London

Hey,

We are so pleased to be able to invite you to Scale Camp 2010 on the 10th December at the Guardian Offices here in London.

I’m looking forward to some great conversations and debate, particularly around DevOps and how that can contribute to scaling a software platform.

WMIC – command-line control of WMI functions

Before Windows PowerShell and all the flexibility (and complexity) that brings, there was WMIC, the command-line client for WMI.

WMIC works out of the box with Windows XP and later (including Server 2003 and Vista), and allows access to operations provided via WMI: “a powerful, user-friendly interface to the WMI namespace”. Upon first use, the WMIC environment is installed:

C:\> WMIC

Please wait while WMIC is being installed...

Several tasks which normally feel very GUI-oriented, such as checking the battery status, are made very “command-line” with WMIC:

C:\> WMIC Path Win32_Battery Get BatteryStatus /Format:List

BatteryStatus=1

In this case, the batter is discharging. You can see the beginnings of PowerShell in the syntax and detailed status/operations available. Another useful command is useraccount, to return details of the user accounts on the system:

C:\> WMIC useraccount list brief
AccountType  Caption                  Domain     FullName       Name   SID
512          SKELTON-M\Administrator  SKELTON-M  Administrator         S-1-5-21-68**03330-*********-839**2115-500
512          SKELTON-M\Guest          SKELTON-M  Guest                 S-1-5-21-68**03330-*********-839**2115-501
...

Or how about terminating a specific process (notepad.exe) from the command-line? Here we go:

C:\> WMIC process where name='notepad.exe' call terminate

Executing (\\SKELTON-M\ROOT\CIMV2:Win32_Process.Handle="4652")->terminate()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
};

It’s helpful to install the WMI Administative Tools, so you can explore the WMI namespace and investgate the operations available to you via WMIC. For example, to determine the name of the time zone currently used by the system, use the TimeZone path:

C:\> WMIC Path Win32_TimeZone Get StandardName /Format:List

StandardName=GMT Standard Time

The time zone for my computer currently is “GMT Standard Time”.

For simple operations which do not merit PowerShell scripts or installation, WMIC is a good choice.