Библиотека Windows 7 Libraries .NET Sample Library (ч.1)
Библиотеки являются отправной точкой для поиска пользовательской информации в Windows 7. Они представляют собой логическое развитие пользовательских папок (Мои документы, Мои рисунки и Моя музыка). Но перед тем, как перейти к обсуждению технической составляющей, я попытаюсь, объяснить, что такое библиотека Windows 7.
Под библиотекой в Windows 7 мы понимаем определенный пользователем набор папок определенного содержания, представляющий пользовательские данные вне зависимости от структуры папок. Пользователи могут унифицировать и нивелировать иерархическую структуру папок путем объединения папок из физически существующих расположений (локального или удаленного компьютера) в одну виртуальную - библиотеку. Включая папки в состав библиотеки, пользователи указывают Windows, где размещена важная для них информация. В Windows 7 большинство приложений замещает ранее используемые папки пользователя библиотеками. Важно отметить, что библиотеки являются частью оболочки Windows, поэтому сложно оценить их роль в удобстве пользования Windows Explorer в Windows 7. Соответствии, различные элементы библиотек то тут, то там проскакивают в оболочке Windows: в общем файловом диалоге и органах управления Windows Explorer Browser (не путать с Internet Explorer!).
Это первая статья в цикле публикаций о библиотеках. В ней будет представлен обзор возможностей библиотек, а также библиотек Sample .NET Interop Library, представляющих собой примеры управляемого кода и входящих в состав Windows 7 .NET Interop Sample Libraries. В последующих статьях мы углубимся в реализацию библиотек, а также поговорим о том, как использовать программную модель библиотек и связанные API.
Если вы ни разу не видели в действии обновленную оболочку Windows 7 и библиотеки, настоятельно рекомендую посмотреть на Channel 9 вебкаст под названием Windows 7: поиск и организация (ч.1). Это позволит вам понять некоторые технические аспекты, затрагиваемые в этой статье).
Давайте приступим к обзору архитектуры Windows 7 Libraries .NET Interop Sample Library и выделим важные классы. Помните, что примеры кода библиотек являются частью сборки панели задач и библиотек. Поскольку панель задач и библиотеки разделяют различные общие точки интеграции в оболочку Windows, имеет смысл сгруппировать их и использовать аналогичные структуры и методы оболочки.
Решение привело нас к следующей структуре:
- В папке Demos находятся проекты нескольких приложений, демонстрирующих различные аспекты панели задач и библиотек, но мы сконцентрируемся на библиотеках.
- В папке Wrappers размещена сборка Windows7.DesktopIntegration, которая является основным управляющим API для панели задач и библиотек.
- Обновленная версия Vista Bridge Sample Library - все наши примеры основаны на версии 1.4. И как сказано выше, проект Windows Vista Bridge будет замещен новым Windows API Code Pack для библиотек .NET.
Теперь давайте взглянем на основные классы, позволяющие разработчикам реализовать потенциал библиотек. Файл ShellLibrary.cs содержит класс ShellLibrary, являющийся отправной точкой для разработчиков управляемого кода. Используя ShellLibrary, разработчики могут программно осуществлять все операции с библиотеками, включая:
- создание новой библиотеки
- загрузку существующей библиотеки
- удаление библиотеки
- добавление / удаление папок из библиотеки
- установка для библиотеки места для сохранения по умолчанию
- установка типа папки
- отображение диалогового окна управления библиотекой
- установка иконки для библиотеки
- добавление / удаление библиотеки из навигационной панели в Windows Explorer
Примеры в папке Libraries призваны продемонстрировать вышеназванные возможности библиотек. Давайте рассмотрим их более подробно:
- LibraryManagerDemo - это WPF-приложение, демонстрирующее все возможности библиотек. Это очень простое приложение, предлагающее разработчикам отличную возможность ознакомиться с возможностями библиотек в Windows 7.
- SLUtil (не Silverlight) представляет собой командный интерфейс, позволяющий пользователям и разработчикам управлять своими библиотеками. И снова вы сможете оценить все возможности библиотек без исключения
Вот еще несколько дополнительных ресурсов по программированию библиотек для Windows 7:
- Документация и примеры кода со странички Библиотеки Windows 7 Libraries: ресурсы для разработчиков на MSDN.
Также настоятельно рекомедую посмотреть следующие видео на Channel 9:
- Windows 7: поиск и организация (ч.1)
- Windows 7: поиск, визуализация и организация информации пользователей с помощью библиотек и Windows Explorer
Источник:
Перевод: deeper2k
Комментарии
Библиотеки - это конечно чуть более продвинутая вещь, чем папки а-ля "мои документы", но по сути, их возможности недостаточны. Хотя бы потому, что не содержат возможности автоматического построения нужной конкретному пользователю структуры и не различают добавляемые файлы-папки по назначению, по метаданным. А ведь видео могут быть совершенно разные - это могут быть клипы, фильмы, презентации и т.д. Библиотека их никак не различает и добавлять файлы умеет только в свой корень. Выход - либо создание кучи библиотек, либо создание внутри библиотеки нужной структуры папок руками. И тот и другой вариант - практически бесполезны. Да, можно включать туда какие угодно папки, где бы они не находились в пределах компьютера. Однако, подход майкрософт к организации файлов по принципу "не важно, где это, лишь бы нашлось поиском" приведет скорее к беспорядку на жестком диске и его захламлению ненужными файлами, которые уже никто не ищет. Другое дело, если бы добавление какой-то папки или файла в библиотеку могло бы сопровождаться выбором подпапки библиотеки, назначением каки-либо метаданных, иначе в руках рядового пользователя библиотека моментально превратится в помойку, а опытные пользователи скорее будут по старинке отстраивать свои "библиотеки" вручную.
Согласен с Chineeze_cheeze.
Уж несколько месяцев пользуюсь семеркой, практической пользы от этих библиотек так и не нашел. В видео и рисунках все уже и так каталогизировано, необходимость в Библиотеке отпадает.
Создавать библиотеки для других документов не имеет смысла! Т.к. все нужные файлы уже разбиты по папкам (и подпапкам) - проще вытащить ярлыки в панель Ссылок.
По теме
- Федеративный поиск в Windows 7
- Программируем панель задач Windows 7: панель миниатюр
- Использование сенсоров в приложении: реализация в managed-коде (ч.1)
- Использование сенсоров в приложении: реализация в native-коде (ч.1)
- Я тебя чувствую: использование платформы Sensor в Windows 7
- Доступны записи с Windows 7 PDC Boot Camp
- Fishbowl для Facebook с использованием новой панели задач Windows 7
- Программируем для Windows 7 в Visual Studio 2010
- Новая версия Windows API Code Pack
- Программирование служб Windows 7 с триггерами (ч.2)