link to Part 1, Part 2, Part 3
Finally the application
Now the WCF classes are in place to communicate with the databases and we have the processing classes to process the Quark content to HTML it is time to produce a windows application form to drive it all.
The UI is in its version one state, simple, information blurred to protect the innocent. The next task is to spruce it up from this development version to a more polished release quality. That said functionally it works fine.
The left hand side has a combo box to select the publication, then a filter drop down to select published, changed, not published status from the list of cms item groups shown in the list box below.
Each item in the list box has a check box, that may become a combo box in the next release to show status of that item group. In the case shown above, they have all been published.
The main window shows the HTML actually live on the website under the live web view tab. This tab also shows the result of the MD5 as to if the originating item group has changed since it was published.
CSS tab contains the CSS that is used for the Browser View tab. This browser view is simply a browser control showing the item group with the CSS applied as a preview of the group.
Output HTML tab is a view of the HTML source as converted from the item group. this also has a band that pops up showing any validation errors once validated against the DTD.
The Quark Source tab shows the source quark express document before any work was done on it, useful in seeing errors in the source document.
The list box containing the item groups on the left is populated dynamically and on a separate thread to the UI to keep things moving. The box uses generic collections and gave me a chance to get some more experience with LINQ to Objects.
Use in practice
A CMS publication is created to hold all the items that should be on the website. This publication is selected using the combo box. Each item group in turn is double clicked on and thus loads into the browser preview.
The HTML validation fires validating the HTML. A visual check is made and the publish to web button pressed. There is also a revoke function available to take an item off the web again should that text be found to be incorrect or causing issues.
Then the next item group is loaded in and published until all are checked in the list box.
This has allowed thousands of products to be published to the website that obviously gives some Google fodder to both internal and external search engines. The ability to identify changed groups is crucial. The system is not designed to replicate or replace any of the functionality of our catalogue management system, merely to provide a sophisticated way of exporting data out of it. The CMS system does a good job at what it is designed to do but we wanted to get even more out of it!
End of series. Please feel free to comment if you have any questions.