Windows 7 для разработчика: технологические нововведения в новой ОСи

Windows 7 - пожалуй, первая операционная система от Microsoft, в которой программиста ждет столько интересных технологий. Несмотря на то, что операционная система еще не поступила в продажу, уже есть реальная возможность познакомиться со всеми ее новинками и даже опробовать многие из них на практике.

Взаимодействие с железом

Windows Touch – нежные прикосновения руками

Ты, наверное, уже в курсе, что в новой Винде кардинальным образом изменился графический интерфейс. Как утверждает MS, он стал еще проще, пушистее и обзавелся поддержкой мультисенсорного ввода. Технология MultiTouch (правильнее сказать: Windows Touch) реализована практически в полном объеме. Если ты прешься от интерфейса iPhone, то приготовься, – то же самое можно будет делать и в Windows 7 (само собой, если ты раскошелишься на соответствующий моник).

Для реализации всех фишек технологии Windows Touch, разработчики приготовили большой набор API-функций, поэтому встроить в свою программу поддержку интерфейса "MultiTouch" будет достаточно легко. Для этого в API имеются функции, позволяющие научить приложение распознавать стандартные жесты (эталонные для других приложений). В большинстве приложений особые "выкрутасы" не нужны, поэтому этих функций хватит за глаза. А если тебе окажется их мало (само собой, ведь наши планы не имеют границ), то к твоим услугам пакет низкоуровневых API-интерфейсов, с помощью которого легко можно будет решить нестандартную задачу (например, придумать свой жест и забиндить на него реакцию системы).

Платформа девайсов (Windows Device Platform)

Еще одна интересная технология, играющая немаловажную роль в "семерке". Трудно представить современный комп без дополнительных девайсов и всевозможных гаджетов. Принтер, сканер, mp3-плеер, труба – устройства, которые имеются у большинства юзеров. Использовать девайсы по назначению – дело нехитрое, а вот разработка приложений для взаимодействия с этими устройствами напоминает песню группы Sepultura. Проблема не нова, но в Windows 7 ее попытались решить с помощью создания целой платформы Windows Device Platform. Суть этого "ноу-хау" заключается в создании набора API для взаимодействия с различными устройствами. Не стоит обольщаться и думать, что после перехода на Windows 7 ты сразу сможешь написать мега-синхронизатор для своего мобильника. Вовсе нет. Чтобы воспользоваться всеми прелестями новинки, нужно подождать, пока производители устройств реализуют ее поддержку.

Windows Biometric Framework

В Windows 7 появилась служба для взаимодействия с биометрическими устройствами – Windows Biometrics FrameWork. Теперь нет необходимости использовать специальное программное обеспечение, поставляемое производителями биометрических устройств. Все операции по взаимодействию возьмет на себя служба Windows Biometric Service. В составе операционной системы присутствует специальное приложение, позволяющее управлять процессом считывания отпечатков пальцев и устанавливать соответствующие политики безопасности. Так, для каждого пользователя можно закрепить "определенный палец". Успешное считывания отпечатка будет предоставлять пользователю вход в Windows или домен.

Все возможности платформы доступны разработчикам в виде набора API-функций. Для многих это будет приятным сюрпризом, так как создавать приложения для взаимодействия с устройствами станет намного проще и, самое главное, есть все шансы добиться универсальности. Поскольку работа с устройством происходит через посредника (Windows Biometric Service), у программиста отпадет необходимость заботиться о поддержке устройств определенных производителей. Главное, чтобы Windows могла работать с ними.

Стоит заметить, что работа с устройством не напрямую, а через службу обеспечивает, как минимум, еще один плюс - это безопасность. Клиентское приложение не имеет прямого доступа к устройству, а раз так, то и вероятность изменить конфиденциальные данные существенно снижается.

Но пока в этой бочке меда чувствуется небольшая ложечка дегтя, а именно - поддержка ограниченного круга устройств. На сегодняшний день осуществлена поддержка девайсов для считывания отпечатков пальцев.

Windows Sensor and Location Platform

Windows Sensor and Location Platform - платформа, созданная для обеспечения взаимодействия ОС с различными датчиками устройств (опять вспоминаем iPhone). Основное ее назначение - дать возможность разработчикам создавать "умные" приложения, способные приспосабливаться к условиям среды, в которой работает пользователь, или даже к его географическому местоположению.

Если на разработку игр тебе, мягко говоря, пофиг, то в тулзах новые технологии будут тоже востребованы. Например, ты можешь заюзать их при создании "умного" пользовательского интерфейса. "Снимай" показания датчика освещения и, в зависимости от их значений, предоставляй юзеру определенный вид интерфейса. Когда пользователь работает при солнечном свете, то разумнее всего сделать интерфейс приложения более контрастным и с увеличенными шрифтами (на глянцевом дисплее при солнечном свете контрастный шрифт будет смотреться лучше), или наоборот, если вокруг темень, – применить к интерфейсу насыщенные цвета.

Location Platform - платформа, позволяющая работать с устройствами определения географического местонахождения объекта. Типичный пример - GPS.

Все возможности этих платформ доступны в виде огромного числа API-функций (С++/управляемый код). В SDK производители устройств найдут спецификацию разработки драйверов устройств, а разработчики прикладных решений – интересные примеры использования технологий. Для тех, у кого нет никаких датчиков (я почему-то уверен, что ты тоже из их числа), в SDK припасены соответствующие эмуляторы.

Новые интерфейсные возможности

Гаджеты

Многим юзерам Windows Vista полюбились за так называемые гаджеты – мини-приложения, располагающиеся на SideBar и показывающие различную, как полезную, так и бесполезную информацию. В Windows 7 от боковой панели решили полностью отказаться, а гаджеты разместить прямо на рабочем столе. Это прикольнее, чем наличие лишней панели, отъедающей немало системных ресурсов и драгоценного пространства. Сама технология разработки гаджетов осталась прежней, за исключением двух маленьких нововведений - теперь их можно устанавливать программно и настраивать показ ошибок, возникающих при работе.

Проапгрейженный TaskBar

Самая заметная новинка Windows 7 с позиций пользователя - обновленная панель задач. Причем, не просто обновленная, а полностью переделанная: и в визуальном плане, и с точки зрения функциональности. Реально, новый TaskBar - не просто симпатичная панелька с большими кнопками, а целый инструмент для организации быстрого доступа к часто запускаемым приложениям. В связи с этим, одной из первоочередных задач, стоящих перед грамотным разработчиком, будет реализовать в своем приложении полную поддержку взаимодействия с TaskBar. Под взаимодействием я подразумеваю реализацию функций, необходимых для использования новых возможностей панели задач. Например, JumpList (как самая из востребованных функций обновленного TaskBar). JL, по своей сути, аналогичен меню "Пуск", но только для конкретного приложения. В этом контекстном меню должны быть ссылки на основные действия программы и перечисления последних открытых (если приложения работает именно с содержимым файловой системы!) файлов и папок. Другим примером возможностей панели задач может быть IconOverlay ("Перекрывания иконок"), позволяющий использовать несколько иконок для отображения текущего статуса приложения.

Для организации в своем приложении всех этих функций в Windows 7 предусмотрены соответствующие API функции и интерфейсы. Описание большинства уже доступно для чтения в MSDN, а примеры кода приведены в SDK beta и в библиотеке Window API CodePack.

Windows Scenic Ribbon

Интерфейс Ribbon, впервые представленный в MS Office 2007, многими был оценен по достоинству. Начиная с Windows 7, Ribbon перерос в Scenic Ribbon и стал неотъемлемой частью операционной системы. Это означает, что теперь можно создавать приложения с современным интерфейсом как на управляемом коде, так и используя привычный Win32 API. В общем, есть, где душе кодерской разгуляться.

Системные новинки

Разработчикам драйверов посвящается

Знакомый всем системным программистам набор Windows Driver Kit также подвергся заметному улучшению. В третью версию вошла обновленная документация и многочисленные примеры, признанные облегчить жизнь кодеру. Среди примеров присутствуют исходники драйверов, демонстрирующие использование новых технологий (например, Sensor Location). Разобравшись со всем этим добром, ты без проблем напишешь свой ][-драйвер.

Кстати, чуть не забыл рассказать о самом важном! В WDK 3.0 реализована поддержка анализа статического кода с использованием PRefast. В состав PRefast входит компонент PREfast for Driver для обнаружения ошибок в коде драйверов режима ядра.

PowerShell 2.0

Технология PowerShell постепенно завоевывает сердца админов, привыкших расходовать время с пользой. Действительно, зачем постоянно тратить время на выполнение одной и той же операции, если ее можно автоматизировать? На PS это сделать легко. К счастью, программирование на PowerShell не сравнить с аналогичной разработкой под bash, а значит, освоить данную вещь сможет даже начинающий программист.

В Microsoft понимают перспективу технологии, поэтому в Windows 7 представлена новая версия этого мощного средства, с обновленными возможностями:

  1. PowerShell обзавелся графической средой разработки. Программировать сценарии стало еще проще и понятней. Среда обладает всеми необходимыми средствами для комфортной разработки (Отладчик, подсветка синтаксиса и т.д.), что делает процесс разработки схожим с созданием приложения в таких средах как Visual Studio.
  2. Количество доступных командлетов существенно возросло. Добавились командлеты для получения информации и управления такими службами как: IIS, ActiveDirectory и т.д.
  3. Поддержка удаленной работы дарит возможность одновременно выполнять команды на удаленных компьютерах с одного, на котором работает служба.
  4. Транзакции. Начиная с версии 2.0, ядро и интерфейсы технологии обзавелись поддержкой транзакций.
  5. Разбивка сценария. В новой версии стало возможно разбивать разрабатываемые сценарии на отдельные составляющие - модули. Таким образом, появляется возможность многократного использования кода.

Trigger Start Service

Службы Windows издавна считались одним из самых узких мест в системе. Для большинства системных сервисов по умолчанию установлен режим автозапуска при загрузке ОС. Служб немало, и из-за их совместного старта требуется дополнительное время на загрузку ОС. Для решения проблемы всегда приходилось выставлять ненужным сервисам режим запуска "вручную". В Windows 7 рутинные действия не требуются: кодерам стала доступна возможность создавать Trigger-сервисы. Их запуск зависит от определенных событий. Например, если ты кодишь сервис для взаимодействия с мобильным телефоном, то нет смысла держать сервис в работающем состоянии, пока устройство не будет подключено.

В помощь разработчику

Windows API CodePack for Microsoft .NET Framework

Vista-девелоперы хорошо знакомы с библиотекой Vista Bridge, в которой реализованы все необходимые интерфейсы для доступа ко всем новым технологиям системы. К моменту финального релиза Windows 7 выйдет аналогичная библиотека с новым именем - Windows API CodePack for Windows .NET Framework. Эту библиотеку будут составлять несколько либ, обеспечивающих простой доступ к таким функциям системы, как:

  • Библиотеки;
  • Windows Sensor Platform;
  • TaskBar;
  • TaksDialogs;
  • Windows Location Platform.

На момент написания статьи библиотека находится в стадии альфа-версии. Финальный релиз должен появиться незадолго до релиза самой Windows 7.

Windows 7 SDK

Сегодня SDK для Windows 7 находится в стадии beta и это означает, что к релизу его содержимое изменится и пополнится новыми интересными примерами и т.д. Тем не менее, уже сейчас есть, на что посмотреть. Не буду разбирать все примеры, а лучше заострю твое драгоценное внимание на тех, что демонстрируют новые технологии. В первую очередь, это возможности новых платформ. В SDK есть прекрасный пример использования "умного" интерфейса. Всем известный MSDN Reader взаимодействует с датчиками освещения и при изменении их показателей меняет оформление контента. При увеличении яркости света содержимое приложения становится более контрастным (увеличиваются шрифты, добавляется жирность, интервал между строк становится больше), а при уменьшении - возвращается в исходное положение. Поскольку наличие сенсорных датчиков пока считается диковинкой, то для тестирования примеров придется воспользоваться драйвером-эмулятором устройства (поставляется вместе с SDK).

Помимо демонстрации Windows Sensor Platform, в SDK представлены примеры программирования Super Bar (использования JumpList и т.д.), создания интерфейса Scenic Ribbon, новых возможностей фильтрации трафика и т.д. Если ты всерьез собираешься заняться разработкой под Windows 7, то обязательно скачай SDK и разбери его примеры в реальных условиях (скажем, на Windows 7 RC).

Windows 7 для WEB-разработчиков

Internet Explorer 8

Наверняка, ты уже знаешь, что в состав Windows 7 войдет новая версия браузера Internet Explorer 8. Изменения в нем затронули как сам движок, так и функционал. Начиная с этой версии, в браузере появились инструменты для разработчиков (Developer Tools), – предназначены они для отладки представления страниц и сценариев, написанных на языке JScript. Используя Developer Tools, ты можешь изменять значения любых тегов html документа "на лету" и просматривать результат изменений. При подгонке дизайна или отладке JScript эти возможности будут весьма кстати. Считай, что юзаешь FireBug, только в IE :).

Вопросы совместимости

Самый страшный день для любого разработчика – тот, когда хорошо отлаженное приложение приходится переносить под новую версию ОС. На этом шаге всплывают все нестандартные решения и "хаки", которые затрудняют переход. Чем больше было использовано недокументированных функций, тем болезненней будет происходить миграция. Увы, при использовании обходных маневров, никто не может дать гарантии, что используемая тобой суперфункция будет существовать в новой версии ОС. Именно поэтому нужно начинать приучать себя к использованию API исключительно из официальной документации. Если ты закодил приложение под Windows Vista без использования "трюков", то можешь спать спокойно. В 99% оно нормально перенесется и будет безошибочно функционировать и в Windows 7. А если нет... лучше сразу попытаться переписать проблемные участки кода или оставить все, как есть, и надеяться на лучшее.

С приложениями, разработанными под Windows Vista, все понятно: с большинством из них проблем не возникнет. А как бы с теми, что были оптимизированы и созданы для работы, скажем, в Windows XP? Увы, но из-за провала Windows Vista многие остались в XP и продолжали разрабатывать приложения именно под эту ОС. При переносе таких программ в Windows 7 тебя будут встречать те же проблемы, что и при переносе в Windows Vista. Если планируешь перескочить Windows Vista и перенести свое приложение сразу на Windows 7, то крайне рекомендую сначала обкатать свое творение на Vista.

Вместо реального тестирования приложения в Windows 7 ты можешь воспользоваться специальной утилитой Application Verifier (смотри http://blogs.msdn.com), позволяющей выполнить тест на совместимость без непосредственной установки Windows 7. Также очень рекомендую ознакомиться с электронными книгами: "Обеспечение совместимости приложений. Для разработчика" и "Обеспечение совместимости приложений. Для IT специалиста". Эти книги распространяются совершенно бесплатно, ссылки на их загрузку приведены ниже.

Заключение

В рамках статьи я рассмотрел далеко не все новые технологии, реализованные в Windows 7. За кадром остались: Libraris, Windows WEB Services и т.д. Обо всех остальных новинках ты всегда можешь прочитать на официальных ресурсах компании Microsoft. Увы, многие из новых технологий еще толком не документированы и информации по ним нет.

Подводя итог, хочу сказать, что Windows 7, скорее всего, станет следующей "народной" ОС, которую по достоинству оценят разные категории юзеров, а если ОС сможет завоевать сердца пользователей, то и кодеров долго ждать не придется. Они махом мигрируют в новую ОС… Что ж, поживем-увидим, а пока нам остается ждать финального релиза и потихоньку знакомиться со всеми новинками.

Полезные ресурсы

http://blogs.msdn.com/windev – русская версия блога "Windows 7 for Developers". Практически еженедельно появляются интересные посты (достаточно объемные) обо всех нюансах разработки приложений для Windows 7.

http://way2cloud.com – отличный блог по всему, что связано с Windows Azure. Новые и, главное, полезные посты публикуются практически ежедневно. Всем, кто интересуется "облачными" вычислениями просмотр обязателен.

http://progblog.ru – тематика этого блога: .NET Framework и все, что с ним связано. Материалы ресурса будут полезны всем категориям .NET-программистов.

http://windowssteamblog.com/blogs/developers - англоязычная версия блога "Windows 7 for Developers".

http://aspnetmania.com – сайт об ASP .NET. Новости платформы, эксклюзивные статьи, обзор книг и т. д.

http://weblogs.asp.net/scottgu - блог ScootyGu's, целиком посвященный ASP .NET. Из особенностей можно выделить: регулярно пополняемый раздел Tips And Tricks, новости из мира ASP .NET, обзор книг и т. д. Единственный минус - вся информация на английском языке.

http://asp.net/mvc – официальный сайт об ASP .NET и использовании смежных технологий (AJAX, MVC и т. д.). Огромный плюс сайта - подборка скринкастов про использование MVC, AJAX и пр. Одним видеоконтентом содержимое ресурса не ограничивается - текстового материала (гайдов, туторов, книг) также предостаточно. Язык ресурса - английский.

http://techdays.ru – русскоязычный ресурс по новым технологиям и продуктам компании Microsoft. Основной тип контента - скринкасты. Их количество растет в геометрической прогрессии, поэтому посещать ресурс рекомендуется почаще. Все представленные видеоматериалы на русском языке.

http://www.microsoft.com/whdc/device/input/smartcard/WBFIntro.mspx - подробная информация о Windows Biometric Platform. Страница частенько обновляется, и на ней появляются самые последние сведения о технологии.

http://download.microsoft.com/documents/rus/windows/V7DEV.pdf - бесплатная электронная книга, призванная помочь разработчикам обеспечить совместимость своих приложений с Windows 7.

http://download.microsoft.com/documents/rus/windows/V7IT.pdf - еще одна книга, в которой рассматриваются вопросы совместимости приложений с Windows 7. Однако это издание направлено не на разработчиков, а на IT-специалистов.

http://blogs.microsoft.co.il/blogs/sasha/archive/2009/02/25/windows-7-trigger-start-services.aspx - пример демонстрирует разработку Trigger-сервисов.

http://code.msdn.microsoft.com/WindowsAPICodePack - альфа-версия библиотеки Windows API Code Pack for .NET Framework.

http://www.pinvoke.net - прототипы практически всех Windows API-функций с примерами кода.

Говорит и показывает Microsoft: вопросы совместимости приложений

Алексей Федоров, Partners Lead DPE

В Windows 7 поддерживается ряд технологий, обеспечивающих совместимость приложений, написанных для предыдущих версий ОС. IT-специалисты могут решить проблемы совместимости с помощью инфраструктуры обеспечения совместимости (Application Compatibility Infrastructure), позволяющей "латать" приложения с помощью "заплаток" (shims) и уровней совместимости (layers). А разработчикам предоставляются средства тестирования приложений (Application Verifier, тестовые утилиты для сертификации приложений), а также тестовые сценарии для сертификации приложений – они могут использоваться для того, чтобы гарантировать совместимость новых версий приложений в процессе их разработки.

Инфраструктура Application Compatibility Infrastructure реализована в виде "перехватчиков" ключевых функций Windows API и эмуляции поведения предыдущих версий операционной системы Windows. В настоящее время существует более 360 "заплаток" - от простых, искажающих номер версии ОС (более 50% всех несовместимостей приложений!) до более комплексных, решающих задачи доступа к файловой системе, реестру и т.п. Около 60 уровней совместимости эмулируют поведение как предыдущих версий ОС, так и отдельных подсистем. Интересен и такой факт – на уровне Windows 7 RC реализованы "заплатки" для более чем 6000 приложений. По мере создания решений для приложений соответствующие "заплатки" распространяются в составе пакетов обновлений ОС и включаются в специальную базу данных совместимостей, которая присутствует на каждом компьютере.

Взято с http://www.xakep.ru/post/49488/default.asp


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок