embel overview
"embel" is short for "embellishing the PhoneBook web application". embel puts the PhoneBook tutorial's embellishments back into the application after uigen.exe has created a new application from the domain.
Why would anyone do such a crazy thing? Answer: Modifications to uigen.exe templates are tested in the PhoneBook, and this includes modifications to re-motion default styles. (For more on this type of work, see The PhoneBook innovation cycles.)
Some of the embellishments require not more than copying extra files, at least at this time. These files are copied as is, because they implement "brand-new" extensions to the uigen.exe-generated PhoneBook. Examples:
- the
Classes
filesPhoneNumberCell.cs
,PickLocation.aspx*
, etc. - extra images (icons, logo)
Other cases are not so easy to understand. Remember what happens in the life of SearchResultPhoneNumberControl.ascx
, for example.
uigen.exe
creates theSearchResultPhoneNumberControl.cs
file from theSearchResultControl.cs
template and thePhoneNumber
class- The resulting
SearchResultPhoneNumberControl.cs
file is embellished by us to get rid of thoseDisplayName
(i.e.<BocAllPropertiesPlaceHolderColumnDefinition />
is replaced by (<BocSimpleColumnDefinition />
s for each property)
Here is an illustration of this embellishment process:
Now let's say we modify the SearchResultControl.ascx
template file so that it contains a blue dot in its top-left corner. All
SearchResultXControl.ascx
files will sport this blue dot after step 1, and this includes our SearchResultPhoneNumberControl.ascx
:
After modifying one or more templates and testing it by running uigen.exe
we face a problem: now we have to re-embellish the entire PhoneBook web application. In our example case, we have TWO phone-book applications: an old embellished one (without the blue dot) and a new unembellished one with no blue dot:
However, what we want is merging the two, of course:
Doing this manually is BORING, but how can we automate it? Stefan had the idea of using SVN's merge mechanism, but this was not quite convincing for reasons that will become clear later in this document.
As for the automation, the simple copying ({files in Classes
, icons) is done by the batch script embel.cmd
.
The more tricky merging of files freshly generated from new templates with old embellished files is done by a python script named embel.py
. embel.py
transplants embellishments to unembellished PhoneBook files. Based on the example above, one could draw the illustration like this: