Корпорацией Microsoft в рамках форума IDF-2003 были представлены перспективные средства разработки программного обеспечения, выпуск которых запланирован на ближайшие несколько лет. В данных средствах использованы новейшие компьютерные технологии, позволяющие повысить надежность программного обеспечения и снизить уровень трудозатрат.
В октябре 2003 г. в Москве состоялся форум IDF (IDF — Intel Developer Forum). Он проводится в форме выездных сессий в ведущих странах мира два раза в год — весной и осенью. IDF является крупнейшим международным форумом разработчиков аппаратного и программного обеспечения, где признанные специалисты отрасли обсуждают перспективные направления, а также анализируют возможности существующих и будущих технологий.
В рамках московского форума IDF специалистам было предложено несколько направлений: научные исследования и разработки, аппаратное и программное обеспечение, коммуникационные и мобильные технологии, решения для предприятий. Следует отметить, что в России традиционно огромное внимание уделяется теме разработки программного обеспечения. В связи с этим представитель компании Microsoft Алексей Федоров, менеджер направления .NET по связям с разработчиками программного обеспечения, прочитал специальную лекцию, посвященную будущим технологиям и продуктам для разработчиков.
Он представил планы Microsoft на ближайшее будущее и довольно подробно рассказал об ожидающемся в скором времени продукте для разработчиков Visual Studio Whidbey.
Рис. 1. Текущие планы Microsoft на ближайшие два года |
Сегодня компания Microsoft активно предлагает системы, в которых нашли применение новейшие компьютерные технологии, ориентированные на разработчиков программного обеспечения: серверная операционная система Microsoft Windows Server 2003 и среда разработки Microsoft Visual Studio .NET 2003. Эти средства появились на рынке летом 2003 г. Осенью же был представлен новый пакет офисных программ Microsoft Office 2003, а чуть позже в соответствии с многочисленными анонсами появился набор средств для создания офисных приложений VS+Office и набор расширений для создания веб-сервисов — Web-Services Enhancements 2.0. В конце 2004 г. ожидается появление на рынке очередной версии Visual Studio и нового SQL Server. В данный момент они известны специалистам под кодовыми именами Whidbey и Yukon соответственно. А спустя примерно два года на свет появится еще одна операционная система семейства Windows, известная в настоящее время под именем Longhorn. Затем планируется выпуск версии среды Visual Studio (Orcas), которая будет использовать всевозможные новшества и преимущества новой ОС (рис. 1).
Visual Studio Whidbey
Прежде чем описывать достоинства данного продукта корпорации Microsoft, следует напомнить, что семейство средств Visual Studio служит универсальным инструментом разработки системного и прикладного программного обеспечения. Доступную бета-версию Visual Studio Whidbey анонсы обещают уже летом. Официальный выход окончательной версии запланирован на четвертый квартал 2004 г., хотя, по мнению некоторых специалистов, не исключена задержка до первого квартала 2005 г.
Как ожидается, продукт позволит повысить качество создаваемого кода, сократив при этом время на разработку и максимально автоматизировав ряд рутинных процессов.
Его основные характеристики:
- новая функциональность в среде разработки;
- нововведения во всех четырех языках программирования (C#, J#, VB.NET, Cи++) и расширения в самом .NET Framework;
- интеграция с SQL Server Yukon;
- расширенная поддержка Office System, решения для корпоративных приложений.
Новая функциональность в среде разработки
Как известно, удобство среды разработки — IDE (Integrated Development Environment) — является чрезвычайно важным фактором при выборе соответствующей платформы. Создатели IDE для новой версии Visual Studio постарались расширить функциональность, максимально увеличив повторное использование программного кода и минимизировав число допускаемых при его написании ошибок.
Одним из наиболее существенных изменений в среде разработки VS Whidbey стала возможность использования шаблонов простейших языковых конструкций (рис. 2).
Рис. 2. Пример использования шаблона для цикла foreach |
Пользователь новой версии, нажав всего несколько клавиш, получает готовый фрагмент кода. Названия переменных, которые входят в конструкцию и подвергаются изменению, выделяются желтым цветом. Перемещаться по ним можно с помощью клавиш
Однако этим разработчики перспективной системы не ограничились. Новая среда разработки позволит также вставлять целые фрагменты заранее подготовленного кода. Планируется, что для каждого языка программирования будет изначально создано до 800 различных заготовок часто встречаемого кода: открытие файла, создание сетевого соединения, отправка электронной почты и многое другое. Этот список может быть расширен пользовательскими фрагментами. Таким образом, коллективы разработчиков, создавая шаблоны для наиболее часто применяемых фрагментов, будут оперировать ими, вместо того чтобы каждый раз писать код вручную. Очевидно, что чем больше готовых фрагментов используется, тем меньше вероятность ошибки. Соответственно уменьшается время на тестирование, отладку и исправление ошибок. Что же касается трудозатрат, то компания Microsoft прогнозирует снижение трудоемкости разработки на 50% за счет сокращения рутинных операций, связанных с ручным набором кода.
Рис. 3. Выбор фрагмента |
Пример вставки фрагмента кода записи текста в файл представлен на рис. 3 и 4. В приведенном примере необходимо лишь указать текст и имя файла. Весь остальной код уже готов.
Рис. 4. Работа со вставленным фрагментом |
Следует отметить, что при написании кода нередки обычные синтаксические ошибки, которые впоследствии довольно трудно исправлять. Для минимизации риска появления опечаток в новой среде будет предусмотрена специальная автоматическая коррекция текста для проверки синтаксиса и нахождения наиболее часто встречающихся ошибок. Ее функциональность напоминает проверку орфографии в продуктах Microsoft Office. В дополнение к стандартному анализу результатов компиляции пользователю будет предлагаться список возможных вариантов исправлений (рис. 5).
Рис. 5. Работа механизма проверки синтаксиса |
Несомненно, будущие пользователи оценят в новой системе такую возможность, как улучшение существующего кода (refactoring), что облегчает анализ и упрощает его модификацию. В частности, система предоставляет следующие возможности:
- Выделение фрагментов кода в пользовательские функции (рис. 6 и 7). Для этого необходимо лишь выделить требуемые строки кода, выбрать соответствующее меню и написать название новой функции. Все остальное будет сделано автоматически.
- Переименование функций, переменных, классов и т. п. Есть возможность указать режим замены в комментариях. Процесс можно контролировать, для чего предназначено окно с предлагаемым списком для переименования (рис. 8).
- Добавление и/или изменение порядка следования параметров в функциях. При этом вызовы данной функции будут соответствующим образом откорректированы.
- Выделение интерфейса, наследование и многое, многое другое.
Рис. 6. Выбор кода для выделения в отдельную функцию |
Рис. 7. Полученный результат |
Рис. 8. Окно подтверждения переименования |
Следует признать, что при достаточно сложной структуре приложения разработчику нередко придется вмешиваться в процесс рефакторинга и вносить исправления вручную. Но, как считают создатели данной системы, перечисленные возможности рефакторинга минимизируют роль программиста в стандартных операциях.
Новые функциональные возможности среды разработки затронули и механизм обработки исключений. Если код, написанный разработчиком, не является безопасным (exception-safe), то выводится подсказка, подробно описывающая, какие именно исключения рекомендуется обработать и почему. Например, при чтении из файла необходимо обработать исключение, возникающее при отсутствии файла, а при работе с базами данных следует проверять наличие соединения. Таким образом компания Microsoft пытается бороться с появлением на рынке недобросовестно сделанных программ, которые, не обрабатывая исключения, неправильно функционируют при каких-то нестандартных условиях, например при неожиданных разрывах соединений.
В дополнение к перечисленному необходимо отметить следующие особенности Visual Studio: наличие встроенного редактора XML-файлов, усиление связей элементов управления и баз данных, расширение режима визуального редактора (Design Mode), поддержка разработки приложений на базе Microsoft Office (Word, Excel, PowerPoint).
Языки программирования
Что касается языков программирования, то, начиная с версии 2003 г., в поставку Visual Studio входят четыре их представителя: C#, J#, Visual Basic и Cи++. Все они претерпят довольно существенные изменения. Описание нововведений и особенностей может быть темой отдельной статьи, здесь же уместно затронуть только самые важные.
В Visual Basic появится пространство имен My, предоставляющее централизованный доступ к ключевым функциональным возможностям. Основные элементы, которые входят в пространство имен My:
- Application - заголовок, версия, описания и т. д.;
- Computer - реестр, принтер, аудио, файловая система..;
- User - имя, группа, домен...;
- Resources - ресурсы проекта, пиктограммы, картинки, строки...;
- Settings - настройки системы, пользователя и приложения;
- Forms - доступ к коллекции форм приложения;
- WebServices - список всех используемых веб-сервисов.
Благодаря My существенно сократится объем кода. Буквально двумя строчками решаются наиболее часто встречаемые задачи. Например, для того чтобы воспользоваться принтером, потребуется уже не два десятка строк кода, как это было раньше, а всего шесть-семь.
В языке C# существенно переработан компилятор, добавлены новые настройки и ключи вызова. Важным дополнением в самом языке станут обобщения (generics), которые позволяют на время забыть о конкретных типах. Таким образом, можно будет создавать классы, подобные следующим:
public class Stack{ ItemType[] items; public void Push(ItemType item) { // ... } public ItemType Pop() { // ... } //... }
Использовать же эти классы можно, например, так:
Stackstack1 = new Stack (); Stack stack2 = new Stack ();
Данные обобщения по описанию и использованию очень похожи на шаблоны в языке Си++. Однако необходимо отметить, что обобщения не являются шаблонами. Они в C# не поддерживают специализацию, значений по умолчанию, а также использование обобщений иных обобщений и многое другое.
Следует подчеркнуть, что обобщения есть и в языках Cи++ и Visual Basic. Пока их нет в J#, но существует возможность использования уже созданных с помощью других языков.
В языке Си++ добавлена возможность оптимизации под названием Profile-Guided Optimizations, которая анализирует создаваемый исполняемый файл на предмет того, каким именно образом вероятнее всего он будет работать. Здесь присутствуют распределение регистров, метод встраивания функций. Часто используемые и малоиспользуемые фрагменты помещаются в отдельном месте исполняемого модуля. Существуют режимы оптимизации по времени исполнения и по занимаемому объему исполняемого кода приложений для систем команд процессоров x86, Itanium (IPF) и AMD64.
В языке J#, как ожидается, будет поддерживаться модель CLS Extender, т.е. в J# можно будет не только использовать CLS-совместимые библиотеки, но и создавать их. Также в J# будет реализована поддержка JavaDoc через XML.
В самой платформе .NET Framework планируется несколько существенных изменений, а именно:
- поддержка 64-разрядных архитектур;
- повышение производительности - общая скорость, время старта, обработка XML;
- улучшенная система безопасности;
- новые возможности администрирования приложений, созданных на ASP.NET;
- расширения для веб-сервисов;
- поддержка SQLCLR (Yukon);
- свыше 40 новых компонентов для ASP.NET (мастер страницы, управление ролями, персонализация, навигация и многое другое);
- новые классы (например, FTP, доступ к портам);
- визуальные стили XP (управление визуализацией на уровне свойств).
Поддержка SQL Server
Следующая версия SQL Server под кодовым названием Yukon будет сильно отличаться от своих ранних версий. Среда исполнения CLR (Common Language Runtime) будет интегрирована в СУБД. Благодаря этому хранимые процедуры, сценарии, запросы к базе данных можно будет писать на таких языках, как C# и Visual Basic.
В новой Visual Studio будет реализована тесная интеграция с новым SQL Server. Работа с базами данных сводится к созданию проекта SQL Server Project (рис. 9). Затем в проект можно добавлять хранимые процедуры, триггеры, пользовательские типы и т. д. Далее, например, процедура пишется не на TSQL, а на C#.
Рис. 9. Создание проекта работы с БД |
При добавлении новой хранимой процедуры программой-мастером будет создан следующий класс:
public class CStoredProcedure1 { [SqlProcedure] public static void StoredProcedure1 () { // Put your code here } };
В связи с этим появляется много новых преимуществ. В некотором смысле работа с SQL переходит в совершенно иную фазу. Запросы можно будет писать на языках C# или Visual Basic, которые намного богаче традиционного TSQL и предоставляют разработчикам новые, ранее нереализуемые возможности. Специалисты считают также, что с переходом от TSQL к языкам платформы .NET существенно увеличится производительность.
* * *
В заключение следует отметить, что рамки статьи не позволяют рассказать обо всех достоинствах данных продуктов фирмы Microsoft. Однако приведенные примеры позволяют оценить высокий потенциал новых средств, в достоинствах которых в скором времени смогут убедиться отечественные и зарубежные разработчики системного и прикладного программного обеспечения.
В статье использованы материалы IDF Fall 2003 и документы фирмы Microsoft.
Об авторе
Виктор Рудометов (victorr@digdes.com) — разработчик программного обеспечения, Microsoft Certified, компания Digital Design (http://www.digdes.com).