The user interface that is displayed to the user while an update is being applied can be customized to match the visual appearance of your application. For customers that would like to add more in-depth visual customizations than are possible through the Project Properties options (adorn a logo image and modify the window title), the standard user interface can be completely replaced with your own customized UI by implementing the Kjs.AppLife.Update.Engine.Core.IUpdateUI interface.

(Left Image – Default User Interface, Right Image – Example Customized User Interface)
To replace the Update Engine UI, you will create a new .Net assembly (.dll or .exe), reference the AppLife Update Core assembly and include one class that implements the IUpdateUI interface. This class will be called by the Update Engine, and should display and update the user interface as the interface methods are called by the AppLife Update engine.
The assembly can then be imported into your AppLife Update project, after which all future update packages built by the project will include the new customized user interface.
IUpdateUI Operations
1. As the update engine starts, the
IUpdateUI.Open() method is called. In this method you should create
and show your customized user interface. Your user interface should remain
visible until the IUpdateUI.Finish method is called.
2. As the update progresses, the
IUpdateUI.Update() method is repeatedly called. This method has
parameters that provide information about the current state and progress of the
executing update. This information can be used to provide visual feedback
within your customized user interface.
3. When the update is finished, the
IUpdateUI.Finish() method is called. This method has parameters
that indicate the condition of the update. If an error occurs during the
update, error information is provided through the error parameter. The
customized user interface can be safely closed anytime after this method is
called, but should not be closed before this method call.
4. If the ApplyUpdateOptions.AutoClose option is
set by the host application code that initiated the update process, the
IUpdateUI.Close() method is called immediately following the
Finish method. If this method is called, it is expected that your custom
user interface be immediately closed. Note: If you utilize a
System.Windows.Forms.Form class and implement the IUpdateUI
interface, this method is already present.
5. Some update actions request a Yes/No response from
the user. To support this, your customized user interface must implement
the IUpdateUI.ShowYesNoPrompt() method.
6. As your customized user interface is closed, the
update engine is notified by your class raising the IUpdateUI.Closed
event. Note: If you utilize a System.Windows.Forms.Form class
and implement the IUpdateUI interface, this event is already present and
is raised when the form is closed.
7. Your custom user interface can optionally support canceling an update, as well as pause and resume features by raising the IUpdateUI.RequestCancel, IUpdateUI.RequestPause, or IUpdateUI.RequestResume events.
A sample implementation of a custom update engine user interface is available within the Custom Forms Quick Start example.
For more information on the Kjs.AppLife.Update.Engine.Core.IUpdateUI interface, reference the