Сообщений 19    Оценка 135        Оценить  
Система Orphus

Что нового в VS.NET Whidbey?

Автор: Владислав Чистяков (VladD2)
The RSDN Group

Источник: RSDN Magazine #6-2003
Опубликовано: 24.06.2004
Исправлено: 13.03.2005
Версия текста: 1.0
Профайлы пользователей
Task List
Текстовый редактор
Рефакторинг
Дизайн Web-страниц
Solution-ы и Проекты
Microsoft .NET Build Engine
Отладка
Deployment
Automation
Help
Docking окон
Поддержка новых продуктов Microsoft
Заключение

Профайлы пользователей

Думаю, у многих после переинсталляции ОС, перехода на другую машину или просто в пылу борьбы за единообразие в своей фирме, появлялось желание перенести настройки, сделанные в одной копии VS, в другую. Я сам делал это еще во времена VS 6, копируя ключи реестра в .reg-файл и восстанавливая их на другой машине. Однако делать это было крайне неудобно, да и не все настройки можно перенести таким путем.

В новой версии VS появилась штатная возможность экспортировать и импортировать практически все настройки IDE. Теперь настройки хранятся в одном файле, путь к которому также настраиваемый, так что его можно даже разместить на сети (сам не пробовал, но вроде ничто не мешает).

В список сохраняемых настроек входят:

Экспортировать профайл можно, выбрав «Import/Export Settings» в меню «Tools».

Task List

Улучшено окно «Task List». В нем теперь может отображаться многострочный текст, сортироваться колонки и т.п.

Текстовый редактор

В редакторе кода произошло несколько приятных изменений.

С левой стороны окна редактирования появилась полоска, отображающая состояние строк. Если изменить строку, то эта полоска окрашивается в желтый цвет. После записи изменений цвет полоски меняется на зеленый. Откровенно говоря, цвета те еще, но их можно настроить самостоятельно.

Существенно усовершенствована работа с закладками. Теперь переход по закладкам осуществляется не в пределах одного документа, а во всем решении (Solution). Причем если закрыть среду и открыть ее заново, то закладки не исчезают. Раньше такого поведения можно было добиться, установив Visual Assist (расширение для VS6 и VS.NET независимой фирмы Whole Tomato Software, Inc. - www.wholetomato.com). Однако Microsoft пошел дальше и добавил специальное плавающее окно «Bookmarks» (см. рисунок 1) в котором можно увидеть все имеющиеся закладки. Закладки в этом окне можно менять местами, помещать в папки (здесь же и создаваемые), включать/отключать (причем все закладки, находящиеся в одной папке, можно включать/отключать одним кликом мыши), именовать (задавать осмысленные имена, по умолчанию закладки именуются по принципу BookmarkПорядковыйНомер). В общем, трудно придумать, что еще можно сделать с закладками. Разве что возможность сохранять набор закладок и автоматически отсылать другу по почте.


Рисунок 1. Окно «Bookmarks»

Единственная проблема с закладками заключается в том, что описанное выше окно серьезно глючит. Я не раз вылетал из VS при экспериментах с ним. Но для дремучей беты это в порядке вещей. Будем надеяться, что к релизу эта проблема исчезнет. Уж больно удобно все получилось.

Не знаю уж зачем, но теперь можно скопировать описание метода, показываемое при нажатии Ctrl+Shift+Space, в клипборд (опция Edit.CopyParametrTip, по умолчанию вызываемая клавиатурным сокращением Alt+C), или вставить в позицию курсора (опция Edit.PasteParametrTip, по умолчанию вызываемая клавиатурным сокращением Alt+I).

Если вы когда-нибудь использовали Microsoft Office XP, то должны были заметить значки smart-тегов, то и дело появляющиеся при редактировании. Думаю, замечали. Их тяжело не заметить. Вещь, довольно сильно раздражающая. В Word их еще можно скрыть по Esc. В Excel-е же они воистину бессмертны. Появляясь над текстом, они перекрывают его и не дают нормально работать. Так вот эта изумительная возможность появилась и VS. Радует только то, что причинять пользу они в основном будут VB.NET-программистам, так как именно VB.NET избран разработчиками VS в качестве номинанта на звание самого интеллектуально-редактируемого языка. Я же больше предпочитаю C# и C++, а в них smart-теги появляются не так часто.

Редактор текста теперь поддерживает автоматическую запись. Запись происходит каждые пять минут (значение настраивается). Если IDE накрывается, при следующем запуске включается механизм восстановления (что-то вроде того, что есть в Word).

Улучшено, причем очень значительно, автоматическое выравнивание кода. В VS и раньше были возможности вроде smart-отступов (smart indent) и форматирования выделенного фрагмента кода, но все ограничивалось банальным управлением отступами и заменой табуляций на пробелы (или наоборот, в зависимости от настроек). Теперь же редактор VS позволяет полностью переформатировать (по-своему) код. Например, если в вашей конторе появился новый программист, код которого не удовлетворяет принятым в фирме стандартам:

string Func1( int i, string str ) {
   if(i==0) return "aaa"; else return str;
   }

то нажатием сочетания клавиш можно отформатировать этот код, приведя в соответствие с корпоративными стандартами:

string Func1(int i, string str)
{
  if(i == 0)
    return "aaa";
  else
    return str;
}

Самое приятное, что все можно настроить по-своему. Это делается в соответствующей ветке диалога настроек (см. рисунок 2). Что особенно приятно, практически для всех настроек приводятся демонстрационные примеры, отображаемые в окне под списком настроек. Все настройки форматирования помещаются в профайл пользователя, так что их без труда можно распространить по всему предприятию.


Рисунок 2. Настройка форматирования кода.

Единственная загвоздка, возникающая с этой замечательной возможностью – не все работает гладко. Так, очень часто при переносе параметров метода VS не делает отступа (хотя об этом указано в настройках), и не очень интеллектуально меняются отступы между логическими блоками кода, но, в общем, все просто здорово.

Рефакторинг

VS обзавелась мощнейщим инструментом позволяющим производить сложную модификацию текста – рефакторингом. Ранее подобные возможности можно было встретить только в продуктах для Явы (вроде IDEA), или в дополнениях для VS, поставляемых независимыми поставщиками за отдельные деньги. Теперь они доступны всем пользователям VS. Пока что рефакторинг доступен только для языков C# и J#, но похоже, со временем он станет доступен и в VB.NET.

Лучшее определение тому, что же такое рефакторинг, дал Игорь Ткачев (IT): «Раньше переделка своего или чужого кода считалась плохим тоном, неумением писать правильный код с самого начала и т.п. Потом придумали умное слово «рефакторинг» и теперь это не только не зазорно, но даже почётно.». В общем, хотя и шутка, но очень точно отмечающая предпосылки этого явления.

Вот список поддерживамых VS возможностей:


В нем можно заполнить поля, выделенные желтым цветом, и нажать Esc для завершения.

В документации сказано, что можно создавать свои шаблоны, но не сказано, как это сделать. :)

Дизайн Web-страниц

В VS включен новый дизайнер Web-страниц. По словам разработчиков (сам я с ним не разбирался), он настолько наворочен по сравнению с предыдущей версией, что они решили дать ему отдельное имя – Visual Web Developer (далее VWD). VWD позволяет редактировать ASP.NET- и HTML-страницы. Причем весьма в этом преуспел. Он позволяет создавать Web-контент намного проще и быстрее, по сравнению с VS.NET 2003. Даже звучат заявления, что он в сочетании с ASP.NET 2.0 (входящей в .NET Framework 1.2) позволит на 70% сократить объем кода, необходимый для создания Web-приложения (а стало быть, и уменьшить время разработки). Так что если ваше Web-приложение к выходу новой версии VS будет готово менее, чем на 70%, стирайте весь код, написанный до этого и переписывайте все на новой версии (шучу, конечно).

Одна очень полезная возможность, появившаяся в VS – это возможность создавать Web-приложения в отдельном каталоге и не использовать IIS. Собственно, это можно было делать и раньше, но для этого нужно было делать много лишних телодвижений и хорошенько порыться в документации.

В ASP.NET 2.0 появилась куча новых Web-control-ов, и, естественно, все они поддерживаются в новой версии VS.

Так же обещается куча разных вкусностей с загадочными (вроде Task-based editing) и не очень (in-place editing) названиями. Обещают даже, что HTML-редактор больше не будет уничтожать HTML-код, сделанный программистом вручную. Кроме того, обещается, что HTML теперь будет совместим со стандартом XHTML. Это позволяет надеяться, что порожденный ASP.NET-код (шаблон для которого создан в VS) можно будет без труда подвергать XSLT-трансформации или изменять с помощью XML DOM.

Помните, когда только появилась VS 2002, нам рассказывали, что поддерживаемая ею модель разделения кода и визуального представления – это новое слово в создании Web-порталов, так как позволяет дизайнерам и программистам работать параллельно? Так вот, в новой версии разработчики VS пошли дальше, и теперь по умолчанию HTML-код визуального представления будет храниться вместе с кодом. Это позволит еще больше разделить работу дизайнера и программиста... уволив одного из них. :) Я просто поражаюсь, как рекламщики из Microsoft умудряются любую недоработку превратить в ценную «фичу». Если серьезно, то это новшество позволит упростить выкладывание страниц, так как теперь совершенно не обязательно тянуть за страницей сборку, содержащую код, а можно просто скопировать файл в нужный каталог. Кстати, это можно было делать и раньше, но настолько вручную, и с таким неудобством, что делать это отваживались только настоящие любители приключений. Естественно, что, как и раньше, код можно выносить отдельно, чему способствует новая возможность C# – «Partial types» (разделение одного класса на несколько файлов). IntelliSense теперь будет работать не только в файлах, содержащих код, но и в .aspx-файлах.

Обещается, что теперь можно будет создавать приложения, работающие с данными, без единой строчки кода, написанной вручную.

Появилось множество диалогов с настройками редактирования HTML, XML и т.п. данных.

Solution-ы и Проекты

Появилась возможность создавать временные проекты. Эта возможность позволит упростить изучение новых возможностей методом тыка. Создал проект... поэкспериментировал... и пошел дальше. Здорово! Хотя я лично предпочел бы сохранять плоды своих экспериментов. А вдруг потом понадобятся?

Специально для VB6-программистов добавлена упрощенная настройка опций компиляции и меню. Хотя я, честно говоря, хоть убей не могу понять, чего там было упрощать, но видимо нашлось много программистов так и не смогших прейти с VB6 на VB.NET. Кстати, для них улучшен визард, конвертирующий VB6-проекты в VB.NET-проекты (прошлый-то ничего путного сделать не позволял).

Solution-ы теперь позволяют создавать папки (ранее можно было создавать папки только внутри проектов). Это должно упростить создание очень больших Solutions.

Microsoft .NET Build Engine

В состав .NET Framework 1.2, VS.NET 2004 и следующий версии Windows Longhorn будет входить новая утилита «Microsoft .NET Build Engine», или по-простому «MS Build». Она призвана стать заменой морально устаревшей утилите make (nmake в исполнении Microsoft). Эта утилита использует командные файлы в формате XML, и скорее походит на NAnt. Самое приятное, что проекты новой версии VS будут совместимы с MS Build. Так что теперь проблем с компиляцией из командной строки или автономной компиляцией больше не будет.

Отладка

VB теперь поддерживает режим «Edit and Continue». Так что можно поправить код и продолжить отладку, почти как в VB6. В отличие от VC, работает эта возможность довольно шустро, однако не везде (например, были проблемы в generic-коде). Будем надеяться, что эти проблемы исчезнут к релизу.

Теперь в режиме отладки (уже во всех языках) доступны расширенные тултипы. Расширенность заключается в том, что у них появились зеленые шарики, при нажатии на которые появляется еще один тултип, в котором отображается детальная информация о содержимом предыдущего объекта. Распахивать тултипы таким образом можно очень долго, особенно если имеются циклические ссылки. Если кликнуть по данным, то прямо в этом тултипе появляется текстовое окно позволяющее изменить значение данных. В общем и целом очень удобно, но малость подглюкивает. Перед установкой новой версии VS у меня стояли нестандартная схема для Windows XP... Новые тултипы напрочь отказались работать корректно вместе с ней. Пришлось снести... схему. :) С «родными» схемами Windows XP тултипы работали корректно.

В окнах типа Watch появилась возможность просматривать строковые значения в отдельных окнах. При этом можно просматривать текст в виде простого текста, XML или HTML. Для отображения используется IE.

Появился некий «Extensible Framework for Viewing C# Data in the Debugger». По всей видимости, имеется в виду возможность наподобие той, что существовала в VC начиная с версии 6, позволяющая указывать среде, как отображать в тултипах тот или иной тип данных. Очень полезная возможность. Жаль только, что найти полноценного описания того, как это можно сделать, я так и не смог.

Упростилась удаленная отладка. Теперь на удаленную машину достаточно скопировать один файл. Стала возможной удаленная отладка 64-битных приложений (как managed-, так и обычных).

Улучшена поддержка managed-отладки. В чем это заключается, я так и не заметил, но говорят, что улучшена поддержка серверов символов и повышено качество диагностических сообщений.

Теперь можно получать и исследовать мини-дампы, содержащие managed-код.

Так же произошла реинкарнация окна Immediate из VB6. Правда, C# и VB.NET от этого не стали интерпретируемыми, так что перед тем как вызвать из редактора тот или иной метод, нужно скомпилировать проект. :)

Deployment

Видимо разработчики одного из подразделений нашли фатальный недостаток в Windows Installer Microsoft – его писали не они! И сразу же решили его исправить. Результатом их самоотверженного труда стала новая технология «ClickOnce Deployment» (Deployment одним кликом). Предполагается, что, используя эту технологию, можно будет устанавливать приложения с сети (локальной или Internet) одним кликом мыши. В общем, устанавливать вирусы будет еще проще. :)

Теперь вы сможете включать дополнительные необходимые компоненты вроде .NET Framework в состав своих пакетов установки, что еще больше усилит эффект от технологии ClickOnce Deployment.

Automation

Множество изменений внесено в automation-модель VS. Например, теперь add-in для VS.NET можно описывать в простых файлах регистрации, основанных на формате XML. Для подключения add-in-а достаточно будет скопировать файл регистрации в одну из папок VS, и она автоматически подхватит add-in.

Вряд ли стоит в обзорной статье описывать все изменения automation-модели, так как она интересна только тем, кто намерен самостоятельно расширять возможности VS.NET.

Help

Улучшен HTML-Help. Теперь поиск вынесен на отдельную страницу, и в нем можно искать как по локальной БД, так и онлайн.

По умолчанию HELP теперь открывается в отдельном окне.

Docking окон

Когда я впервые увидел как работает (как ее назвать-то по-русски?... стыковка, что ли?) стыковка окон, я, откровенно говоря, испугался. Стоило потянуть прикрепленное сбоку окно, чтобы перетащить его на другое место, как окно стало полупрозрачным, а со всех сторон экрана начали появляться странные предметы (см. рисунок 3). Когда я пришел в себя, то понял, что это новая система стыковки окон. После небольшого привыкания оказалось, что пользоваться ею очень удобно, так как точно известно, куда нужно подвести курсор мыши, чтобы приклеить окно в нужное место.


Рисунок 3. Docking окон

Поддержка новых продуктов Microsoft

VS.NET 2004 поддерживает все новые продукты Microsoft, от уже вышедшего офиса 2003 до выходящей параллельно с VS новой версии MS SQL Server 2004 (кодовое название Yukon) и даже Windows Longhorn (выход которой запланирован на 2005-2006 год).

Заключение

Понятно, что в такой маленькой статье тяжело сделать серьезной обзор такого мощного продукта, как VS.NET 2004 (Whidbey), но думаю, общее представление о нововведениях вы получили. Так, у меня ушло не более пяти минут на то, чтобы создать на C# хранимую процедуру для Юкона, и примерно столько же, чтобы создать собственную панель управления для новой версии Windows Explorer из Longhorn-а.

Стоит ли ждать этого продукта? У меня нет ни единого сомнения – стоит! Вместе с .NET Framework 1.2 и благодаря великолепной интеграции с новыми продуктами VS.NET 2004 позволит существенно поднять продуктивность разработки.


Эта статья опубликована в журнале RSDN Magazine #6-2003. Информацию о журнале можно найти здесь
    Сообщений 19    Оценка 135        Оценить