Version 1.0.6.0
This version contains a number of significant enhancements.
Multi-Threading
Historically the Assistant has always run tasks synchronously, which means that the GUI is blocked until the task completes. When all the tasks were Nant tasks this was not too much of an issue because there was not much else to do while the task ran. However with the addition of Bazaar tasks in version 1.0.5 it became more noticeable that the GUI was blocked when there was nothing to stop a Bazaar task and a Nant task running side by side.
In version 1.0.6 we have introduced a significant degree of parallel processing for Nant and Bazaar tasks. There are still some Nant tasks that block because they are more complex or just because it doesn't make a great deal of sense for parallelism to be allowed. Furthermore it is still the case that you cannot run two blocking Nant or Bazaar tasks at the same time. So, to be clear, if you are doing a quick clean (using Nant) you cannot at the same time generate the solution. But you can check the version history of the branch while the clean is in progress.
When you are running a Nant task the GUI automatically disables the 'Go' buttons for other Nant tasks. Similarly, when you run a blocking Bazaar task the 'Go' button for source code is disabled. However Bazaar tasks are slightly different in that not all Bazaar tasks block. For example the 'history' and 'changes' windows do not block. You can open them even when a blocking Bazaar task is running (by changing the selected item in the source code Combo Box).
These Bazaar tasks are non-blocking: history log, differences, browse, conflicts, bugurl and Windows Explorer window.
When you run a sequence of tasks the whole sequence blocks.
The Assistant now has a status bar at the bottom which gives a visual cue as to what asynchronous tasks are happening. If an error occurs during a Nant task the Output window is no longer automatically selected (because you might be in the middle of something on another tab). Instead the status bar turns yellow and a message is displayed. You clear the message by selecting the Output tab manually.
Please note that no attempt has been made to take care of subtleties in which Nant and Bazaar tasks can run in parallel. There is nothing to stop you from having the code un-crustified and at the same time reviewing the source code differences. However it is probably not wise to do so since the two tasks may both be trying to access the same file at the same time. It is up to developers to be wise about how they take advantage of the new multi-threading opportunities.
Additional Actions on a New or Existing Branch
This version has a new modal dialog window: 'Further Actions for a New/Existing Branch'. This screen is activated in one of two ways. First, if you
- Create a new branch (from the Source Code action) and
- the branch is created successfully and
- you agree to make this the current branch or
Second if you
- choose Change Branch Location and successfully set the new location
The dialog does NOT show if you simply pick a different branch from the drop down list of previous branches.
The dialog offers you the option to do none, some or all of the following:
- generate the solution - either with full or minimal compile
- create .my copies of the template configurations for client and server
- set up a database for the branch and initialise the configuration files
- launch your preferred IDE with one of the five available solutions
- start the server and client
The Assistant 'remembers' the selections that you make so that the same settings can be displayed the next time you use the dialog. In fact it remembers two sets of settings - one set for an existing branch and another set for a new branch. (The Assistant automatically detects whether a branch is new or existing).
Tip: If you choose 'No' to making a new branch the default location you can get back to using the dialog by clicking the Change branch location link.
So now you can go through the whole process of creating a branch right through to starting the client or loading the solution while you go and make a cup of coffee! Your selected tasks run synchronously so block the application but this was by design.
More Minor Improvements
Database Tab
When you first load the Assistant the 'current database configuration' is now the selected item in the list of favourites.
There are Promote and Demote buttons so that you can make your most favourite database configurations be at the top of the list. When you add a new favourite it becomes the top one in the list rather than being displayed last.
Screen Position
The Assistant now remembers the previous screen position.