Cамоучитель по VB.NET
Структура книги на диске
Visual Basic: прошлое и настоящее
Версии Visual Basic
.NET и изменение парадигмы
Common Language Runtime
VB как объектно-ориентированный язык
Автоматическая сборка мусора: ликвидация утечки памяти
Структурная обработка ошибок
Многопоточность
Трудности перехода на VB .NET
Сравнение С# с VB .NET
Cамоучитель по VB.NET
Приступаем к работеПользователи прежних версий VB обычно предпочитают, чтобы среда IDE по внешнему виду и поведению была как можно ближе к традиционной среде VB6. Для этого откройте на начальной странице VS ссылку
Начальная страница Visual Studio
Создание нового решения
/B> Диалоговое окно New Project
Visual Studio IDE в начале работы
Контекстная справка
Основные окна IDE
Контекстное меню редактора
Редактор
Диалоговое окно Options
Свернутые области в редакторе
Многоэлементный буфер обмена
Временное хранение фрагментов
Список задач и комментарии TODO, HACK и UNDONE
Окно решения
Окно решения и окно свойств для файла Module1.vb
Окно свойств
Окно внешних ссылок
Диалоговое окно Add Reference
Окно вывода и окно команд
Работа с решением
Включение новых проектов
Включение проекта в существующее решение
Компиляция
Окно вывода при успешном построении
Окно вывода при обнаружении ошибок
Пакетная компиляция
Информация о результатах пакетной компиляции
Выбор проектов для пакетной компиляции
Параметры компиляции
Диалоговое окно свойств проекта
Отладочная и окончательная версии
Выходные файлы
Дерево каталогов после компиляции
Отладка в VB.NET
Новые возможности отладчика
Окно памяти
Отладка процессов
Выбор процесса для отладки
Отладка процесса Notepad.exe
Отладка потоков
Управление исключениями
Отладка управляемого и неуправляемого кодов
Cамоучитель по VB.NET
Консольные приложенияДиалоговое окно свойств консольного приложения
Команды VB .NET
Комментарии
Переменные и присваивание
Таблица 3.1. Ключевые слова текущей версии VB .NET
Литералы и их соответствие типам данных
Таблица 3.2. Соответствие между числовыми типами
Прочие литералы
Объявление переменных
Преобразования разнотипных значений
Таблица 3.3. Допустимые расширяющие преобразования для базовых типов VB .NET
Таблица 3.4. Функции явного преобразования типов
Строки
Строковые функции
Таблица 3.5. Основные строковые функции
Таблица 3.6. Основные строковые методы и свойства .NET Framework
Форматирование данных
Математические операторы
Таблица 3.7. Математические операции
Таблица 3.8. Математические операторы целочисленного деления
Круглые скобки и приоритет операций
Математические функции и математические константы
Таблица 3.9. Общие математические функции класса Math
Константы
Циклы
Цикл с определенным условием
Циклы с неопределенным условием
Таблица 3.10. Операторы сравнения
Условные команды и принятие решений
Изменения в видимости переменных
Ускоренная проверка
Select Case
GoTo
Логические операторы
Массивы
Массивы с индексацией элементов в заданном интервале
Цикл For-Each
Многомерные массивы
Процедуры и функции
Функции
Процедуры
Преждевременный выход из функций или процедур
Передача массивов функциям и процедурам
Процедуры и функции с необязательными аргументами
Именованные аргументы
Рекурсия
Cамоучитель по VB.NET
Введение в ООПКлассы как пользовательские типы
Как объекты взаимодействуют друг с другом?
Терминология ООП
Отношения между классами в программах
Абстракция
Инкапсуляция
Наследование
Полиморфизм
Отладка объектно-ориентированных программ
Результат работы программы с
Переход к использованию объектов
Экземпляры
Преимущества ООП
Создание объектов в VB .NET
Параметризованные конструкторы
Пример: класс String
Пример: класс StringBuilder
Таблица 4.1. Конструкторы класса
Хронометраж — насколько быстрее работает класс StringBuilder?
Пространства имен
Импортирование
Страница Imports окна свойств
Справочная система и .NET Framework
Классы коллекций в .NET Framework
ArrayList
Таблица 4.3. Важнейшие члены класса
Хэш-таблицы
Объектные переменные
Is и Nothing
TypeName и TypeOf
Проблемы с передачей объектных переменных по значению
Определение классов в программе
Атрибуты уровня доступа и создание объектов
Me
Перегрузка членов класса
Снова о конструкторах
Снова о свойствах
Свойства и инкапсуляция
Область видимости переменных
Вложенные классы
Практическое использование вложенных классов на примере связанного списка
Общие данные в классах
Общие члены классов
Жизненный цикл объекта
Уничтожение объектов
Две разновидности циклических ссылок Структурные типы
Перечисляемые типы
Структуры
Определение структур в программе
Пространства имен для создаваемых классов
Пространство имен и имя сборки
Cамоучитель по VB.NET
Gl5Основы наследования
Знакомство с наследованием
Обращение к функциональности базового класса
Переопределение свойств и методов
Как стать начальником?
Просмотр иерархии наследования
Иерархия наследования в окне классов
Полиморфизм на практике
Замещение
Абстрактные базовые классы
Пример: класс CollectionBase
Корневой базовый класс Object
Основные методы класса Object
Equals и ReferenceEquals
Метод ToString
Функция GetType и рефлексия
Информация о членах класса Windows.Forms.Form
Проблема неустойчивости базовых классов и контроль версии
Интерфейсы
Механика реализации интерфейса
Нетривиальное применение интерфейсов
Выбор между интерфейсами и наследованием
Важнейшие интерфейсы .NET Framework
ICloneable
IDisposable
Коллекции
For Each и интерфейс lEnumerable
ICollection
Таблица 5.2. Члены интерфейса
IList Интерфейс IList обеспечивает
IComparable
Сортировка по нестандартному критерию с использованием IComparable Интерфейс IComparer
Cамоучитель по VB.NET
Обработка событий с точки зрения ООП
Схема оповещения посредством обратного
Простейшее инициирование событий
Подключение приемников к источнику
Все вместе
Построение классов событий
Динамическая обработка событий
Отключение обработчиков событий
Обработка событий в иерархии наследования
Делегаты
Создание делегата
Практический пример: специализированная сортировка
Групповые делегаты
Групповые делегаты как члены классов
Делегаты и события
Cамоучитель по VB.NET
Проверка ошибок и обработка исключений
Подготовка к структурной обработке исключений
Анализ исключений
Наличие нескольких секций Catch
Инициирование исключений
Иерархия исключений
Две основные ветви иерархии исключений
Секция Finally
Рекомендации по использованию исключений
Cамоучитель по VB.NET
Немного историиДизайнер форм
Маркеры изменения размеров элемента
Меню Tab Order
Снова о простой программе
Простейшее Windows-приложение
Элементы меню и новый редактор меню Visual Studio
Начало построения меню в редакторе
Формы MDI
Диалоговые формы и диалоговые окна
ColorDialog
FontDialog
FileDialog
Создание диалоговых окон
Размещение элементов на форме во время выполнения
Создание кнопки во время выполнения программы Наследование форм
Построение нестандартных элементов на базе наследования
Переопределение события
Добавление новых событий
Добавление новых свойств
Свойства MaxValue и MinValue
Средства базового класса Control
События клавиатуры
События проверки
Графика: GDI+
Простейший вывод
Результат вызова DrawRectangle: прямоугольник в рамке толщиной 6 пикселов Вывод текста
Пример: вывод всех шрифтов в системе
Вывод списка установленных шрифтов
Печать
Многостраничный вывод
О классе PrintPageEventArgs
Элемент PrintDialog и конфигурация печати
Самостоятельное программирование печати
Cамоучитель по VB.NET
Каталоги и файлыКласс Path
Класс Directory
Классе File
Атрибуты файла
Классы DirectoryInfo и FileInfo
Рекурсивный просмотр дерева каталогов
Важнейшие члены классов FileSystemInfo, FileInfo и DirectoryInfo
Таблица 9.4. Члены базового класса
Таблица 9.6. Члены класса Filelnfo
Потоки данных
Таблица 9.7. Основные методы класса
Запись в файл
Таблица 9.9. Значения перечисляемого
Чтение и запись двоичных данных: классы BinaryReader и BinaryWriter
Файл, записанный с применением
Таблица 9.11. Основные методы
Объектные потоки: сохранение и восстановление объектов
Простая сериализация
Простое восстановление
Объект, сохраненный в формате SOAP Применение сериализации при клонировании объектов
Практический пример: динамический список с поддержкой сериализации
Сетевые потоки
Монитор файловой системы
Cамоучитель по VB.NET
Gl10Знакомство с многопоточностью
Домены приложений
Следующий шаг: кнопка Show Count
Форма с заблокированной кнопкой
Почему при многопоточном программировании возникает столько проблем?
Создание потоков
Простая многопоточная программно время работы
Переключение между потоками в простой многопоточной программе
Процессор предоставляется и потокам с более низким приоритетом
Метод Join
Имена потоков, CurrentThread и ThreadState
Окно потоков
Приостановка потока
Завершение или прерывание программных потоков
Приостановка и уничтожение потоков
Фоновые потоки (демоны)
Более серьезный пример: извлечение данных из кода HTML
Главная опасность (общие данные)
Проблемы многопоточности
Решение проблемы: синхронизация
Команда SyncLock и класс Monitor
Взаимная блокировка
Анализ взаимной блокировки в окне потоков
Совместная работа с данными по мере их создания
Многопоточность в графических программах
Многопоточность в простом приложении с графическим интерфейсом
Cамоучитель по VB.NET
Почему ADO .NET — не ADO++Автономные наборы данных: новый подход к работе с базами данных
Классы сборки System.Data.DLL
Пространство имен System.Data.OleDb
Результаты выполнения простого запроса SQL
System. Data.SqlClient
Вызов хранимой процедуры
Нетривиальный пример работы с базами данных в VB .NET (часть 1)
Форма результатов приложения
Нетривиальный пример работы с базами данных в VB .NET (часть 2)
Результат обработки запроса к базе данных Northwind
Cамоучитель по VB.NET
Простое web-приложение для ASP .NETПростое приложение ASP .NET в IDE
Результат выполнения простейшего кода ASP .NET
Что передается клиенту?
Файл Web.config
Таблица 12.1. Схемы аутентификации в ASP .NET
Простая web-служба
Проект web-службы в IDE
Автоматически сгенерированная страница с описанием web-службы
Использование web-службы на стороне клиента
Простейший вариант использования web-службы
Результаты обращения к web-службе
Результат обращения к web-службе с использованием запроса GET
Cамоучитель по VB.NET
Принципы работы СОМСборки.NET
Манифест
Исследование манифеста
Программа ILDASM в действии
Манифест класса Employee
Общие сборки и GAC
Включение и удаление сборок из GAC
Сильные имена и совместное использование сборок
Построение ключей
Сертификация сборки
COM Interop и вызовы функций DLL
Вызовы функций DLL
Содержание раздела