Сообщений 5    Оценка 78 [+2/-0]         Оценить  
Система Orphus

Microsoft .NET в подлиннике

Автор: Алексей Дубовцев
Издательство: БХВ-Петербург, 2004
704 страницы

Материал предоставил: Алексей Кирюшкин
Найти в магазинах
Купить в Озоне (316 руб.)
Купить в Books.Ru

Аннотация

Содержание
Комментарии

Аннотация

Рассмотрены теоретические основы и практические приемы программирования на платформе .NET с использованием популярных языков: C#, VB.NET, MC++, IL. Описаны метаданные, общая система типов, сборки, архитектура доменов, атрибуты и др. На большом количестве простых и понятных примеров рассмотрены обработка исключений, делегаты и события, потоки и др. Дано подробное представление низкоуровневого взаимодействия с операционной системой из среды .NET. Прилагается компакт-диск, содержащий большое количество примеров на языках C#, VB.NET, MC++, IL.

Содержание

Мои искренние благодарности
Предисловие редактора

Глава 1. Общеязыковая среда исполнения
1.1 Архитектура среды исполнения .NET
1.2 Общая библиотека классов
1.3 .NET байт-код и язык представления кода IL
1.4 Исходный код CLI

Глава 2. Метаданные
2.1 Краткий экскурс в историю
2.2 Практическое введение в систему метаданных
2.3 В заключение главы

Глава 3. Общая система типов
3.1 Важнейшие определения
3.2 Классификация типов среды .NET
Причина использования однокоренной иерархии типов
Два вида типов
Данные и типы
3.3 Идентификаторы типов
3.4 Размерные типы
Встроенные типы
Пользовательские типы
Внутренние механизмы работы типов
Упаковка и распаковка
3.5 Ссылочные типы
Классы и их применение
Делегаты
Массивы
Интерфейсы
Ссылки
3.6 Использование типов в среде .NET
Применение атрибутов
Контроль доступа к типам
Наследование типов
Описание членов типов
Перегрузка членов типов
Наследование - перекрытие и сокрытие членов
3.7 Корневой объект - System.Object

Глава 4. Сборки
4.1. Немного истории
Первые шаги
Динамические библиотеки
Способы подключения динамических библиотек
Управление версиями динамических библиотек
Компонентный подход COM
4.2 Новое решение проблемы надёжности
Что такое сборки?
Виды сборок
Манифест
Модули
"Пустые" сборки
Сборки со стогими именами
4.3 Глобальное хранилище сборок (GAC)
Расширение оболочки для управления сборками
Реальное строение GAC
Инсталляция сборок в GAC
Проверка целостности сборки при инсталляции в GAC
Использование строго именованных сборок
Внутренний формат имен
4.4 Политика версий для строго именованных сборок
Информация о версии
Работаем с информацией о версии
Дополнительная информация о версии
Технология прямого запуска
4.5 Процесс загрузки .NET-приложений
Динамические библиотеки на основе сборок
Локализация приложений при помощи сборок
4.6 Конфигурирование политики загрузки сборок
Структура конфигурационного файла
Проверка возможности сетевой загрузки
Редактирование конфигурационных файлов при помощи встроенных средств среды исполнения
Процесс поиска сборок средой исполнения
4.7 Просмотр логов загрузки сборок и исключения при помощи утилиты Fuslogvw.exe

Глава 5. Атрибуты
5.1 Немного истории
COM и атрибуты
Атрибуты в среде .NET
5.2 Виды атрибутов
Атрибуты, используемые компилятором
Атрибуты, используемые средой исполнения
Атрибуты, используемые библиотекой классов
Пользовательские атрибуты
5.3 Создание пользовательских атрибутов
Особенности использования конструкторов атрибутов
Именованные параметры - поля или свойства
Ограничение набора типов
5.4 Особенности использования атрибутов в различных языках
VB.NET
J#
IL
Возможность неполного здания имени атрибута
Область применимости атрибутов
5.5 Атрибуты. Что там внутри
Механизм связывания атрибутов
Каждому по атрибуту
Класс Attribute
Attribute.GetCustomAttribute
Attribute.GetCustomAttributes
Attribute.IsDefaultAttribute
Attribute.IsDefined
5.6 Концепция атрибутов

Глава 6. Делегаты и события
6.1 Роль событий в программах
6.2 Введение в делегаты
Общие сведения
Виды методов
6.3 Делегаты - начинаем непосредственную работу
Создаёт собственный делегат
Делегат и экземплярные методы
6.4 MulticastDelegate
MulticastDelegate.Method
MulticastDelegate.Target
Пример использования свойств Method и Target
MulticastDelegate.DynamicInvoke
Операторы сравнения (Equality и Inequality)
MulticastDelegate.Combine и MulticastDelegate.Remove
Delegate.Invoke или что там внутри?
MulticastDelegate.GetInvocationList
MulticastDelegate.CreateDelegate
"Нулевые делегаты"
6.5 События
Как устроены события и зачем они нужны
События .NET
Внутренний механизм поддержки событий
Контроль над событиями
6.6 Дополнительные возможности при работе с делегатами
Список делегатов - EventHandlerList
Стандартные делегат общей библиотеки
6.7 В заключение главы

Глава 7. Обработка исключений
7.1 Общие принципы работы
Try
Catch
Finally
Возникновение исключения
7.2 Обработчики исключений (catch-блоки)
7.3 Обзор класса System.Exception
Конструкторы класса Exception
Exception.HelpLink
Exception.InnerException
Exception.Message
Exception.Source
Exception.StackTrace
Exception.TargetSite
Exception.ToString
Exception.GetBaseException
7.4 Иерархия типов исключения в общей библиотеке классов
Системные исключения
Внешние исключения (SEHException)
Три ужасных исключения
7.5 Создание пользовательских исключений
7.6 Поиск необходимого обработчика исключения
Стек функции
Фильтр необработанных исключений
Подавление ужасного исключения
7.7 Внутри механизма обработки исключений
7.8 На что следует обратить внимание при работе с исключениями
Сохранение состояний
Проверяйте ссылки
Типы исключений
Три конструктора
Локализация сообщений об ошибках
Файлы помощи
Не используйте кодов возврата
Заканчивайте на Exception
7.9 Заключение

Глава 8. Управление памятью
8.1 Проблемы и задачи
Неверные указатели
Ссылки
Утечки памяти
Эффективное распределение участков памяти
8.2 Управление памятью в среде .NET
Устройство механизма выделения мамяти
Правда о деструкторах или когда уходят объекты
Настоящие деструкторы - детерминированное уничтожение объектов
Using - оптимизация работы с методом Dispose
8.3 Внутренне устройство сборщика мусора
Класс GC
Детерминированное уничтожение объектов при помощи финализаторов
Воскрешение объектов
Поколения как технология оптимизации сборки мусора
Большие объекты
8.4 Слабые ссылки WeakReference
Короткие и длинные ссылки
Класс WeakReference
Внутреннее устройство слабых ссылок
8.5 Блокировка объектов в памяти
8.6 Производительность
Сборка мусора и потоки
Исполнение на мультипроцессорных системах
Слежение за программой
8.7 Заключение

Глава 9. Потоки
Введение
9.1 Приступим к делу
Сравнение сервисов управления потоками Windows API и .NET
Создание собственного потока
9.2 Класс Thread
Уничтожение потоков
Информация о состоянии потоков ThreadState
Получение объекта, представляющего текущий поток
Встроенный механизм синхронизации потоков
9.3 Планирование потоков
Приоритеты потоков
Фоновые потоки
9.4 Локальная память потока
Подводные камни в многопоточных приложениях
Альтернативный способ работы с TLS
9.5 Синхронизация потоков
Критические секции
Управление блокировками на критических секциях
Более сложные приёмы работы с критическими секциями
9.6 Объекты синхронизации
События AutoResetEvent и ManualResetEvent
Мьютекс
Синхронизация нескольких приложений с помощью мьютексов
Синхронизация счетчиков
9.7 Синхронизация операций ввода/вывода
Расширенные возможности
9.8 Пул потоков
Расширенные возможности пула потоков
Максимальное количество потоков в пуле
9.9 Таймеры
9.10 Датчики производительности
Заключение

Глава 10. Архитектура доменов
10.1 Развитие технологий изолирования кода
10.2 Домены в приложениях .NET
10.3 Сборки и домены
10.4 Загрузка исполняемых файлов в домен
10.5 Домены и потоки
10.6 Имена доменов

Глава 11. Введение во взаимодействие с операционной системой
11.1 Немного теории
Взаимодействие внутри сред
Взаимодействие .NET - приложений с сервисами OC
Обращение неуправляемых приложений к средствам .NET
11.2 Приступим к делу
11.3 Взаимодействие с DLL из управляемого кода
Внутренний механизм вызова функций
Динамическое подключение к библиотекам
Использование атрибутов DLLImport
Более сложные случаи взаимодействия
11.4 Взаимодействие .NET через DLL
Как это устроено?

Глава 12. Использование COMпонентов при помощи .NET
12.1 Автоматизированный подход
Особенности подключения COM-объектов из среды Microsoft Visual Studio .NET
Как это устроено или что у него внутри?
12.2 Динамическое взаимодействие в ручном режиме
12.3 Сравнение двух подходов, методы оптимизации
"Искусственная оболочка"
Специальные средства среды исполнения

Глава 13. Написание COMпонентов при помощи .NET
13.1 Различие программных моделей COM и .NET
13.2 Создаём первый COMпонент при помощи .NET
Для чего нужны фабрики классы
Интерфейсы для COMпонента
Использование COMпонента напрямую
Дополнительные сервисы, необходимые при взаимодействии с COM
Подведём итоги

Глава 14. Тонкости взаимодействия с COM
14.1 Обёртки
RCW - обёртки
CCW - обёртки
Способы управления обёртками
14.2 Несколько дополнительных технических моментов
Обработка ошибок
Потоковые модели
14.3 Маршализация данных
Типы и маршалер
Копирование и блокирование данных
Использование параметров, возвращающих значение
Стандартные правила преобразования типов, используемые при маршализации
Изменения правил преобразования типов
Краткое описание дополнительных сервисов взаимодействия с неуправляемым кодом.
14.4 Заключение

Описание компакт-диска
Предметный указатель

Комментарии

Александр Ложечкин. Региональный директор MSDN Microsoft в России, эксперт по технологиям разработки программного обеcпечения.

Книга, которую вы держите в руках, является результатом глубокого и подробного изучения автором функциональности и внутреннего устройства компонентов, технологии Microsoft .NET Framework с использованием языков программирования C#, VB.NET, MC++, IL. Сделана попытка изложить достаточно сложные концепции, присущие современной платформе разработки. Материал книги изложен языком, доступным разработчику, изучающему .NET, и при этом содержит серьезное и глубокое описание механизмов .NET Framework. В книге вы найдёте достаточно полное описание как архитектурных основ .NET Framework (среда выполнения CLR, система типов, способ хранения метаданных приложений и возможности по развертыванию приложений), так и описание таких механизмов, как исключения, асинхронное программирование, многопоточное программирование и взаимодействие с наследованным кодом.

Эта книга поможет начинающим разработчикам понять принципы, лежащие в основе архитектуры любого современного приложения, работающего на платформе Microsoft .NET, а разработчикам, имеющим достаточный опыт программирования на .NET Framework, даст ответы на практические вопросы, возникающие при разработке, и поможет систематизировать уже накопленные знания.

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

    Сообщений 5    Оценка 78 [+2/-0]         Оценить