Windows 7: особенности кодингаВ июльском X у нас была отдельная статья о новом таскбаре Windows 7 Superbar и о том, как реализовать поддержку всех фичей этого таскбара в своих приложениях. Сегодня мы решили еще раз взглянуть на новую винду программистским взглядом и подготовили для тебя список самых значимых, на наш взгляд, фишек, в курсе которых должен быть любой Windows-кодер. Забегая вперед, скажу, что каждый из этих пунктов заслуживает отдельной статьи, и в следующем году ты обязательно увидишь несколько материалов из этой серии. Мы напишем и о программировании MultiTouchинтерфейсов, и о разных системных штучках. Ну, а пока давай просто быстренько пробежимся по новым кодинговым возможностям Windows 7. Библиотеки в WINDOWS 7Библиотеки «семерки» являются определяемыми пользователем коллекциями файлов, которые представляют данные, независимо от того, где те хранятся на компьютере. Благодаря им, пользователи могут унифицировать и сгладить иерархию папок, собрав любое количество физических расположений (на локальной или удаленной машине) в одном месте — в библиотеке. Причем пользователи могут самостоятельно решать, какие папки должны быть в них включены , а какие нет. В то же время, добавляя папки в библиотеки, пользователь сообщает Windows 7 о том, где расположены важные для него данные. В дальнейшем система будет индексировать эти папки, позволяя пользователю быстрее и эффективнее искать в них свой контент по свойствам файлов. Тем, кто озабочен разработкой приложений под Windows 7, интересно обеспечить взаимодействие их разработок с библиотеками. Это позволит интегрировать приложения пользователя в рабочую среду Windows и обеспечит согласованность работы приложений в различных сценариях. Поддержка разработки библиотек реализована в библиотеке Windows API Code Pack for Microsoft .NET Framework (http://code.msdn.microsoft.com/WindowsAPICodePack). Windows TouchВ новой Windows 7 кардинальным образом изменился графический интерфейс. Он стал еще проще, привлекательнее и обзавелся поддержкой мультитача. Технология MultiTouch, а точнее — просто Windows Touch, реализована практически в полном объеме. Если тебя привлекают вещички типа сенсорных панелей, то приготовься — обзаведись соответствующим монитором и сможешь кодить программы, управляемые движениями пальцев. Более того, базовая поддержка MultiTouch будет доступна и в уже существующих приложениях без изменений кода. Для реализации всех фишек технологии Windows Touch разработчики приготовили большой набор API-функций, поэтому встроить в свою программу поддержку интерфейса MultiTouch достаточно легко. Для этого в API имеются функции, позволяющие научить приложение распознавать стандартные жесты, эталонные для других приложений. В большинстве приложений особые «выкрутасы» не нужны, поэтому этих функций для начала тебе вполне хватит, кроме того, к твоим услугам всегда будет пакет низкоуровневых API-интерфейсов, с помощью которого легко можно решить нестандартную задачу. Windows 7 SDKХотя Windows 7 SDK не входит в стандартную комплектацию, не будем обходить его своим вниманием. Новый SDK является прекрасным собранием документации и примеров для использования новых API-функций, предоставляемых Windows 7. Несмотря на тот, факт, что большинство этих примеров написаны на неуправляемом (native) коде для API Windows 7, которые относятся к C, C++ и COM API, это несильно усложнит жизнь разработчикам управляемого кода: поддержка ключевых API Windows 7 доступна через библиотеку Windows API Code Pack for Microsoft .NET Framework. Системным программистам на заметкуНе остались без внимания и системные разработчики. Так, был переработан и улучшен механизм отслеживания событий в Windows — «Event Tracing for Windows» (ETW). Внедренный в Windows 2000, он был предназначен для ведения логов юзермодных приложений и различных системных событий, генерируемых как ядром так и его компонентами. Теперь системного программиста ждут значительные улучшения, связанные с отслеживанием событий ядра ОС, что также нашло отражение в .NET’овских языках в виде соответствующих API. Сейчас ETW способен вести логи старта и окончания таких объектов как «Process», «Thread», «Image» и «Process», чего раньше не было. И это не все — также можно вести логи переключения контекста потоков (Context Switch), вызова отложенных процедур (DPC) и векторов прерываний устройств (ISR). Но и это еще не все — новый механизм ETW позволяет регистрировать события, связанные с управлением памятью — «Page Fault events», «Hard Page Fault events» и «Virtual Memory events». Программисты, пишущие на языках в .NET Framework для того, чтобы во всей полноте прочувствовать этот шик, могут обратиться к пространству имен System.Diagnostics. Eventing, где представлены новые классы и методы. В Windows 7 зарелизили новую версию низкоуровнего интерфейса для сетевых карт — NDIS 6.20, которая, впрочем, несильно отличается от шестой версии. Само собой, в ядре Windows 7 актуальными остаются такие интерфейсы сетевой разработки, как NMR и Kernel Sock, впервые появившиеся в Windows Vista. И, внимание! Что меня особенно порадовало, так это то, что поддержка TDI-интерфейса осталась — уж очень не хотелось от него отказываться. .NET Framework: Версия 4Ведя разговор о новых возможностях в разработке софта под Windows, нельзя обойти стороной и готовящийся в настоящий момент релиз четвертой версии .NET Framework. Тем более, бета-версия нового фреймворка доступна уже порядочное время. Основной акцент в .NET Framework всегда делался на разработке web-приложений и web-сервисов, вследствие чего ASP.NET является сейчас, пожалуй, самой продвинутой частью .NET Framework. Теперь web-разработчикам предложены новые расширения ASP.NET Ajax и Silverlight, что не может не радовать. К тому же, — пусть это и не прямая заслуга команды разработчиков ASP.NET — в рамках проекта Mono практически любой ASP.NET веб-сайт может быть запущен на любом Java Application сервере (J2EE, Tomcat и т.д.). Windows Forms пока не может похвастаться такими успехами. Отныне в .NET стало возможным использовать скриптовые языки, такие как IronRuby и IronPython. Это реально, благодаря технологии поддержки динамических языков или DLR (Dynamic Language Runtime). DLR — компилятор динамических языков, который позволяет интерпретировать код, минуя этап его компиляции в CLR-байткод. Не хочется перехваливать данную особенность, но это похоже на явный, если можно так выразиться, маркетинговый ход со стороны Microsoft. Ведь сейчас даже невооруженным глазом виден всплеск интереса к языкам Ruby и Python. Один мой знакомый программист, который трудится на ниве ООП в одной очень достойной компании, занимающейся разработкой CRM-систем, пришел прямо-таки в щенячий восторг, узнав о поддержке .NET новых языков (и в том числе Ruby), поскольку, с его слов, «влюбился в новый язык и не знал, что выбирать — C# или Ruby». Более того, в .NET Framework предоставляются исходники DLR, при помощи которых можно создать свой динамический язык для .NET, если у тебя есть необходимость. В четвертой .NET появилось много нововведений, к примеру, «Lazy Initialiation» — память под объект выделяется, когда это действительно становится нужно, что положительно сказывается на быстродействии программ, созданных на .NET’овских языках. Важной особенностью .NET 4.0 можно назвать и поддержку динамического типа, благодаря появлению ключевого слова dynamic. Теперь при объявлении динамического объекта можно обращаться к любому члену класса, при этом не зная заранее, что это за класс (то есть, не зная типа). В .NET Framework 4.0 интегрированы WF и WCF, что упрощает разработку ориентированных на службы приложений. WCF и WF — взаимодополняющие технологии. Для тех, кто с ними незнаком, проще всего представить эту пару следующим образом: WCF снаружи, WF внутри. WCF используется для предоставления внешнего интерфейса службы приложения, а WF — для описания внутреннего потока, состояний и переходов приложения. Ранее .NET Framework 3.5 представила заманчивую возможность отправки и получения WF. С помощью этих действий WF можно упростить процесс координации нескольких служб для выполнения комплексных, долговременных рабочих процессов. .NET Framework 4.0 поставляется с усовершенствованной библиотекой базовых действий, содержащей несколько новых действий. «Майкрософт» также планирует предоставлять дополнительные действия WF через CodePlex между крупными выпусками .NET Framework. А в будущих выпусках (или в CodePlex) будет больше рабочих действий, с тем, чтобы уменьшить необходимость в разработке собственных. Поскольку «Майкрософт» использует CodePlex, пользователям предоставляется хорошая возможность донести, какие дополнительные действия они хотят видеть. .NET Framework 4.0 также предоставляет некоторые новые действия рабочей среды для вызова методов CLR (MethodInvoke), для выделения значений переменным рабочего процесса (Assign) и для прямого сохранения работающего экземпляра рабочего процесса (Persist). ЗаключениеВ статье я не затронул и половины всех новых возможностей, которые представлены к услугам программиста в новой Windows 7. Эта операционная система предлагает столько новых функциональных возможностей, что голова идет кругом. И что-то подсказывает мне, мой друг, что пора, пора делать выбор в пользу Windows 7! Мнение экспертаВладимир Арустамов, главный девелопер Arovax, LLC:Новая ОС от Microsoft с первых бета-релизов завоевала уважение как рядовых пользователей, так и профессиональных разработчиков. Одним из самых заметных нововведений является так называемый «Superbar» — новая панель задач. Поддержка этой новинки требует некоторых затрат со стороны разработчиков софта, но улучшение юзабилити перекрывает все трудозатраты на реализацию новых возможностей. Создание эффектного пользовательского интерфейса значительно упрощается, благодаря Windows 7 Animation Manager. Большинство современных пользователей любят красивые и эффектные графические интерфейсы и поддержка интерактивной анимации в приложениях на уровне ОС значительно упростит жизнь разработчикам. Также стоит отметить механизм Windows Error Reporting и службу Winqual, которые были значительно усовершенствованы со времен Windows Vista, с учетом накопленного опыта их использования. Технология Restart Manager поможет избежать неприятностей в случае сбоев программного обеспечения, которая перезапустит приложение и попытается восстановить рабочие данные после критической ошибки. Андрей Комаров, технический директор ИТЦ «Аналитика» www.itdefence.ru:Windows 7 с точки зрения безопасности воплотила в себе значительные изменения. Технология Windows Filtering Platform (WFP) в первую очередь ориентирована на разработчиков антивирусных продуктов и софтверных персональных МСЭ. Она позволяет через специальный интерфейс взаимодействовать собственным продуктам с возможностями встроенного Windows Firewall. Также появилась возможность шифровать съемные отделяемые носители штатными средствами ОС (расширение функционала BitLocker). Похожий по названию, но отличный по назначению Applocker предотвращает запуск морально устаревшего ПО, версии которого могут содержать критические бреши в безопасности. Принципиально новой функцией, существенно усиливающей безопасность, является служба Windows Biometric Service, которая выступает в качестве средства связывания клиенстких приложений с устройствами биометрической защиты. Ранее для этого требовалось внедрение дополнительных драйверов, компонентов, поставляемых со стороны вендора. Windows 7 является первой операционной системой, позволяющей удостовериться в безопасности соединения с сервером DNS и в том, что на сервере выполняется проверка DNSSEC от его имени. Хотя технология DNSSEC еще не столь обжита, тем не менее, она есть на ряде ресурсов российских регистраторов. Алексей Федоров, эксперт по технологиям, Microsoft:Разработчикам стоит обратить пристальное внимание на Windows 7 – положительные отзывы заказчиков, уже развернувших у себя эту ОС, а также скорость внедрения Windows 7 доказывают, что новую ОС ждет долгая жизнь. Чем бы вы не занимались – написанием системного софта, прикладных решений или игр – Windows 7 содержит множество новых и обновленных технологий, которые позволят вам по-новому взглянуть на создание приложений. Изучая возможности новой ОС, не забывайте о рекомендациях по написанию совместимого кода, использованию подсистем, обеспечивающих стабильную, надежную и безопасную работу приложений. Links
|