Гольфв графстве Айлэнд

Автор: Андрей Драница
Опубликовано в журнале "Компьютерра" №20

Microsoft не перестает меня удивлять. Казалось бы, что нового можно предложить в среде программирования? Устранить ошибки (а заодно добавить новые) да внести некоторые количественные изменения - дополнительные компоненты и опции. Однако в новой версии Visual Studio "Whidbey", финальный релиз которой обещается в начале 2005 года, шаги вперед, пусть и не семимильные, но все-таки заметные, сделаны сразу по нескольким направлениям.

WHIDBEY
Небольшой остров северо-западнее Вашингтона, входящий в графство Айлэнд (Island county). Один из крупнейших офшоров в США. Назван в честь штурмана Джозефа Уидби (Joseph Whidbey).

IDE

Начнем с "великолепной семерки" - семерки изменений, без которых мы вроде бы жили и раньше, но которые действительно облегчают жизнь.

1) Расширители кода (expansion, см. рис.). Как показывает практика, до 75% кода программы - это такие простые конструкции, как условия, циклы, классы и тому подобная элементарщина. Дабы не набирать этот, почти очевидный, код вручную, IDE предоставит вам возможность одним нажатием вставить весь модуль. Естественно, вы можете сделать свои или настроить существующие расширители - благо они написаны на XML.

1

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

2

3) Технология intelliSense подверглась доработке. Она позволяет автоматически завершить написание оператора, свойства или функции; то есть когда вы начинаете писать команду или параметр, в окне предлагаются возможные варианты, и вам остается только подтвердить один из них, нажав Enter. Появилась поддержка шаблонов и средства формирования списка из доступных значений при добавлении блоков try/catch (см. рис.).

3

4) Шаблоны кода (code snippets, см. рис.) По сути, это обычные куски кода, которые раньше хранились в разрозненных файлах или, того хуже, в голове. Теперь все это хозяйство помещается в единое хранилище, откуда извлекается парой кликов.

4

5) Возможность вычисления выражений непосредственно при редактировании, без компиляции, причем с проверкой синтаксиса и выводом рекомендаций (см. рис.)

5

6) Визуальный рефакторинг. Звучит страшновато, но задействуется легко и в работе очень удобен. При программировании даже простейшей задачи первоначальный код размером со страничку имеет свойство распухать до вселенских масштабов. Рыться в простыне исходников длиной в несколько метров, разумеется, не составляет никакого удовольствия. Решение очевидно - разбить задачу на более мелкие и их код вынести в отдельные процедуры, функции, методы или целые классы. Безусловно, все это можно сделать и ручками, но именно лень, как известно, двигатель прогресса. И теперь наша лень формализовалась в специальном меню, где парой кликов нужный фрагмент превращается в отдельный кусок (рис. 6). В принципе рефакторинг был доступен и раньше - в виде подключаемых модулей, но порой эти надстройки не работали вообще или работали некорректно.

6

Теперь рефакторинг стал неотъемлемой частью IDE, так что такие нудные операции, как переименование переменной, класса или объекта, выполняются автоматически. Причем в окошке Preview Changes вы увидите те строки кода, в которые будут внесены изменения. Какие из инструментов рефакторинга войдут в финальную версию продукта, пока не ясно, но в существующей на момент написания статьи демо-версии уже имелись следующие:

  • выделение интерфейса, наследования и метода;
  • изменение сигнатуры метода;
  • инкапсуляция поля;
  • переименование классов, функций, переменных;
  • добавление и/или изменение порядка следования параметров в функциях;
  • замена ArrayList.

7) Раскраска типов и ключевых слов. Теперь текст программы может сиять, как рождественская елка, достаточно настроить раскраску пользовательских типов и ключевых слов.

Безусловно, эти новшества можно считать косметическими, но их появление заслуживает добрых слов. Помимо них есть и другие маленькие радости: IDE научилась автоматически сохранять результаты работы через заданные промежутки времени. Естественно, с предоставлением возможности восстановления при фатальном сбое, что при программировании и отладке более вероятно, чем при банальном наборе. Наконец, модифицирована подсистема поиска (окошко Find and Replace), которая теперь позволяет выполнять поиск в свернутом тексте (так называемый #region). Не остался без внимания и отладчик. Если раньше всплывающая подсказка была активна только для простых (не составных) переменных, то теперь она имеет место и в более сложных случаях: достаточно навести курсор и можно увидеть специальную подсказку (DataTips), демонстрирующую не только значения переменной, но и всю иерархию типа (рис. 7). Следуя современным тенденциям (читай - большим мониторам), появились инструменты для управления все большим числом dock-окошек. Если раньше они скакали, как заправские акробаты, то теперь можно предварительно посмотреть, куда же окно прицепится.

7

Framework

Присвоят ли новой версии Framework полновесную двойку или обойдутся цифирями 1.2, не столь важно, но то, что нововведения здесь действительно значимы, - факт неоспоримый:

  • добавлена поддержка 64-разрядных процессоров от Intel и AMD;
  • повышена производительность практически всех операций и подмодулей;
  • появился новый набор инструментов (кодовое название Whitehorse), ориентированный на быструю разработку приложений на базе веб-сервисов;
  • расширены функции разработки клиентских и мобильных приложений; для создания последних существенно модифицирована .NET Compact Framework, поддерживающая Windows CE 4.2 и Pocket PC;
  • включены новые инструменты разработки ASP-приложений (более сорока компонентов) и доступа к базам данных.

Вместе с формой изменилось и содержание - в том смысле, что изменились и сами языки программирования (я приведу лишь список изменений, подробнее читайте на сайте MSDN):

  • шаблоны (не путать с шаблонами кода);
  • фрагментированные типы;
  • анонимные методы;
  • итераторы;
  • квалификаторы глобального пространства имен;
  • статические классы;
  • новая обертка у VB для доступа к классам.

MSBuild

В билдер (компонент, отвечающий за сборку проекта) добавлена система, названная MSBuild, которая понимает описания проекта в XML и способна выполнять все действия поэтапно в автоматическом режиме. Разумеется, у разработчика есть средства для модификации базового сценария, который может выглядеть примерно следующим образом:

  • извлечь последние версии исходных текстов из хранилища SourceSafe;
  • собрать проект;
  • прогнать тесты;
  • разослать по электронной почте отчет с результатами сборки и тестирования всем участникам проекта.

Microsoft Office Solution Development

Конечно, в Редмонде не могли забыть и сопутствующий продукт - MS Office, который ныне является не только офисным пакетом, но и целой платформой (да простят меня профессионалы за столь вольное сравнение). Нельзя сказать, что появление Visual Studio Tools для MS Office System (VSTO) произвело фурор, однако вынесение его в отдельный продукт говорит о самостоятельности этого инструмента разработки. Автономный продукт, несомненно, удобнее, особенно для неанглоязычных офисных разработчиков. Ведь до недавних пор разработка собственных приложений требовала локализованной версии Office, и это помимо Office Developer, включавшего все офисные приложения и выходившего только на английском языке. К тому же полученные приложения могли не работать при иной локализации. Теперь эти проблемы должны остаться позади.

Если мы заглянем во внутренности VSTO, то увидим, что механизм автоматизации и среда разработки самого Office 2003, как и прежде, базируются на традиционных механизмах VBA и COM. А вот VSTO позволяет создавать DLL-расширения для того же "Ворда" прямо в среде .NET Framework на языках VB.NET или C#.

Однако не "Микрософтом" единым. Обратим взор на продукт конкурента, причем продукт неординарный. Продолжение на следующей странице.
Путь Sun >>


<<«Вобис» — победитель двухконцового бизнеса. Часть II
Все материалы номера
Песочные замки на мерзлом болоте >>