Ильин Е. А.,
научный руководитель – к. т. н., профессор Навоев Н. С.,
Поволжский кооперативный институт (филиал)
Российского университета кооперации
В последнее время прогрессируют новые технологии программирования, так называемые в литературе .NET-технологии. Программисты с целью автоматизации и удобства такого программирования используют разработанные специальные программные средства, например, Microsoft .NET Framework 3.0. В 2006 году, а точнее 6 ноября 2006 года, компания Microsoft выпустила новую версию своего продукта Microsoft .NET Framework 3.0. Новая версия включает в себя .NET Framework 2.0 и четыре новых подсистем.
Подсистема Windows Presentation Foundation (WPF) – имеет новый интерфейс пользователя, программный интерфейс на основе XML и векторной графики.
Другая подсистема Windows Workflow Foundation (WF) – это новая идеология программирования, предлагаемая компанией Microsoft, основанная на бизнес сущностях и потоках.
Третья подсистема Windows Communication Foundation (WCF) – сервис-ориентированная система обмена сообщениями, которая позволяет программам взаимодействовать локально или удалённо подобно веб-сервисам.
Четвертая подсистема Windows CardSpace (WCS, кодовое имя InfoCard).
Все 4 подсистемы обновления платформы заслуживают особого внимания. Рассмотрим в данной статье только одну подсистему Windows Presentation Foundation (WPF). И хотя WPF вышла довольно давно, реальное применение технологий с использованием WPF началось только в последнее время.
Так как технология .NET 3.0 является по сути технологией .NET 2.0, это означает, что никаких изменений в уже написанные приложения вносить не надо. Это освобождает программистов от необходимости при переходе с версии 1.х на версию 2.0 переписывания кода приложений.
Исторически обоснована необходимость новой подсистемы WPF для работы с графикой. С выходом Windows 95 в далёком 1995, появился интерфейс GDI (Graphics Device Interface), который представлял из себя библиотеку для работы с примитивами, шрифтами, растром, кривыми. Он был абстрагирован от аппаратуры настолько, что программисту не надо было думать о том, на каком компьютере будет работать его программа. Это существенно упрощало разработку прикладного программного обеспечения, и давало достаточную свободу творчества для разработчиков.
Следующим шагом в развитии стал выход Windows XP в октябре 2001 года, а вместе с ней и выход нового графического интерфейса API GDI+. Эта библиотека являлась переделкой старой GDI, на новый ООП стиль. Конечно, кое-что добавилось, но существенных изменений не было. Большим шагом в GDI+ стала доступность из .NET языков программирования, таких как С#, VB.NET.
И вот, наконец, после выхода Microsoft .NET Framework 3.0 были внесены значительные изменения и появилась WPF (Windows Presentation Foundation). WPF – это логическое продолжение идеи GDI/GDI+ переложенное на новый стиль.
Основное применение новая подсистема WPF находит в формировании Rich User Interface, но так же возможно применение и в других областях программирования, таких как разработка компьютерных игр, симуляторов и т.д. В WPF реализована поддержка 3D графики, которая к тому же аппаратно ускоряется. Основу WPF составляют шаблоны, стили, «Lookless» контролы.
Шаблон – это структура контрола. Кнопка Button, как правило, состоит из рамки с заливкой и текста. Например, для изменения цвета кнопки придётся просто отредактировать шаблон кнопки. Коротко – шаблоны позволяют полностью менять вид контрола, сохраняя его функциональность, а также позволяют эту функциональность расширить.
Стиль – это набор установок для контрола. Стиль необходим, чтобы можно было менять свойства множества кнопок, редактируя только один стиль. К примеру, стиль может содержать информацию об отступе (Margin), цвете фона (Background) и даже задавать шаблон.
С появлением в WPF стилей и шаблонов появилось также определение «Lookless» (безликий) контрол. Это значит, что теперь контролы, по сути своей, являются чистой логикой. Они предоставляют некие свойства, события и методы. Однако информация о том, как они должны выглядеть на экране теперь полностью контролируется шаблонами и стилями.
Основным элементом WPF является язык XAML (eXtensible Application Markup Language). Это XML-подобный, декларативный язык, который описывает весь «контент» отображаемый подсистемой WPF. XAML включает основные четыре категории элементов: панели, элементы управления, элементы, связанные с документом и графические фигуры.
Основной проблемой в процессе реализации сложных интерфейсов для программ было и есть: взаимоотношение дизайнера интерфейсов (или желание заказчика видеть свою программу так, а не иначе) и программиста.
После появления Microsoft .NET Framework 3.0, проблема дизайна приложений может разрешиться. В данном случае дизайнер может взять на себя роль программиста и описать необходимый ему интерфейс на простом и доступном языке XAML.
С помощью XAML одновременно решается 2 задачи:
1. Разгрузка программиста от процесса "рисования форм". Теперь ему не надо заботиться о внешнем виде программы, об этом позаботится дизайнер. Задача программиста будет заключаться только в описании бизнес логики приложения.
2. Отделение данных от их представления. Это означает, что в любой момент можно сменить внешний вид программы, при этом, не затрагивая логику работы.
Не стоит так же забывать и о том, что всё выводимое на экран через WPF аппаратно ускоряется (естественно в силу возможностей аппаратуры). Это немаловажно, так как возможности WPF простираются намного дальше разноцветных линий и кнопок. WPF подвластны 3D графика, анимация, видео, звук, а здесь без соответствующей аппаратной поддержки не обойтись. Можно без всяких проблем добавить трёхмерную графику в любое место вашего приложения. Более того, всё это можно написать при помощи XAML, не написав ни строчки на C#. Есть возможность создания кнопки, которая при нажатии переворачивается (в трёхмерной манере) и на её обратной стороне показывается рисунок.
Microsoft сделала огромную ставку на технологию .NET и не проиграла. В платформу закладывается все больший потенциал. Сейчас она уже перевернула устоявшийся мир программистов, сильно подвинула язык Java, начинает наступать на технологию Flash. Платформа объединила в себе возможности создания интернет-приложений, Windows приложений, Mobile и даже Linux/Unix приложений. Теперь программисту достаточно глубокого изучения .NET платформы для написания кода под все вышеперечисленные технологии.