ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

Sunday, January 1, 2017

IsWiX 4.0.17001.1

Happy New Year!
 
I've published a new version of IsWiX with a pretty important (to me and a few of my customers) bug fix.  I actually did the work yesterday and couldn't decide if I wanted it to be the only release of 2016 or the first release of 2017.  Silly, I know...  that and the evenings festivities were calling.
 
Anyways let's talk about the fix.  The files and folder designer code is a bit scary.  I didn't write it and I appreciate the efforts of the person that did.  That said,  it had a pretty bad performance issue.  Most people only put a handful of directories and files in any given merge module so most people would have never seen it.    However if you are working on website and find yourself dealing with 1000 directories and 10,000 files in a single merge module it suddenly becomes quiet unusable.
 
But first a back story....
 
Many people probably don't know that IsWiX had a design goal of creating sorted documents with deterministically unique (predictable)  Id attributes and GUIDs.   The reason for this was the company I worked at did *A LOT* of branching and merging and we wanted to make it as easy as possible to branch and merge IsWiX generated .WXS files.  
 
So every time Files and Folders updates it's model it resorts the XML.  This usually isn't a problem. However on really large documents it can take 5-10 seconds depending on machine performance.  When doing a drag and drop the process would go something like this.    Write the XML for a directory, sort,  process subfolders recursively.   So if you dragged a folder with say a 1000 subfolders you would see it get visibly slower and slower until it bogged down so bad you walked away hoping it would finish or just terminated the process.
 
I've done a simple fix remove the sort step and do a final sort at the end.  Now you see it update all the directories in the UI very quickly,  a 5-10 second wait as it does the sort and done.   If your documents aren't that large  you probably won't notice a difference at all.
 
You can get the new release here.
 
PS- It seems certain browsers have been complaining about anything downloaded from CodePlex. That really sucks.  IsWiX (and the WiX Toolset) is as safe as always.  If you have problems downloading just use a different browser.  If you still get issues be sure to "unblock" the file before installing.