This is where I answer questions that have cropped up about the address book.
The plan is to use almost 100% HTML. There will have to be a little bit of XUL in order to get the contacts tabs to play nicely with Thunderbird's tab strip, but the tab will then load HTML.
Communication between the chrome UI layer and the underlying HTML will likely be via message passing a la postMessage.
XUL is nice for add-ons, but it has some very serious drawbacks:
XUL is simply not as well known as HTML. Check out how many StackOverflow articles have been tagged with XUL. Compare that to how many StackOverflow articles have been tagged with HTML. Remember that I'm really going to need help on this, which means that I want to make it easy for new contributors to hack on it. Favoring HTML over XUL greatly lowers the barrier to entry, and also allows web developers to use familiar libraries like jQuery.
Also, unless I'm greatly mistaken, XUL takes a completely different code path than HTML. Gecko's HTML parser is heavily, heavily optimized. XUL's is not. This means faster performance, and better responsiveness.
I agree that XUL is excellent for add-ons because of overlays. My goal with Ensemble is to include enough hooks for developers to inject the elements they need within the HTML (once those needs are discovered).
We will, of course, list the tags per contact.
The UI for adding tags to a contact needs solidifying, but if you've ever used Google Contacts for contact group management, that's more or less the way I'm thinking.
Creating the infrastructure to communicate with external contact providers is a P1 goal for this project.
I also plan on making sure Ensemble ships with some number of default "connectors" for some popular provider types. Add-ons should be able to register more contact provider types.
This is what the tags are for. You tag the contacts into those partitions, and then you can view the contacts for each particular tag.
I'm targetting to export to at least vCard 4.0 and CSV. LDIF as well, if possible.
I plan on putting name, and possibly org / company information to the right of the contact picture.
Last edited by mikeconley,