Visual Basic, .NET, ASP, VBScript
 

   
 
Описание для автора не найдено
 
     
   
 

Написать этот текст меня сподвигла статья Виталия Гриненко "Моё первое впечатление о VB7" [1]. Это одна из немногих статей о .NET на сайте vbnet.ru, и резко негативная по отношению к новой технологии. Мне хотелось бы выразить свое, причем совсем не первое впечатление о продукте, который так резко "охаяли". Я прошу Виталия не воспринимать мою статью как выпад в отношении его лично или его профессионализма.

Статью В.Гриненко можно разделить на три части. Это впечатления об установке Visual Studio .NET, впечатления от интерфейса и впечатления от переноса простейшей программы из VB6 в VB.NET. Как мы видим, в целом все впечатления - негативные. Проблемы при установке, непривычный ("сишный") интерфейс, какой-то лишний код появившийся при переносе, ну и конечно безрадостные перспективы... Попробуем разобраться.

Сначала о терминологии

В статье Виталия используются слова VSN, VN и даже  VB-VN. На мой взгляд, всегда стоит придерживаться общепринятых сокращений: 
VB Visual Basic (как некое семейство продуктов)
VS Visual Studio
VB6 Visual Basic версии 6, входит в состав Visual Studio 6
VB.NET Visual Basic .NET (иногда также применяют сокращение VB7)
VS.NET Visual Studio .NET

Далее, как мне кажется, основная ошибка в том чтобы при переходе к VB.NET рассматривать этот переход ТОЛЬКО в контексте VB. Этот контекст здесь занимает далеко не основное место (хотя у VB-программиста и возникает желание сделать его основным). Начинать надо с того что .NET - это новая платформа, т.е. новая среда исполнения приложений. Эту среду обеспечивает .NET Framework, который сейчас поставляется в виде отдельного инсталлятора, а скоро будет вообще входить в состав Windows (в частности, в готовящуюся к выпуску Windows NET Server).

На данный момент практически нет приложений, целиком написанных на .NET, но думаю что скоро они появятся (одна из первых ласточек - появление драйверов для Matrox Parhelia, интерфейс пользователя к которым написан на .NET - см. [5]). Вероятно, со временем большая часть стандартных приложений Windows будет переписана под .NET...

Новая среда исполнения предлагает свою библиотеку - своего рода API - Common Language Runtime (CLR). (Не берусь судить насколько она хороша или плоха, ибо нахожусь в процессе ее изучения.) Требования к компиляторам с языков программирования, с которыми нам нужно работать, заключаются в том чтобы они компилировали исходный код в Microsoft intermediate language (MSIL) и использовали CLR (если говорить точнее, каждый такой компилятор должен соответствовать Common Language Specification - CLS).

Получается, что на каком бы языке ты не писал, ты пользуешься одними и теми же библиотеками, составляющими CLR. Тем самым языки значительно сближаются: различия сводятся по сути лишь к набору абстракций, предлагамому языком, и синтаксису. Перенос программ между языками значительно упростится, переход от одного языка к другому для самого программиста - тоже. В настоящее время этот ряд языков составляют VB.NET, C#, C++, JScript и J# - все это от MS, плюс к тому - продукты сторонних производителей.

Таким образом, VB в .NET теперь выступает лишь в качестве одного из множества языков. В Microsoft его постарались сделать похожим на VB6 настолько, насколько это только возможно. Очевидно, это преследует цель облегчить как переход от VB6 к VB.NET для программистов, так и перенос написанного на VB6 кода. Кстати, под влиянием общественности MS сохранила в VB.NET некоторые особенности, от которых собирались избавится (например, в VB.NET сохранено полное вычисление условных выражений - многим не понравилось что в бета-версиях части логических выражений вычислялись как в C/C++ - по необходимости).

Установка Visual Studio .NET

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

Прежде чем запускать инсталлятор, убедитесь что ваша машина потянет этот продукт. Не скажу точно, но думаю что 600MHz-процессор и 256Мб памяти - это минимальные требования для комфортной работы. Приготовьте порядка 1.5-2Гб на винчестере под VS и MSDN. Не стоит ставить VS.NET на Windows 98 (не уверен что это вообще возможно, да и Windows 98 уже несколько "мала" для такой машины).

Весь процесс установки занимает один час. Сначала - Component Update с диска  #5 - обновление ОС и приложений, установка .NET Framework. Советую все необходимые Service Pack'и поставить ручками до установки VS.NET. Сам процесс установки на моей памяти всегда проходил довольно гладко.

Не беспокойтесь за старый добрый VB6 - после установки VB.NET обе среды нормально работают как вместе так и отдельно.

Интерфейс VS.NET

Microsoft давно стремилась унифицировать интерфейс различных сред разработки в нечто единое. В VS6 к этому ближе всего подошла среда Visual InterDev. Теперь же, когда среда должна позволять редактировать в разных окнах код на разных языках, вообще не имеет смысла делать для них различные IDE. Неприятность заключается в том что среда разработки стала намного тяжелее. Кроме того она еще и довольно таки прожорлива по отношению к памяти (причем отдавать память она тоже не очень стремится, в результате чего работающая несколько дней MS Development Environment может забрать под себя всю доступную память).

Несмотря на некоторую задумчивость в работе, можно сказать что среда разработки стала удобнее. Скользящие окошечки быстро надоедают, но все это легко настраивается под себя, набор опций также весьма обширен. Работать с проектом в команде тоже стало гораздо приятнее - интеграция с Visual SourceSafe сделана лучше чем в VB6.

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

В целом, на мой взгляд, в новой среде писать и отлаживать приложения удобнее, если конечно ваша машина ее потянет.

VB.NET-приложение

Возвращаясь к статье Виталия - что же у нас получилось при переносе простейшего приложения? Авторский код (те семь строк что написал Виталий) на самом деле остался неизменным. В vb-файл добавилось два региона ("Windows Form Designer generated code" и "Upgrade Support"), которые обычно закрыты и не видны при редактировании. Как нетрудно заметить, первый регион описывает создание контролов и задание их свойств (а также свойств самой формы). Дизайнер показывает этот самый код в графическом виде, и позволяет графически же его редактировать. То есть теперь нет frm-файлов - облик формы описывается в виде команд в одном файле с кодом.

Такой же подход принят, например, в библиотеке Swing для Java - там тоже облик формы описывается в виде кода. Чем это лучше? Да тем что вы теперь четко контролируете, что именно вы нарисовали, и можете все поправить ручками.

Что касается второго региона ("Upgrade Support") - очевидно что он появился только из-за того что программа была перенесена из VB6. Если создать такое же приложение прямо в среде VB.NET, этого региона просто не будет.

Распространение .NET-программ

Чтобы ваша программа, написанная под .NET, работала на другой машине, вовсе не нужно тащить за ней VS.NET. Достаточно установить туда .NET Framework и компоненты, специфичные для вашей программы. Объем .NET Framework версии 1.0 - 21Мб (а вовсе не сотни мегабайт - по словам Виталия). Последний Service Pack для .NET Framework (это SP2) имеет объем 6.7Мб. При желании можно интегрировать .NET Framework в инсталлятор вашей программы.

Заключение

Переход на .NET очень напоминает мне (и не только мне, кстати - см. [4]) переход от DOS к Windows несколько лет назад. Нас ждут примерно те же самые проблемы и задачи:
- смена програмного окружения;
- смена концепций;
- смена среды разработки;
- изучение нового API большого объема;
- изучение нового языка.

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

VB6 был и остается отличным средством создания приложений. Очевидно, что переход к новой платформе будет совсем не резким и затянется на много лет. В настоящее время (насколько я могу видеть) из всего что предлагает .NET используется в основном ASP.NET (как мощная замена ASP для написания веб-приложений) и Web Services (как средство интеграции приложений).

Что будет дальше - посмотрим...

Post Scriptum

Судя по второй статье Виталия (см. [3]), он вовсе не ярый противник VB.NET, как мне показалось вначале. Скорее - очень (может быть даже - слишком) ярый сторонник VB6. Анализ писем, пришедших в ответ на первую статью Виталия, ярко выражает тот  факт, что в России о .NET знают мало. Можно сказать - практически вообще не знают. И это - действительно печально...

Ссылки

[1] Гриненко Виталий, Моё первое впечатление о VB7
[2] Платт Дэвид С. Знакомство с Microsoft .NET
М.:"Русская редакция", 2001.
[3] Гриненко Виталий, Мое второе впечатление о VB7
[4] Андрей Колесов, Ольга Павлова, Заключительные cоветы тем, кто программирует на VB & VBA
Совет 448. Готовьтесь к VB .NET

[5] Дмитрий Чеканов, Matrox Parhelia

 
     

   
   
     
  VBNet рекомендует