Отличие visual basic от visual studio

Обновлено: 03.07.2024

Основная задача этой темы – научиться читать VB программы. Что под этим подразумевается? Знать точку входа в программу, последовательность ее выполнения, уметь читать программу, соблюдая терминологию программиста.

Терминов в VB не так уж и много – переменная, функция, объект, класс, метод, свойство, коллекция, вызывается, объявляется, присваивается, описывается, создается. Но из них нужно уметь правильно составлять предложения. При этом можно излагать суть программного кода в произвольной интерпретации, но, не выходя при этом за рамки потери смысла. Чтобы не было так. Преподаватель задает студенту вопрос: “ Как работает холодильник?”. Студент отвечает: “Уууууу…”.

Ну, а теперь по порядку. Что такое программирование? Это описание данных и действий над ними. В процедурном или функциональном программировании данные – это переменные; действия – процедуры, функции, операции.

Переменные могут объявляться, им может присваиваться значение. Для процедур и функций может определяться их содержимое, они могут вызываться в программе. Функции, кроме того, что выполняют действия, еще возвращают значение. Поэтому, они могут находиться справа от знака присваивания. Но при этом необходимо знать, что присваивается не функция, а значение, которое она возвращает.

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

VB относится к языкам ООП, в которых данные (свойства) и действия (методы) объединяются (инкапсулируются) в объектах. Объекты могут реагировать на внутренние события (например, деление на ноль) и внешние (передвижение курсора, click мышкой и др.). Т.е., кроме обычных процедур есть процедуры обработки событий, которые могут вызываться через действия пользователя. Здесь в качестве посредника между действиями пользователя и процедурой выступает программная система, которая в зависимости от тех или иных действий вызывает соответствующую процедуру.

Объект – это представитель класса. В классе описываются свойства и методы, через объект они могут быть реализованы. При создании объекта (через оператор NEW) мы можем обращаться к ним. При обращении к методу или свойству обычно через точку указывается имя объекта, к которому они относятся.

Методология ООП наиболее полно отражает реальную действительность. С помощью нее моделируются сущности, которые находят выражение в словаре нашего языка. Некоторые слова могут одновременно определять обобщение (класс) и конкретику (объект). Например, словом «Преподаватель» можно характеризовать как множество людей, так и конкретного человека. В этой теме приведен VB код, где сущность «Преподаватель» формализуется как класс и объект.

Аналогом класса и объекта в традиционном программировании есть, соответственно – типы и переменные. Что между ними общего? С помощью типа (класса) можно создавать множество переменных (объектов). Над переменными (объектами) можно выполнять только определенные действия (операции и методы), которые прописаны в API программной системы (классе).

Предложение, как правило, состоит из подлежащего и сказуемого. Ниже приведена схема наиболее употребляемых терминов в сочетании подлежащего и сказуемого. Она в первом приближении поможет правильно составлять предложения при чтении VB программы.

Начните новый проект в Visual Studio. В окне New Project выберите прототип VB проекта Windows Forms Application.


Программирование в VB делится на 2 этапа – визуального программирования и создания исходного кода.

На первом шаге мы будем визуально программировать в VB. Изначально все должно выглядеть вот так:

Слева расположена панель инструментов (элементов формы). Правее расположена форма – на нее вы перетаскиваете необходимые элементы. Элементы – это объекты, наделенные свойствами и методами. Перенося элементы на форму мы добавляем функциональность в программу за счет использования их свойств и методов.

Справа (сверху) находится окно проводника, в нем указывается список файлов, используемых в проекте. Справа (внизу) находится окно свойств, если вы ничего не меняли, то это должны быть свойства текущей формы. У каждого элемента свои свойства, основные из них: name – имя элемента (используется в коде программы) и text – надпись на элементе.

Перенесите на форму элементы (TextBox и две кнопки Button) и измените свойства Text всех элементов, включая форму (см. рисунок). Cвойства name (Form1, TextBox1, Command1 и Command2), а также другие оставьте без изменений. Теперь ваша форма должна выглядеть так:


Выполните DoubleCliсk на кнопке «Привет», теперь на месте формы перед вами должно появиться окно кода с подготовленным шаблоном подпрограммы, обрабатывающей событие Click:

Добавьте в окне код:

Переключитесь обратно на форму (щелкните мышкой в окне проводника на Form1.vb[Dezign] ) и вставьте код для кнопки «Выход».

Обратите внимание, что имя процедуры обработки событий состоит из 2-х частей, разделенных знаком подчеркивания (_) – свойство name элемента и наименования события. Свойство name элемента есть ключ (идентификатор) для обеспечения взаимосвязи между данными и действиями. С подобным мы встречались при написании программы на языках VLISP и DCL, где данные были отделены от функций. Данные (свойства элементов) и действия (процедуры обработки событий, обычные процедуры, функции) на VB также описываются в отдельных файлах. В отличии от языка DCL на VB описание свойств элементов формируется в файле автоматически – на этапе визуального программирования.

Модифицируйте программу, чтобы текст воспринимался как пароль. В окне свойств поставьте для элемента TextBox1 свойство PasswordChar равным звездочке (*).


Попробуйте прочитать код, соблюдая терминологию.

Существует несколько разновидностей диалоговых окон: нестандартные, встроенные и стандартные. Первые создаются разработчиками, встроенные вызываются функциями InputBox или Msgbox и стандартные окна вызываются методами элементов управления ColorDialog, FontDialog и др.

Создадим программу, которая меняет цвет и шрифт в текстовом окне с помощью стандартных диалоговых окон:

Создайте форму и перенесите на нее две кнопки (Button) и метку (Label). Затем перенесите элементы диалога (объекты ColorDialog и FontDialog) в любое место формы, они отобразятся в нижней части экрана (при запуске программы эти элементы не будут отображаться).

Установите свойства элементов управления в соответствии с таблицей:

Скопируйте листинг программного кода и протестируйте программу.

Стандартное диалоговое окно вызывается методом ShowDialog элемента dlgColor (dlgFont). Свойство Color (Font) элемента lblExample инициализируется при интерактивном его выборе в диалоговом окне.

Контрольный вопрос. Соблюдая терминологию прочитайте фрагменты VB кода:

Создадим простейший графический редактор, позволяющий рисовать (стирать) линии с помощью нажатия левой (правой) кнопки мыши.


Единственным элементом приложения есть сама форма. Установите основные свойства формы в соответствии с таблицей:

Скопируйте листинг программного кода в описание класса frmPaint:

Вначале объявляются переменные (объекты) и создаются объекты. Объекты создаются через вызов функции, которая возвращает ссылку на объект. Ссылка сохраняется в переменной. При создании объектов может использоваться оператор New в сочетании с функцией, имя которой совпадает с именем класса. Такая функция называется конструктор. Ее основная задача – инициализировать через значения параметров свойства объекта.

В приложении обрабатываются следующие события:

  • MouseDown – нажата любая кнопка;
  • MouseUp – отпущена любая нажатая кнопка;
  • MouseMove – указатель мыши переместился.

Событие MouseMove вызывается циклично, пока двигается курсор. В событии MouseDown и MouseUp булева переменная IsDraw меняет значение и этим отключает (включает) режим рисования. Рисование выполняется с помощью метода DrawLine объекта MyG.

В каждую из процедур обработки событий передаются параметры, которые используются для получения а иногда для установки соответствующей информации внутри обработчика события. Так, в процедуре события MouseMove такими параметром есть объект e, свойства которого определяют текущее положение курсора (e.X, e.Y).

В событие MouseDown передается объект e, в свойстве которого (e.Button) сохраняется свойство-константа нажатой клавиши. Обратите внимание на глубину иерархии обращения к этой константе. При обращении к какому-либо свойству или методу указывается вся цепочка вхождений представителей объектов одних классов в описание других классов (см. Агрегация). Такая цепочка вхождений отражает фрагмент организации, так называемой объектной модели программной системы.

Для рисования и стирания используются объекты-карандаши (Pen1 и Pen2), разные по цвету и толщине линий. Стирание реализуется карандашом цвета фона – свойство BackColor объекта frmPaint. Обратите внимание, что около этого свойства имя объекта не указано, поскольку к свойству обращаются в пределах описания класса frmPaint.

Контрольные вопросы:

  • В каком случае переменную можно назвать параметром, объектом или свойством?
  • Соблюдая терминологию прочитайте фрагменты VB кода:

Постановка задачи.


Порядок выполнения работы.

Для отображения текущего результата, а также секундомера будут предусмотрены метки (элементы Label). Для мишени будет использован элемент Picture. Для изображения мишени загрузите картинку в свойство Image элемента Picture.

Моя влюблённость была искренней. Ещё в детстве я учился программировать на языке BASIC. Но не просто на BASIC. Я начинал с потрясающей среды Microsoft под названием QuickBASIC на древней операционной системе DOS. Я всё ещё помню, как набирал белый текст на её бодром голубом фоне.


Для программирования в 1988 году QuickBASIC был волшебной штукой. Можно было писать код без громоздких номеров строк, отлавливать синтаксические ошибки в процессе набора и запускать программы прямиком из среды разработки без необходимости возни с командной строкой. Закончив программу, можно было делиться ею со своими друзьями при помощи вот этих ребят:


В наши дни QuickBASIC остался лишь ещё одной диковинкой из далёкого прошлого. Хотя так ли это? Новаторский проект под названием QB64 создал современную реплику QuickBASIC. Он запускается на Windows, MacOS и Linux, и не требует эмулятора. При запуске программы в QB64 среда выполняет хитрый трюк — сначала она транслирует код на BASIC в C++, а затем компилирует его.

Классический VB и эра Visual

QuickBASIC был впечатляющей средой для далёких дней текстовых компьютерных систем. Но всё изменилось, когда Microsoft выпустила Windows и погрузила пользователей PC в графический мир кнопок и кликов. Одновременно с выпуском компанией Microsoft Windows 3.0 (первой версии, которая добилась истинного успеха), был выпущен Visual Basic 1.0.

Это было нечто совершенно новое. Пользователь мог создавать кнопки для программ, рисуя их на поверхности окна, как на холсте художника. Чтобы заставить кнопку выполнять какое-то действие, достаточно было дважды щёлкнуть на неё в среде разработки и написать код. И код писался не на загадочном C++ с кучами классов, сложным управлением памятью и непонятными вызовами Windows API. Вы как цивилизованный человек писали код на дружелюбно выглядящем VB.


Все эти графические примочки впечатляли, но настоящим секретом успеха VB была его практичность. Попросту не было ни одного другого инструмента, в котором разработчик мог бы набросать полный интерфейс и приступить к кодингу так же быстро, как в VB. И хотя историки любят порассуждать о визуальной части Visual Basic, его неподражаемое умение не имело ничего общего с графическими виджетами. VB стал знаменитым благодаря легендарной функции edit-and-continue, позволявшей разработчикам запускать программы, находить ошибки, исправлять их и продолжать работать с новым кодом. Это разительно отличалось от почти всех остальных известных человечеству сред программирования, вынуждавших разработчиков компилировать работу заново и после каждого изменения начинать снова.

Оригинальный Visual Basic процветал примерно десяток лет. Возникнув как дружественная среда для новичков, он превратился в инструмент, имеющий достаточно возможностей и для серьёзных программистов. К моменту выпуска VB 6 — последней версии классического Visual Basic, в мире по приблизительным подсчётам было в десять раз больше кодеров на VB, чем на суровом C++. И они не просто создавали макеты игрушечных приложений. Visual Basic проложил себе дорогу в офисы компаний и даже в Интернет при помощи ASP (Active Server Pages) — ещё одной чудовищно популярной технологии. Благодаря ей вы могли создавать веб-страницы, способные общаться с компонентами VB, связываться с базами данных и писать HTML на лету.

Всё это происходило практически без структуры, если только вы не решали создать её самостоятельно. Это было неписанное правило Visual Basic — он давал вам свободу, о которой вы потом пожалеете.

Проблема классического VB

Во многих кругах классический VB имел плохую репутацию. Фанатики ООП часто жаловались, что VB недостаёт поддержки наследования. (Это была странная жалоба, ведь наследование часто является отличным способом для неопытных разработчиков выстрелить себе в ногу — именно этой особенности VB не требовалось.) На самом деле, классический VB не имел склонности к объектно-ориентированности. К концу своей жизни он уже поддерживал интерфейсы, полиморфизм и библиотеки классов. Всё это было позаимствовано из COM — фундаментальной части технологии компонентов, «прошитой» в каждой версии Windows.

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

Другими словами, поскольку VB был достаточно лёгок в использовании, даже если вы не учились на программиста, его применяло множество людей, которые не учились быть программистами. И VB не делал ничего, чтобы помешать укоренению их плохих привычек.

Перенесёмся вперёд, в 2002 год: Microsoft занимается тем, что лучше всего получается у Microsoft — разрушает собственную экосистему разработчиков, вводя совершенно новый способ работы.

На этот раз проектом было масштабное изменение архитектуры COM — компонентной технологии, служившей опорой Windows (а косвенно и классическому VB). Это была ставка «ва-банк» для компании-мегалита, уже совершавшего несколько раз такие рискованные перемены.


Единственная проблема заключалась в том, что для реализации всех этих функций Microsoft пришлось избавиться почти от всего классического VB.


Ещё одно важное изменение: больше никакой функции edit-and-continue.

Разработчики любят жаловаться, а разработчики на VB особенно этим известны. Почти сразу же группа влиятельных разработчиков на VB окрестила новую среду программирования Microsoft именем VB.Fred, чтобы подчеркнуть тот факт, что этот новый язык не является Visual Basic.

Что обрекло Visual Basic на гибель

Современное состояние Visual Basic

В области веб-разработки Microsoft смотрит в пустоту упущенных возможностей. Кого бы не соблазнила версия VB, столь же простая в работе, как VB 6, но ещё и способная компилироваться в JavaScript и комбинироваться с дизайнером форм HTML? Да, новые Google Maps в таком инструменте не создашь, но он мог бы возродить привлекательность Visual Basic, позволив бизнес-разработчикам, студентам и любителям создавать простые онлайн-приложения без необходимости пользоваться громоздким JavaScript. Вместо этого Microsoft создала продукт на основе VB под названием LightSwitch, исчезнувший со смертью браузерного плагина Silverlight. Если Microsoft начнёт создавать ещё один продукт класса «кодинг для широких масс», то это скорее всего будет управляемый шаблонами инструмент с небольшим количеством кода наподобие PowerApps.

Visual Basic и раньше грозили разные опасности. Но на этот раз, похоже, всё по-другому. Кажется, солнце для одного из самых популярных в мире языков программирования на самом деле закатывается. Если это правда, то Visual Basic не будет постепенно исчезать на протяжении десятилетий. Он станет ещё одним легаси-продуктом, недооценённым инструментом без любви пользователей и будущего. Потеряли ли мы что-то особенное, или просто избавили от мучений устаревшую технологию — решать вам.

Поспешай не торопясь

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

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

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

Во-вторых, не откладывайте надолго расставание со "старым добрым" VB. Помните о временах 10-летней давности, когда нежелание переходить от функционально более мощного Basic PDS 7.1 к "примитивному" и непривычному VB 1.0 обернулось необходимостью менять профессию для достаточно опытных программистов. Не должно быть никаких иллюзий по поводу того, что Microsoft будет хотя бы какое-то время продолжать поддержку VB 6.0 (его продажи прекратились 1 июня). Соответственно, начинать на нем разработку новых серьезных приложений вряд ли имеет смысл. А вот маленьких. Наверное, на них как раз удобнее осваивать новые системы.

Куда бедному VB-программисту деваться?

Миграция VB-программ

Для иллюстрации сказанного выше рассмотрим простой пример миграции.

Создайте в VB 6.0 новое приложение типа Standard. На форме установите командную кнопку и напишите для нее такой код:

Чтобы показать проблемы, возникающие при автоматическом преобразовании кода, создайте в VB 6.0 приложение, которое состоит из одного BAS-модуля Module1 с простым программным кодом, формирующим список файлов корневого каталога:

Обратите внимание, что строчки VB-кода

Второй массив сохранил свой начальный тип, а первый поменял String на Object (я специально включил описания неиспользуемого массива arrF, чтобы показать это различие). И это при том, что во всех остальных местах Update Wizard правильно отработал использование суффиксов для определения типов данных - в том числе в процедуре FileCount, где описание arrFile$() поменялось на arrFile() As String.

Выбор оптимальной стратегии

Схема работы механизма COM Interop.

Другие статьи из раздела

С 26 по 29 октября 2010 года состоялась 21-ая ежегодная выставка информационных и коммуникационных технологий Softool

ООО «ИТ-экспо»
С 26 по 29 октября 2010 года состоялась 21-ая ежегодная выставка информационных и коммуникационных технологий Softool
Выставка прошла при поддержке Российской академии наук, Министерство связи и массовых коммуникаций Российской Федерации, Правительства Москвы …

День открытых дверей в дата-центре DataLine

DataLine
День открытых дверей в дата-центре DataLine
27 октября 2010 г. компания DataLine совместно с агентством Cnews провели День Открытых дверей в центре обработки данных на улице Боровой дом 7 …

OKI Data Corporation объявляет о начале работы ООО «ОКИ Системс Рус»

OKI Data Corporation
OKI Data Corporation объявляет о начале работы ООО «ОКИ Системс Рус»
Компания OKI Data Corporation, один из лидеров в разработке технологических решений для печати, объявила об официальном начале работы российской …

RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша

Adaptec by PMC
RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша
Опытные сетевые администраторы знают, что задействование в работе кэш-памяти RAID-контроллера дает серьезные преимущества в производительности …

Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy

Chloride
Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy
Trinergy — новое решение на рынке ИБП, впервые с динамическим режимом работы, масштабируемостью до 9.6 МВт и КПД до 99%. Уникальное сочетание …

30 ноября 2021 г. | Он-лайн формат
Dell Technologies Forum 2021

Поспешай не торопясь

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

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

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

Во-вторых, не откладывайте надолго расставание со "старым добрым" VB. Помните о временах 10-летней давности, когда нежелание переходить от функционально более мощного Basic PDS 7.1 к "примитивному" и непривычному VB 1.0 обернулось необходимостью менять профессию для достаточно опытных программистов. Не должно быть никаких иллюзий по поводу того, что Microsoft будет хотя бы какое-то время продолжать поддержку VB 6.0 (его продажи прекратились 1 июня). Соответственно, начинать на нем разработку новых серьезных приложений вряд ли имеет смысл. А вот маленьких. Наверное, на них как раз удобнее осваивать новые системы.

Куда бедному VB-программисту деваться?

Миграция VB-программ

Для иллюстрации сказанного выше рассмотрим простой пример миграции.

Создайте в VB 6.0 новое приложение типа Standard. На форме установите командную кнопку и напишите для нее такой код:

Чтобы показать проблемы, возникающие при автоматическом преобразовании кода, создайте в VB 6.0 приложение, которое состоит из одного BAS-модуля Module1 с простым программным кодом, формирующим список файлов корневого каталога:

Обратите внимание, что строчки VB-кода

Второй массив сохранил свой начальный тип, а первый поменял String на Object (я специально включил описания неиспользуемого массива arrF, чтобы показать это различие). И это при том, что во всех остальных местах Update Wizard правильно отработал использование суффиксов для определения типов данных - в том числе в процедуре FileCount, где описание arrFile$() поменялось на arrFile() As String.

Выбор оптимальной стратегии

Схема работы механизма COM Interop.

Другие статьи из раздела

С 26 по 29 октября 2010 года состоялась 21-ая ежегодная выставка информационных и коммуникационных технологий Softool

ООО «ИТ-экспо»
С 26 по 29 октября 2010 года состоялась 21-ая ежегодная выставка информационных и коммуникационных технологий Softool
Выставка прошла при поддержке Российской академии наук, Министерство связи и массовых коммуникаций Российской Федерации, Правительства Москвы …

День открытых дверей в дата-центре DataLine

DataLine
День открытых дверей в дата-центре DataLine
27 октября 2010 г. компания DataLine совместно с агентством Cnews провели День Открытых дверей в центре обработки данных на улице Боровой дом 7 …

OKI Data Corporation объявляет о начале работы ООО «ОКИ Системс Рус»

OKI Data Corporation
OKI Data Corporation объявляет о начале работы ООО «ОКИ Системс Рус»
Компания OKI Data Corporation, один из лидеров в разработке технологических решений для печати, объявила об официальном начале работы российской …

RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша

Adaptec by PMC
RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша
Опытные сетевые администраторы знают, что задействование в работе кэш-памяти RAID-контроллера дает серьезные преимущества в производительности …

Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy

Chloride
Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy
Trinergy — новое решение на рынке ИБП, впервые с динамическим режимом работы, масштабируемостью до 9.6 МВт и КПД до 99%. Уникальное сочетание …

30 ноября 2021 г. | Он-лайн формат
Dell Technologies Forum 2021

Читайте также: