Convert a ClickOnce Batch to Web Shell

The Infinity ClickOnce Batch implementation was tied to Windows UI components like the Browser.Controls.EditGrid. This reliance on Windows controls meant that the code/implementation of a specific batch type was not portable to different presentation layers, such as the new Web Shell. The Web Shell conversion of ClickOnce Batch attempts to remove the dependence on Windows-based presentation layer and instead bases its implementation on the more abstract UIModel layer code that lives and runs on the web server with no dependency on the presentation layer rendering technology.

With Web Shell Batch framework, batches are still constructed in a very similar fashion as ClickOnce batches. The primary difference with Web Shell batches is Blackbaud removed the Windows control dependencies from the batch framework. You still have a BatchTypeSpec with data forms and record operations to put the data into staging tables. You still have data form commit logic to move the data from staging tables to production tables. The major differences are in the event handlers and custom dialog screens.