Я понимаю вашу боль там. Последний вариант, я думаю, будет более эффективным, но вы должны предоставить способ, позволяющий каждому элементу управления получать необходимую информацию. Таким образом, вы загружаете информацию один раз, затем каждый из 40 элементов управления проходит процесс извлечения только той информации, которая ему нужна.
Если это делается на стороне клиента, это не имеет большого значения, поскольку вы передаете работу клиенту, но, тем не менее, последний вариант будет более производительным ИМХО. Вопрос в том, как заставить его работать эффективно и легко обслуживать. Это всегда вызов.
НТН