Предисловие
Глава 1. Введение
Какое отношение все сказанное имеет к .NET? Самое прямое. Видите ли, .NET изменит подход к проектированию приложений так же сильно, как появление классов в VB некогда повлияло на проектирование приложений VB5 и 6. И переход на .NET вызовет определенные неудобства — как и переход от «бесклассовых» версий VB к поддержке классов!
.NET и изменение парадигмы
Автоматическая сборка мусора: ликвидация утечки памяти
Трудности перехода на VB .NET
Глава 2. Среда программирования VB .NET: Visual Studio .NET
Новое решение создается командой File > New. Вам предлагается выбрать один из двух вариантов: создать новый проект (New Project) или пустое решение (Blank Solution). Даже при выборе первого варианта IDE все равно создает решение. Различие между этими вариантами заключается в том, что при выборе определенного типа проекта VS .NET IDE создает несколько служебных файлов и включает их в решение (тип файлов зависит от выбранного типа проекта).
Создание нового решения
Редактор
Окно решения
Работа с решением
Включение новых проектов
Параметры компиляции
Глава 3. Выражения, операторы и передача управления
Если переменная не была инициализирована при объявлении, ей присваивается стандартное значение, соответствующее ее типу, — например, числовым переменным присваивается 0. При таком удобном синтаксисе, как в VB .NET, всегда лучше инициализировать переменную при объявлении, чем полагаться на значение по умолчанию.
Объявление переменных
Форматирование данных
Константы
Ускоренная проверка
Цикл For-Each
Процедуры
Глава 4. Классы и объекты
Возникает очевидный вопрос: по каким критериям выделять классы в программе? Для этого имеется хорошее эмпирическое правило, которое связывает компоненты объектной модели с частями речи. Классы соответствуют существительным в постановке задачи. В нашем примере центральное место занимает существительное «работник» (Employee). Методы объектов соответствуют глаголам — например, работнику можно повысить зарплату (метод RaiseSalary). Свойства соответствуют прилагательным, описывающим существительные. Разумеется, это соответствие лишь намечает контуры объектной модели.
Переход к использованию объектов
Пример: класс String
Пространства имен
Хэш-таблицы
Определение классов в программе
Снова о свойствах
Общие члены классов
Структуры
Отладка объектно-ориентированных программ
Глава 5. Наследование и интерфейсы
Хотя наследование не является панацеей ООП и во многих ситуациях лучше воспользоваться интерфейсами, не стоит полагать, что без наследования можно как-нибудь обойтись. Наследование — замечательное средство, способное сэкономить немало времени и сил... если им правильно пользоваться. Критерий правильного использования прост: не используйте наследование, если у вас нет абсолютной уверенности в существовании логической связи типа «является частным случаем».
Основы наследования
Обращение к функциональности базового класса
Как стать начальником?
Абстрактные базовые классы
МетодToString
Интерфейсы
Нетривиальное применение интерфейсов
ICollection
Глава 6. Обработка событий и делегаты
Давайте вернемся к простому классу Empl oyee и подробно, шаг за шагом разберем все, что необходимо сделать для определения и инициирования событий. Предположим, событие должно инициироваться при попытке увеличения заработной платы более чем на 10 процентов без ввода пароля.
Простейшее инициирование событий
Построение классов событий
Отключение обработчиков событий
Практический пример: специализированная сортировка
Глава 7. Обработка ошибок в VB .NET
Допустим, пользователь ввел имя файла, но метод ProcessFile не может его обработать. Что тогда? Можно ли отличить одно исключение от другого? Как вы вскоре увидите, небольшое усложнение секции Catch позволяет различать исключения по категориям. Более того, в секции Catch можно даже заново инициировать перехваченное исключение командой Throw, чтобы продолжить его обработку.
Анализ исключений
Инициирование исключений
Глава 8. Формы Windows, графический вывод и печать
Программисты VB6 легко привыкают к особенностям работы с формами и элементами в VS .NET IDE. В вашем распоряжении оказывается пара новых (притом весьма полезных) инструментов, кратко описанных далее, однако общие принципы работы с панелью элементов (toolbox) почти не изменились.
Дизайнер форм
Снова о простой программе
Элементы меню и новый редактор меню Visual Studio
Создание диалоговых окон
Добавление новых свойств
Глава 9. Ввод-вывод
Класс File, как и класс Directory, состоит из общих методов, которым при вызове обычно передается имя файла. Эти методы применяктея при копировании, удалении и перемещении файлов. Основные методы класса File перечислены в табл. 9.3. Обратите внимание,— все параметры передаются по значению (в таблице отсутствуют методы класса File, предназначенные для работы с потоками данных, — они будут рассмотрены ниже).
Классе File
Важнейшие члены классов FileSystemlnfo, FileInfo и Directorylnfo
Чтение и запись двоичных данных: классы BinaryReader и BinaryWriter
Простая сериализация
Глава 10. Многопоточные приложения
Каждая программа работает в определенном контексте, описывающем распределение кода и данных в памяти. При сохранении контекста фактически сохраняется состояние программного потока, что позволяет в будущем восстановить его и продолжить выполнение программы.
Знакомство с многопоточностью
Создание потоков
Метод Join
Приостановка и уничтожение потоков
Главная опасность (общие Данные)
Решение проблемы: синхронизация
Взаимная блокировка
Совместная работа с данными по мере их создания
Многопоточность в графических программах
Следующий шаг: кнопка Show Count
Глава 11. Поддержка баз-данных в VB .NET
Пространство имен System.Data.OleDb содержит классы, используемые при взаимодействии с OLE DB-совместимыми базами данных (такими, как Microsoft Access или Microsoft Fox Pro). Обычно в программах используются классы OleDbConnectl on, OleDbCommand и OleDbDataReader этого пространства имен. Ниже приведены краткие описания этих важных классов.
Пространство имен System.Data.OleDb
Вызов хранимой процедуры
Нетривиальный пример работы с базами данных в VB .NET (часть 2)
Глава 12. Краткий обзор ASP .NET
Сценарии ASP .NET программируются в обычном стиле VB .NET, однако в зависимости от типа клиентского броузера генерируется разный код HTML. Например, если клиент работает в последней версии Internet Explorer, в сгенерированном коде используются конструкции DHTML, а интервальная проверка осуществляется на стороне клиента.
Что передается клиенту?
Простая web-служба
Глава 13. Сборки .NET, установка приложений и COM Interop
Теоретически сборка может быть устроена весьма сложно, поэтому в нее включается манифест — совокупность всех сведений о сборке, необходимых исполнительной среде (CLR) для загрузки, компиляции (при необходимости) и выполнения сборки.
Манифест
Общие сборки и GAC
Построение ключей
О другом