Additional category: InfoPath
Summary: An InfoPath 2007 form deployed to a MOSS server provides a drop-down list of vendors tied to a custom MOSS list. Upon selecting a vendor, rules assign field values to a handful of text fields such as sales rep name, address, city, state, zip and phone. Performance is horrible. We notice that performance gets worse (in a non-linear fashion) for each additional field we update this way. I.e., if we just update the sales rep name, it takes [x] amount of time. If we update sales rep, address1, address2, city, state, zip, it takes 10 times longer.
Solution: Write a web service (sample code can be found here) that is passed in the name of a vendor and it returns back the vendor details. Then, assign the fields this way. Although this too seems slow, there was no discernable difference in performance when we assigned 1 field versus 8 fields. As an added bonus, users get a cool "contacting the server" Cylon effect while they wait for the form to invoke and consume the service results.
I remember the first Moss project I was involve in. We had the same problems with Infopath, the load time was getting too long. At the end we reimplement most of the Infopath forms to User Controls inside a Smart Part.