В Dev10 мы инвестировали в улучшение времени загрузки решения, глядя на то, чтобы асинхронной нагрузки. К сожалению, из-за ограничений по времени эта работа не превратилась в Dev10, поэтому вместо этого мы решили хотя бы немного улучшить пользовательский интерфейс, дав пользователю обратную связь о том, что происходит во время загрузки решения. Первоначально это включало диалог, в котором была представлена точная обратная связь о том, сколько проектов загружалось вместе с именем текущего загружаемого проекта. Раннее тестирование этого опыта показало, что при загрузке проектов часто возникала нетривиальная задержка (т. Е. Спиннинг-пончик и «не отвечающий» заголовок окна), и существование диалога заставляло эту задержку проявляться очень заметно после отклонения диалога. Итак, какова задержка? Есть две основные вещи, которые происходят после того, как проекты проекта были загружены. Сначала все ранее загруженные документы/редакторы снова открываются, а для некоторых файлов дизайнеров это может занять несколько секунд. Во-вторых, и обычно гораздо хуже, мы вызываем NotifyOnAfterSolutionOpen
, который является точкой расширения в VS. Любой абонент этого события получает возможность запускать свой код в этот момент, и довольно часто этот код очень дорог. Для Dev10 у нас не было времени, чтобы улучшить качество всех этих подписчиков, и поэтому было сочтено, что требуется второе диалоговое окно, чтобы было ясно, что загрузка решения все еще продолжается. Что действительно отвлекает второй диалог, так это то, что он не говорит вам, какая часть кода вызывает задержку, а худший контроль прогресса - это стиль выделения, что означает, что он не является определяющим (в отличие от первого диалога).
Двигаясь вперед, мы продолжаем исследовать способы, позволяющие загружать решения по-настоящему асинхронными и, как таковые, никогда не показывать такие неприятные диалоги. В защите диалога наши исследования показывают, что большинство людей предпочитают диалог модального статуса над вращающимся пончиком или невосприимчивым пользовательским интерфейсом. Конечно, все предпочитают никакой задержки, и мы работаем над этим для Dev11.
Я знаю, что это всего лишь пустая трата комментария, но LMFAO. –
@ Erick_Robertson Хороший комментарий, хотя :) – Lazarus
Я предполагаю, что он делает примерно столько же работы VS2008 при открытии проекта, но теперь на нем есть индикатор выполнения, чтобы вы могли сказать, когда это будет сделано. Но я не сравнивал скорости. –