CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C#
Джеффри Рихтер
Эта книга, выходящая в третьем издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.0. Написанная признанным экспертом в области программирования Джеффри Рихтером, много лет являющимся консультантом команды разработчиков .NET Framework компании Microsoft, книга научит вас создавать по-настоящему надежные приложения любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д.
Третье издание полностью обновлено в соответствии со спецификацией платформы .NET Framework 4.0 и принципами многоядерного программирования.
Издательство: Питер, 3-е издание, 2012 г.
ISBN 978-5-459-00297-3,978-0735627048
Количество страниц: 928.
Содержание книги «CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C#»:
- 12 Предисловие
- 14 Введение
- 15 Для кого эта книга
- 16 Посвящение
- 16 Благодарности
- 17 Поддержка
- 17 Мы хотим вас услышать
- 19 Часть I. Основы CLR
- 20 Глава 1. Модель выполнения кода в среде CLR
- 20 Компиляция исходного кода в управляемые модули
- 24 Объединение управляемых модулей в сборку
- 25 Загрузка CLR
- 29 Исполнение кода сборки
- 34 Глава 2. Компоновка, упаковка, развертывание и администрирование приложений и типов
- 34 Задачи развертывания в .NET Framework
- 36 Компоновка типов в модуль
- 40 Несколько слов о метаданных
- 47 Объединение модулей для создания сборки
- 58 Ресурсы со сведениями о версии сборки
- 63 Региональные стандарты
- 65 Развертывание простых приложений (закрытое развертывание сборок)
- 67 Простое средство администрирования (конфигурационный файл)
- 71 Глава 3. Совместно используемые сборки и сборки со строгим именем
- 72 Два вида сборок — два вида развертывания
- 74 Назначение сборке строгого имени
- 79 Глобальный кэш сборок
- 82 Компоновка сборки, ссылающейся на сборку со строгим именем
- 83 Устойчивость сборок со строгими именами к несанкционированной модификации
- 85 Отложенное подписание
- 88 Закрытое развертывание сборок со строгими именами
- 89 Как исполняющая среда разрешает ссылки на типы
- 93 Дополнительные административные средства (конфигурационные файлы)
- 99 Часть II. Проектирование типов
- 100 Глава 4. Основы типов
- 100 Все типы — производные от System.Object
- 102 Приведение типов
- 106 Пространства имен и сборки
- 111 Как разные компоненты взаимодействуют во время выполнения
- 121 Глава 5. Примитивные, ссылочные и значимые типы
- 121 Примитивные типы в языках программирования
- 129 Ссылочные и значимые типы
- 136 Упаковка и распаковка значимых типов
- 155 Хэш-коды объектов
- 158 Примитивный тип данных dynamic
- 165 Глава 6. Основные сведения о членах и типах
- 165 Члены типа
- 168 Видимость типа
- 170 Доступ к членам
- 172 Статические классы
- 174 Частичные классы, структуры и интерфейсы
- 175 Компоненты, полиморфизм и версии
- 191 Глава 7. Константы и поля
- 191 Константы
- 193 Поля
- 196 Глава 8. Методы
- 196 Конструкторы экземпляров и классы (ссылочные типы)
- 200 Конструкторы экземпляров и структуры (значимые типы)
- 204 Конструкторы типов
- 211 Методы перегруженных операторов
- 215 Методы операторов преобразования
- 219 Методы расширения
- 225 Частичные методы
- 230 Глава 9. Параметры
- 230 Необязательные и именованные параметры
- 234 Неявно типизированные локальные переменные
- 236 Передача параметров в метод по ссылке
- 242 Передача в метод переменного количества аргументов
- 245 Типы параметров и возвращаемых значений
- 247 Константность
- 248 Глава 10. Свойства
- 248 Свойства без параметров
- 264 Свойства с параметрами
- 270 Производительность при вызове методов-аксессоров свойств
- 270 Доступность аксессоров свойств
- 271 Обобщенные методы-аксессоры свойств
- 272 Глава 11. События
- 273 Разработка типа, поддерживающего событие
- 279 Как реализуются события
- 282 Создание типа, отслеживающего событие
- 284 Явное управление регистрацией событий
- 289 Глава 12. Обобщения
- 294 Обобщения в библиотеке FCL
- 295 Библиотека Power Collections производства Wintellect
- 296 Инфраструктура обобщений
- 303 Обобщенные интерфейсы
- 304 Обобщенные делегаты
- 308 Обобщенные методы
- 311 Обобщения и другие члены
- 311 Верификация и ограничения
- 322 Глава 13. Интерфейсы
- 322 Наследование в классах и интерфейсах
- 323 Определение интерфейсов
- 324 Наследование интерфейсов
- 327 Подробнее о вызовах интерфейсных методов
- 329 Явные и неявные реализации интерфейсных методов (что происходит за кулисами)
- 331 Обобщенные интерфейсы
- 333 Обобщения и ограничения интерфейса
- 335 Реализация нескольких интерфейсов с одинаковыми сигнатурами и именами методов
- 336 Совершенствование контроля типов за счет явной реализации интерфейсных методов
- 338 Опасности явной реализации интерфейсных методов
- 341 Дилемма разработчика: базовый класс или интерфейс?
- 343 Часть III. Основные типы данных
- 344 Глава 14. Символы, строки и обработка текста
- 344 Символы
- 347 Тип System.String
- 364 Эффективное создание строк
- 368 Получение строкового представления объекта
- 378 Получение объекта посредством разбора строки
- 381 Кодировки: преобразования между символами и байтами
- 389 Защищенные строки
- 393 Глава 15. Перечислимые типы и битовые флаги
- 393 Перечислимые типы
- 399 Битовые флаги
- 404 Добавление методов к перечислимым типам
- 406 Глава 16. Массивы
- 408 Инициализация элементов массива
- 411 Приведение типов в массивах
- 413 Базовый класс System.Array
- 414 Реализация интерфейсов IEnumerable, ICollection и IList
- 415 Передача и возврат массивов
- 416 Массивы с ненулевой нижней границей
- 418 Производительность доступа к массиву
- 423 Небезопасный доступ к массивам и массивы фиксированного размера
- 426 Глава 17. Делегаты
- 426 Знакомство с делегатами
- 429 Обратный вызов статических методов
- 430 Обратный вызов экземплярных методов
- 431 Раскрытие тайны делегатов
- 436 Обратный вызов нескольких методов (цепочки делегатов)
- 443 Обобщенные делегаты
- 445 Упрощенный синтаксис для работы с делегатами
- 454 Делегаты и отражение
- 458 Глава 18. Настраиваемые атрибуты
- 458 Сфера применения настраиваемых атрибутов
- 462 Определение класса атрибутов
- 466 Конструктор атрибута и типы данных полей и свойств
- 467 Выявление настраиваемых атрибутов
- 472 Сравнение экземпляров атрибута
- 475 Выявление настраиваемых атрибутов без создания производных от класса Attribute объектов
- 479 Условные атрибуты
- 481 Глава 19. Null-совместимые значимые типы
- 483 Поддержка в C# null-совместимых значимых типов
- 486 Оператор объединения null-совместимых значений
- 488 Поддержка в CLR null-совместимых значимых типов
- 491 Часть IV. Ключевые механизмы
- 492 Глава 20. Исключения и управление состоянием
- 492 Определение «исключения»
- 494 Механика обработки исключений
- 501 Класс System.Exception
- 505 Классы исключений, определенные в FCL
- 508 Генерация исключений
- 509 Создание классов исключений
- 512 Продуктивность вместо надежности
- 521 Приемы работы с исключениями
- 529 Необработанные исключения
- 534 Отладка исключений
- 536 Скорость обработки исключений
- 539 Области ограниченного выполнения
- 543 Контракты кода
- 552 Глава 21. Автоматическое управление памятью (сборка мусора)
- 552 Работа на платформе, поддерживающей сборку мусора
- 556 Алгоритм сборки мусора
- 560 Сборка мусора и отладка
- 564 Освобождение ресурсов при помощи механизма финализации
- 571 Финализация управляемых ресурсов
- 574 Когда вызываются методы финализации
- 576 Детали механизма финализации
- 579 Модель освобождения ресурсов: принудительная очистка объекта
- 584 Типы, реализующие модель освобождения ресурсов
- 588 Инструкция using языка C#
- 590 Интересные аспекты зависимостей
- 592 Мониторинг и контроль времени жизни объектов
- 605 Воскрешение
- 607 Поколения
- 614 Другие возможности сборщика мусора для работы с машинными ресурсами
- 619 Прогнозирование успеха операции, требующей много памяти
- 621 Программное управление сборщиком мусора
- 625 Захват потока
- 626 Режимы сборки мусора
- 630 Большие объекты
- 630 Мониторинг сборки мусора
- 633 Глава 22. Хостинг CLR и домены приложений
- 633 Хостинг CLR
- 636 Домены приложений
- 652 Выгрузка доменов
- 653 Мониторинг доменов
- 655 Уведомление о первом управляемом исключении домена
- 656 Использование хостами доменов приложений
- 659 Нетривиальное управление хостингом
- 665 Глава 23. Загрузка сборок и отражение
- 665 Загрузка сборок
- 671 Использование отражения для создания динамически расширяемых приложений
- 672 Производительность отражения
- 681 Создание приложений с поддержкой подключаемых компонентов
- 684 Нахождение членов типа путем отражения
- 709 Глава 24. Сериализация
- 710 Краткое руководство по сериализации/десериализации
- 715 Сериализуемые типы
- 717 Управление сериализацией и десериализацией
- 721 Сериализация экземпляров типа
- 723 Управление сериализованными и десериализованными данными
- 730 Контексты потока ввода-вывода
- 732 Сериализация в другой тип и десериализация в другой объект
- 736 Суррогаты сериализации
- 740 Переопределение сборки и/или типа при десериализации объекта
- 743 Часть V. Многопоточность
- 744 Глава 25. Потоки исполнения
- 744 Зачем потоки в Windows?
- 745 Ресурсоемкость потоков
- 750 Так дальше не пойдет!
- 752 Тенденции развития процессоров
- 754 Архитектура NOMA
- 756 CLR- и Windows-потоки
- 757 Потоки для асинхронных вычислительных операций
- 759 Причины использования потоков
- 762 Порядок исполнения и приоритеты потоков
- 768 Фоновые и активные потоки
- 769 Что дальше?
- 771 Глава 26. Асинхронные вычислительные операции
- 771 Пул потоков в CLR
- 773 Простые вычислительные операции
- 774 Контексты исполнения
- 776 Скоординированная отмена
- 781 Задания
- 796 Методы For, ForEach и Invoke класса Parallel
- 800 Встроенный язык параллельных запросов
- 804 Периодические вычислительные операции
- 807 Как пул управляет потоками
- 810 Строки кэша и ложное разделение
- 813 Глава 27. Асинхронные операции ввода-вывода
- 813 Операции ввода-вывода в Windows
- 818 Модель асинхронного программирования в CLR
- 823 Класс AsyncEnumerator
- 827 Модель асинхронного программирования и исключения
- 828 Потоковые модели приложений
- 832 Асинхронная реализация сервера
- 833 Модель асинхронного программирования и вычислительные операции
- 835 Анализ модели асинхронного программирования
- 840 Приоритеты запросов ввода-вывода
- 843 Преобразование объекта IAsyncResult в объект Task
- 844 Модель асинхронного программирования на базе событий
- 850 Сводная информация по моделям программирования
- 852 Глава 28. Простейшие конструкции синхронизации потоков
- 854 Библиотеки классов и безопасность потоков
- 856 Простейшие конструкции пользовательского режима и режима ядра
- 857 Конструкции пользовательского режима
- 876 Конструкции режима ядра
- 889 Глава 29. Гибридные конструкции синхронизации потоков
- 889 Простое гибридное запирание
- 891 Зацикливание, владение потоком и рекурсия
- 894 Различные гибридные конструкции
- 910 Запирание с двойной проверкой
- 915 Паттерн условной переменной
- 918 Сокращение времени запирания при помощи коллекций
- 923 Классы коллекций для параллельной обработки потоков
Инструкция как скачать книгу Джеффри Рихтер: CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C# в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.