ОБЗОР

Visual Studio .Net предлагает новые концепции разработки приложений, но и другие производители по-прежнему в игре

Когда видишь танцующего медведя впервые, удивляешься одному тому, что он умеет танцевать, и не обращаешь никакого внимания на то, что он время от времени наступает на ногу партнеру. То же можно сказать и о пакете Visual Studio .Net, который после казавшегося бесконечным ожидания корпорация Microsoft наконец-то выпустила в феврале нынешнего года. “Танцует” он совсем даже неплохо, разве что слегка - спасибо и на этом - царапает вам ноги. Переломов, по крайней мере, мы пока не замечали.

Microsoft взялась за решение довольно сложной задачи. Она намерена сделать разработку распределенных Web-сервисов и элементов невизуальных серверных приложений столь же простой, как разработка приложений для автономных ПК на языке Visual Basic. В результате предпринятых усилий появился продукт, который нельзя назвать просто следующим поколением средств “редактирования, трансляции, отладки, повторения и отслеживания версий”.

Являясь не столько комплектом разработчика, сколько порталом .Net, новый пакет интегрирует доступ к Web-сервисам и хостам

Visual Studio .Net выпускается в нескольких вариантах, с особенностями которых можно ближе познакомиться по адресу: www.eweek.com/links.

В настоящем обзоре мы рассмотрим только общие функции редакции Professional Edition (цена - $1079) и двух версий для предприятий - Enterprise Developer ($1799) и Enterprise Architect ($2499), оставив без внимания средства тестирования приложений, управления жизненным циклом и визуальной разработки на основе языка Unified Modeling Language, входящие в пакеты класса Enterprise. Отметим только, что за $109 можно приобрести стандартные версии Visual Basic .Net, Visual C++ .Net и Visual C# .Net.

Краткое описание функций, конечно же, не может дать полного представления об этом продукте. Если в 90-х годах интегрированная среда представляла собой транслятор с прилагаемыми к нему инструментальными программами, то в эпоху Web-сервисов интегрированную среду можно охарактеризовать как Интернет-портал, а инструментарий разработки превратился в один из предлагаемых этим порталом ресурсов.

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

Программисты, которые решат проверить новый инструментарий в работе, захотят конечно же разобраться во всех “инь” и “янь” новинки. Во-первых, их заинтересует, сможет ли Visual Studio .Net делать то, что им нужно, а во-вторых - не заставит ли делать то, что им не нужно. Чтобы ответить на эти вопросы, нам пришлось по-новому отнестись к процедуре тестирования.

Добро пожаловать в новый мир!

Среда Visual Studio .Net выполнена в том же “браузерном” стиле, что и среды JBuilder корпорации Borland Software и JDeveloper корпорации Oracle. Вход в нее производится через базовую страницу. Когда вы приступаете к новому проекту, Visual Studio .Net предлагает выбрать тип проекта. Список включает как самые современные приложения C# и Web-сервисы, так и консольные приложения. Последние и поныне оказываются порой наилучшим средством проверки возникающих идей или разрешения несложных проблем, поэтому возможность их применения нас порадовала.

Как и в упомянутом выше инструментарии других производителей, базовая страница не только предлагает меню доступных локальных ресурсов, но и служит ненавязчивым наставником. Впрочем, забудем о “ненавязчивости”. Зачем оставаться программистом-одиночкой, когда вполне можно войти в онлайновое сообщество, получить доступ к библиотекам кодов, новостным группам единомышленников, онлайновым семинарам и (в истинном духе Windows XP) оказаться на расстоянии одного щелчка от избранных коммерческих поставщиков компонентов .Net?

Еще больше динамизма придают базовой странице ссылки под названием XML Web Services и Web Hosting. Первая из них позволяет произвести регистрацию сервисов в реестрах UDDI (Universal Description, Discovery and Integration - стандарт универсального описания, обнаружения и интеграции Web-сервисов), а вторая предоставляет бесплатную учетную запись на “полигонах” поставщиков услуг хостинга. Правда, нельзя не отметить, что UDDI-регистрация, производимая с помощью XML Web Services, требует использования паспорта Passport. После этого разработчики могут протестировать свой продукт под нагрузкой, воспользовавшись компонентом Application Center Test (Тестовый центр приложений), который включен в версию Enterprise (его мы не проверяли).

В своей новой реинкарнации .Net язык Visual Basic стал удивительно похож на Java. Он, в частности, допускает виртуализацию имен функций (функция с одним и тем же именем сможет принимать разные наборы входных параметров), а вместо мало что говорящих конструкций типа On Error Go To (при ошибке перейти к...) использует структурированную обработку ошибок с конструкцией типа Try... Catch... Finally.

При разработке Web-сервисов нужно постоянно быть готовым к использованию языковых средств высокого уровня - они могут потребоваться в любой момент для обнаружения и обработки непредвиденных ситуаций.

Любители программировать на Visual C++ в среде .Net обнаружат, что в новом пакете на функцию времени и даты отведено 64 бита, благодаря чему календарные расчеты здесь можно производить вплоть до 3000 г. К сожалению, абстракция средств безопасности и криптографии в классах обновленной библиотеки Visual C++ .Net выполнена не столь успешно - для работы с этими элементами по-прежнему требуется знание интерфейсов Win32API.

А еще пакет обеспечивает поддержку языка C#, призванного решить проблемы, о которых, казалось бы, пора уже - гм! - забыть, так как они были решены в Java еще шесть лет назад. Впрочем, Microsoft надеется, что вскоре начнется всеобщий переход с Java на C#, и путь для этого должна проложить предлагаемая отдельно утилита языкового преобразования Java Language Conversion Assistant. Однако здесь есть одно существенное “но”. Среды Java-разработки, с которыми мы сталкиваемся в последнее время, способны до того разочаровать программистов, что желания пробовать что-то из этой серии (т. е. Visual Studio .Net) может и не возникнуть.

От кодов - к программе

Среда разработки Visual Studio .Net постоянно пыталась анализировать то, что мы делали, и предлагать нам те ресурсы, которые могли понадобиться на следующем этапе работы. Однако ситуации при этом иногда возникали довольно странные. Вот лишь один пример. Когда мы, чтобы создать соответствующую форму, перетащили пиктограмму существующего графического элемента управления из инспектора классов в прилегающее к нему окно исходного текста, редактор кода сгенерировал идентификатор этого элемента, попросту не поддающийся команде Rebuild. В результате нам пришлось удалить из начальной части идентификатора элементы квалификационного префикса - только после этого мы получили интуитивно понятную ссылку на новый объект, которую в общем-то и должен был создать механизм буксировки с самого начала.

Редактор исходного текста, включенный в Visual Studio .Net, в отличие от такой же утилиты Oracle JDeveloper, не способен передавать данные в разработчик визуальных форм. Когда мы изменяли исходный текст, определивший размер и форму экранной кнопки, Form Designer принимал это во внимание, однако связь между ним и сгенерированным кодом была односторонней. Коды, описывающие управление визуальными формами в Visual Studio .Net, как будто предупреждают: “Не тронь меня!”.

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

Не думаю, что мы отнеслись к столь непонятным маневрам чересчур пристрастно. Если подобные проблемы возникают даже тогда, когда взаимосвязи прослеживаются довольно легко, то что говорить о сложных проектах? Я, скажем, не стал бы полагаться на способность Visual Studio .Net отслеживать ход сколь-нибудь нетривиального проекта.

И действительно, в более масштабных проектах начинают быстро проявляться слабые стороны инструментария, и он далеко не всегда способен удовлетворить требования компании. Visual Studio .Net создавалась для тех, кто работает в мире XML, поэтому редактор схем этого языка, казалось бы, должен входить в число самых сильных сторон этой среды. Однако, когда мы воспользовались этим инструментарием для анализа одной из XML-схем, включенных в саму эту среду, результат нас разочаровал.

Для построения визуальной карты схемы, содержащей более 4900 строк текста XML, нашей экспериментальной системе на базе Pentium III с рабочей частотой 1 ГГц понадобилось почти три минуты. Когда же мы начали активно перемещаться по этой карте, загруженность процессора быстро поднялась до 80%, а вентилятор системы охлаждения жалобно взвыл. Прямо скажем: слышать стоны изнывающей от перегрузки машины нам приходится нечасто.

Окно обзора схемы Schema Overview редактора XML при анализе этого файла оказалось совершенно неэффективным. На нем отображалась такая длинная горизонтальная полоса иерархических деревьев, что на каждый элемент карты приходилось не больше одного-единственного ряда пикселов.

Редактирование ординарного исходного текста выглядит в новом пакете так же, как и в прежних средах Visual Studio: его редактор все еще лишен таких удобных функций, которые предлагают программистам KEdit фирмы Mansfield Software Group, Visual SlickEdit фирмы SlickEdit и другие подобные продукты. Нам, скажем, так и не удалось найти способа вывести на дисплей только строки, имеющие определенную структуру. Конечно, можно было воспользоваться командой Mark All, чтобы пометить все строки, отвечающие заданному условию, а затем переходить от одной выбранной строки к другой с помощью команд Next Mark (Следующая метка) и Previous Mark (Предыдущая метка). Однако такой процесс занимал намного больше времени, чем ушло бы на просмотр всех нужных строк в одном окне.

Не уверены мы и в том, что Visual Studio .Net сможет в полной мере отвечать самым строгим требованиям к надежности корпоративного инструментария разработки. Так, когда мы попытались установить новый продукт на рабочую станцию под Windows 2000, зайдя в систему в качестве администратора, инсталлятор потребовал от нас присвоить текущему пользователю привилегии администратора. Но и это не помогло: все стадии обновления компонентов завершались синим экраном зависшей системы. Избавиться от него помог только повторный вход в систему в качестве администратора, после чего мы смогли закончить операцию.

А один раз мы получили сообщение об ошибке, когда попытались загрузить образец кода проекта, хотя повторная попытка прошла без сучка без задоринки. Подобные ситуации раздражают даже при работе с обычными приложениями, но когда имеешь дело с инструментарием разработки, столь острые его углы вызывают просто-таки нервную дрожь.

Но как бы то ни было, медведь все же танцует.

Познакомиться с Visual Studio .Net наверняка захотят не только многие разработчики, но и другие производители инструментария разработки приложений, которые стремятся держать руку на пульсе амбициозных проектов по развертыванию Web-сервисов. А недоработки Microsoft, открывающие простор для улучшения среды, должны только подстегнуть интерес к этому продукту, так как предоставляют возможность другим производителям заполнить оставшиеся бреши. 4

С редактором eWeek Technology Питером Коффи можно связаться по адресу: peter_coffee@ziffdavis.com.

Резюме для руководителей

Visual Studio .Net

Помощь, которую оказывает эта долгожданная среда в разработке и развертывании Web-сервисов, просто не может не привлекать внимания к новому продукту Microsoft. Им должны заинтересоваться даже конкуренты в области подобного инструментария - хотя бы для того, чтобы оценить недостатки и слабые места Visual Studio .Net, открывающие возможность создания альтернативных вариантов, более приспособленных для предприятий.

КРАТКОСРОЧНЫЙ ПРОГНОЗ. Не стоит даже пытаться осваивать все возможности новинки сразу. Внимания здесь заслуживает каждый элемент - обновленный Visual Basic, C#, API безопасности, интегрированный инструментарий моделирования. А все вместе они дают просто колоссальный эффект. Чтобы полностью реализовать весь потенциал Visual Studio .Net, нужно разработать технологические планы достижения корпоративных целей, а затем приступать к поэтапному освоению новинки Microsoft.

ДОЛГОСРОЧНЫЙ ПРОГНОЗ. Главную концепцию нового продукта можно выразить так: разработчики должны учиться составлению “параноидального” кода. На смену автономным приложениям для ПК должны прийти безопасные и отказоустойчивые распределенные приложения на базе Web-сервисов. А в таких условиях оценка и применение соответствующих инфраструктур становятся не менее важными, чем изучение C# или освоение мельчайших деталей .Net Framework.

( + ) Впечатляющая способность повышать квалификацию разработчика по мере создания все новых Web-сервисов.

( - ) Сложность освоения нового инструментария безопасности; не все то, что хорошо показывает себя при демонстрации, можно реализовать в масштабных проектах.

Корпорация Microsoft, Редмонд, шт. Вашингтон, (800) 426-9400, msdn.microsoft.com/vstudio/.