У багатьох читачів виникає питання, чому ми так часто говоримо про Windows Vista в блозі Windows 7 для розробників? Все дуже просто: ми говоримо про Windows Vista. так як Windows 7 побудована на базі Windows Vista і має зворотну сумісність з програмною моделлю Windows Vista. Це, безсумнівно, є величезною перевагою для розробників.
Ні для кого не секрет, що операційна система Windows написана на С і С ++, і, як наслідок, використовує спадкову програмну модель, відому як WinAPI або Win32 API. Windows API представляє собою або чистий C API або COM-based API. Це робить використання API дуже простим і зручним для тих, хто програмує на C або C ++. Але що ми можемо запропонувати розробникам керованого коду? Чи є які-небудь API керованого коду в Windows Vista або Windows 7?
NET Framework пропонує просту і зрозумілу програмну модель, орієнтовану на Windows-клієнтів (веб, сервери, мобільні пристрої). А в поєднанні з набором інструментів і бібліотек .NET Framework є ефективною і продуктивною середовищем для створення клієнтських Windows-додатків. Одна з переваг .NET Framework полягає в тому, що це середовище заснована на бібліотеках, тому будь-хто може додавати бібліотеки для розширення функціональності. До складу .NET Framework за замовчуванням входить маса бібліотек, які розширюють власні Windows API, роблячи розробку додатків для Windows незалежно від її версії - XP, Vista або 7 - набагато більш простим заняттям, ніж при використанні Windows API.
Хорошим прикладом є компонент (так називають бібліотеки в .NET) .NET WinForms, що містить набір інтерфейсних класів, які використовують традиційний Win32 API для створення та обробки вікон в Windows. Абстрагуючись вбудований API. NET WinForms гарантує, що нам не потрібно безпосередньо працювати з покажчиками (HWND), дескрипторами (HINSTANCE) або іншими власними конструкціями Windows API. В іншому випадку код виглядав би наступним чином:
Так, WinForms заснований на HWND. Розробники на .NET можуть легко отримати доступ до HWND, використовуючи властивість класу System.Windows.Interop в компоненті WindowsBase (WindowsBase.dll).
Але незважаючи на всебічні зв'язки .NET Framework, дана середовище виконання не пропонує керовані API для всіх власних Windows API. Тому у розробників керованого коду немає ніяких керованих API для роботи з UAC API, Restart Manager API або новим Windows Vista Search API. Це всього лише кілька прикладів власних Windows API, для роботи з якими в .NET Framework немає інтерфейсів, але які відіграють ключову роль при розгортанні деяких додатків в Windows.
Windows Vista Bridge Sample Library (VBSL) є розвитком однієї з ідей команди Microsoft SDK зі створення своєрідного моста між .NETFramework і Windows API. VBSL є бібліотекою класів, яка полегшує розробникам керованого коду доступ до найбільш важливих функцій Windows Vista без необхідності піклуватися про рівень взаємодії. Vista Bridge 1.3 пропонує набір класів, бібліотек і прикладів, написаних на .NET, які дозволяють розробнику використовувати такі функції Vista, як UAC, Power Management, Restart Recovery, Restart Manager, Network, Aero Glass і багато інших. Необхідно відзначити, що керовані бібліотеки Vista Bridge 1.3 відмінно працюють і з Windows 7 API і будуть працювати в майбутніх релізах в міру того, як команда SDK буде продовжувати підтримку даного проекту.
Однією з областей, в яких VBSL може полегшити працю розробників - це діалогові вікна. Windows Vista пропонує безліч діалогових вікон для різних цілей. Наприклад, якщо ви використовуєте Windows Vista, то, ймовірно, знайомі з таким форматом для користувача інтерфейсу:
Ось приклад типового набору командних посилань:
Командні посилання схожі на перемикачі (radio buttons) в тому сенсі, що вони використовуються для вибору з набору взаємно виключають, але пов'язаних між собою варіантів відповіді. Як і перемикачі, командні посилання завжди представлені в наборі і ніколи по одній. У командних посилань спрощений зовнішній вигляд, як і звичайних гіперпосилань - без рамки і інших явних атрибутів натискання. Командні посилання також схожі на командні кнопки (command buttons) тим, що вони також можуть мати «заслання за умовчанням» і для них теж може бути призначена «швидка комбінація клавіш». Подібно кнопок з фіксацією положення (commitbuttons) командні посилання при натисканні або закривають діалогові вікна або переводять на наступну сторінку покрокового майстра.
Використовуючи Windows Vista Bridge Sample Library, ви можете створити симпатичні діалоги Task Dialog, які будуть виглядати наступним чином:
Діалог Task Dialog є об'єктом Vista Bridge Sample Library, Microsoft.SDK.Samples.VistaBridge.Library.TaskDialog і не має властивостей часу. Саме тому ви повинні налаштувати діалогове вікно. Але це просто і ми покажемо це на наступному прикладі.
По-перше, створіть Task Dialog:
Після чого почніть налаштовувати його атрибути - заголовок, інструкції, основну область і основну іконку: