Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Моя корзина
Книг в корзине:
...
На сумму:
...  грн.
Перейти в корзину Перейти в корзину
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Джеффри Рихтер


CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#
CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#
рекомендуем
Джеффри Рихтер
Год выпуска: 2016
ISBN: 978-5-496-00433-6
Переплёт: твердый
896 страниц
Цена: 1040.00 грн.
Временно отсутствует     Оставить заявку
Книга "CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#", выходящая в четвертом издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.5. Написанная признанным экспертом в области программирования Джеффри Рихтером, много лет являющимся консультантом команды разработчиков .NET Framework компании Microsoft, книга научит вас создавать по-настоящему надежные приложения любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д. Четвертое издание полностью обновлено в соответствии со спецификацией платформы .NET Framework 4.5, а также среды Visual Studio 2012 и C# 5.0.




Содержание книги Джеффри Рихтер "CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"





Предисловие. 22
Введение 24
От издателя перевода 26
Часть I. ОснОВы CLR
Глава 1. Модель выполнения кода в среде CLR. 28
Компиляция исходного кода в управляемые модули . 28
Объединение управляемых модулей в сборку 32
Загрузка CLR 34
Исполнение кода сборки . . . . . . . . . . . . . . . . . . . . . . . . . .37
IL-код и верификация 44
Небезопасный код. 45
IL и защита интеллектуальной собственности. 46
NGen exe. 47
Библиотека FCL . 47
CTS. 49
CLS. 52
Взаимодействие с неуправляемым кодом 57
Глава 2. Компоновка, упаковка, развертывание
иадминистрирование приложенийитипов 58
Задачи развертывания в. NET Framework. 58
Компоновка типов в модуль 60
Файл параметров. 61
Несколько слов о метаданных. 64
Объединение модулей для создания сборки. 71
Добавление сборок в проект в среде VisualStudio . 78
Использование утилиты Assembly Linker. 79
Включение в сборкуфайлов ресурсов 81
Ресурсы со сведениями о версии сборки . 82
Номера версии. 86
Региональные стандарты. 87
Развертывание простых приложений (закрытое.
развертывание сборок). 88
Простое средство администрирования (конфигурационныйфайл). 90
Алгоритм поискафайлов сборки 92
Глава 3. совместно используемые сборки и сборки
со строгим именем . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
Два вида сборок-два вида развертывания. 95
Назначение сборке строгого имени. 96
Глобальный кэш сборок. 102
Построение сборки, ссылающейся на сборку со строгим именем 104
Устойчивость сборок со строгими именами.
к несанкционированной модификации 106
Отложенное подписание 107
Закрытое развертывание сборок со строгими именами . 110
Как исполняющая среда разрешает ссылки на типы . 111
Дополнительные административные средства.
(конфигурационныефайлы) 115
Управление версиями при помощи политики издателя 117
Часть II. ПрОеКтирОВание тиПОВ
Глава 4. Основы типов 122
Все типы-производные отSystem Object . 122
Приведение типов 124
Приведение типов в C# с помощьюоператоров is и as 126
Пространства имен и сборки. 128
Связь между сборками и пространством имен. 132
Как разные компоненты взаимодействуют во время выполнения. 133
Глава 5. Примитивные, ссылочные и значимые типы. 142
Примитивные типы в языках программирования . 142
Проверяемые и непроверяемые операции.
для примитивных типов 146
Ссылочные и значимые типы. 150
Как CLRуправляет размещением полей для типа 155
Упаковка и распаковка значимых типов . . . . . . . . . . . . . . . . . 156
Изменение полей в упакованных значимых типах посредством
интерфейсов (и почему этого лучше не делать) 169
Равенство и тождество объектов 172
Хеш-коды объектов . 175
Примитивный тип данных dynamic. 177
Глава 6. Основные сведения очленах и типах. 186
Члены типа 186
Видимость типа . 189
Дружественные сборки 189
Доступ к членам типов 191
Статические классы. 193
Частичные классы, структуры и интерфейсы 194
Компоненты, полиморфизм и версии 196
Вызов виртуальных методов, свойств и событий в CLR 198
Разумное использование видимости типов.
и модификаторов доступа к членам. 202
Работа с виртуальными методами при управлении.
версиями типов. 205
Глава 7. Константы и поля 210
Константы 210
Поля 212
Глава 8. Методы. 215
Конструкторы экземпляров и классы (ссылочные типы) . 215
Конструкторы экземпляров и структуры (значимые типы) . 219
Конструкторы типов 222
Методы перегруженных операторов. 226
Операторы и взаимодействие языков программирования 229
Особое мнение автора о правилах Microsoft,.
связанных с именами методов операторов 229
Методы операторов преобразования 230
Методы расширения 234
Правила и рекомендации 237
Расширение разных типов методами расширения 238
Атрибут расширения . 240
Частичные методы 241
Правила и рекомендации 244
Глава 9. Параметры. 245
Необязательные и именованные параметры 245
Правила использования параметров 246
Атрибут DefaultParameterValue и необязательные атрибуты 248
Неявно типизированные локальные переменные 248
Передача параметров в метод по ссылке . 251
Передача переменного количества аргументов 257
Типы параметров и возвращаемых значений . 259
Константность. 261
Глава 10. свойства 263
Свойства без параметров 263
Автоматически реализуемые свойства . 267
Осторожный подход к определениюсвойств. 268
Свойства и отладчик VisualStudio . 270
Инициализаторы объектов и коллекций 271
Анонимные типы 273
ТипSystem Tuple 276
Свойства с параметрами . 279
Выбор главного свойства с параметрами 283
Производительность при вызове методов доступа. 284
Доступность методов доступа свойств 285
Обобщенные методы доступа свойств 285
Глава 11. события. 286
Разработка типа, поддерживающего событие 287
Этап 1 .Определение типа для хранения всей дополнительной
информации, передаваемой получателям уведомления.
о событии . 288
Этап 2 .Определение члена-события 289
Этап 3 .Определение метода, ответственного за уведомление
зарегистрированных объектов о событии 290
Этап 4 .Определение метода, преобразующего.
входнуюинформациюв желаемое событие 292
Реализация событий компилятором. 293
Создание типа, отслеживающего событие 295
Явное управление регистрацией событий 298
Глава 12. Обобщения. 302
Обобщения в библиотеке FCL 307
Инфраструктура обобщений . 308
Открытые и закрытые типы 309
Обобщенные типы и наследование . . . . . . . . . . . . . . . . . . 311
Идентификация обобщенных типов. 313
Разрастание кода 314
Обобщенные интерфейсы 315
Обобщенные делегаты 316
Контравариантные и ковариантные аргументы-типы.
в делегатах и интерфейсах 317
Обобщенные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Обобщенные методы и выведение типов. 320
Обобщения и другие члены 322
Верификация и ограничения . 322
Основные ограничения 325
Дополнительные ограничения. 327
Ограничения конструктора 328
Другие проблемы верификации. 329
Глава 13. интерфейсы. 333
Наследование в классах и интерфейсах. 333
Определение интерфейсов 334
Наследование интерфейсов 335
Подробнее о вызовах интерфейсных методов 338
Явные и неявные реализации интерфейсных методов.
(что происходит за кулисами) 339
Обобщенные интерфейсы 341
Обобщения и ограничения интерфейса . 344
Реализация нескольких интерфейсов с одинаковыми сигнатурами
и именами методов . 345
Совершенствование безопасности типов за счет явной.
реализации интерфейсных методов. 346
Опасности явной реализации интерфейсных методов. 348
Дилемма разработчика: базовый класс или интерфейс? 351
Часть III. ОснОВные тиПы данных
Глава 14. символы, строки иобработка текста. 356
Символы . 356
ТипSystem String 359
Создание строк. 359
Неизменяемые строки . 362
Сравнение строк 362
Интернирование строк. 369
Создание пулов строк 372
Работа с символами и текстовыми элементами в строке 372
Прочие операции со строками 375
Эффективное создание строк 375
Создание объектаStringBuilder 376
Члены типаStringBuilder . 377
Получение строкового представления объекта. 379
Форматы и региональные стандарты . 380
Форматирование нескольких объектов в одну строку . 384
Создание собственного средстваформатирования. 386
Получение объекта посредством разбора строки 389
Кодировки: преобразования между символами и байтами 391
Кодирование и декодирование потоков символов и байтов 397
Кодирование и декодирование строк в кодировкеBase-64 . 398
Защищенные строки 399
Глава 15. Перечислимые типы ибитовые флаги 403
Перечислимые типы 403
Битовыефлаги 409
Добавление методов к перечислимым типам. 413
Глава 16. Массивы 416
Инициализация элементов массива. 418
Приведение типов в массивах 421
Базовый классSystem Array 423
Реализация интерфейсов IEnumerable,ICollection и IList. 424
Передача и возврат массивов 425
Массивы с ненулевой нижней границей. 426
Внутренняя реализация массивов . 427
Небезопасный доступ к массивам и массивы.
фиксированного размера 432
Глава 17.делегаты . 434
Знакомство с делегатами 434
Обратный вызов статических методов 437
Обратный вызов экземплярных методов 438
Тонкости использования делегатов 439
Обратный вызов нескольких методов (цепочки делегатов) 443
Поддержка цепочек делегатов в C#. 448
Дополнительные средства управления цепочками делегатов 448
Обобщенные делегаты 451
Упрощенный синтаксис работы с делегатами 452
Упрощение 1: не создаем объект делегата. 452
Упрощение 2: не определяем метод обратного вызова 453
Упрощение 3: не создаем обертку для локальных переменных.
для передачи их методу обратного вызова . 457
Делегаты и отражение 460
Глава 18. настраиваемые атрибуты 464
Сфера применения настраиваемых атрибутов 464
Определение класса атрибутов 468
Конструктор атрибута и типы данных полей и свойств . 471
Выявление настраиваемых атрибутов. 473
Сравнение экземпляров атрибута . 477
Выявление настраиваемых атрибутов без создания объектов,
производных отAttribute 480
Условные атрибуты 484
Глава 19. Null-совместимые значимые типы 485
Поддержка в C# null-совместимых значимых типов 487
Оператор объединения null-совместимых значений . 490
Поддержка в CLRnull-совместимых значимых типов. 491
Упаковка null-совместимых значимых типов 491
Распаковка null-совместимых значимых типов. 492
Вызов метода GetType через null-совместимый значимый тип 492
Вызов интерфейсных методов через null-совместимый.
значимый тип . 493
Часть IV. КлюЧеВые МеханизМы
Глава 20. исключения иуправление состоянием 496
Определение "исключения" 496
Механика обработки исключений 498
Блок try 499
Блок catch. 499
Блок finally. 501
CLS-совместимые и CLS-несовместимые исключения 503
КлассSystem Exception. 505
Классы исключений, определенные в FCL 509
Генерирование исключений 511
Создание классов исключений. 513
Продуктивность вместо надежности 515
Приемы работы с исключениями 524
Активно используйте блоки finally . 525
Не надо перехватывать все исключения 526
Корректное восстановление после исключения 528
Отмена незавершенных операций при невосстановимых.
исключениях 529
Сокрытие деталей реализации для сохранения контракта 530
Необработанные исключения 533
Отладка исключений 537
Скорость обработки исключений 540
Области ограниченного выполнения 543
Контракты кода 546
Глава 21.автоматическое управление памятью
(уборка мусора) 554
Управляемая куча . 554
Выделение ресурсов из управляемой кучи. 555
Алгоритм уборки мусора. 557
Уборка мусора и отладка. 560
Поколения . 562
Запуск уборки мусора 568
Большие объекты. 569
Режимы уборки мусора 570
Программное управление уборщиком мусора . 573
Мониторинг использования памяти приложением 574
Освобождение ресурсов при помощи механизмафинализации 576
Типы, использующие системные ресурсы 583
Интересные аспекты зависимостей. 588
Другие возможности уборщика мусора для работы.
с системными ресурсами 590
Внутренняя реализацияфинализации 594
Мониторинг и контроль времени жизни объектов 597
Глава 22. хостинг CLR идомены приложений. 606
Хостинг CLR 606
Домены приложений 609
Доступ к объектам из других доменов 612
Выгрузка доменов 624
Мониторинг доменов . 626
Уведомление о первом управляемом исключении домена 627
Использование хостами доменов приложений . . . . . . . . . . . . . 628
Исполняемые приложения. 628
Полнофункциональные интернет-приложенияSilverlight 629
MicrosoftASP NET и веб-службы XML 629
MicrosoftSQLServer 630
Будущее и мечты . 630
Нетривиальное управление хостингом 631
Применение управляемого кода 631
Разработка надежных хост-приложений 631
Возвращение потока в хост 633
Глава 23. загрузка сборок иотражение. 636
Загрузка сборок. 637
Использование отражения для создания.
динамически расширяемых приложений 641
Производительность отражения . 642
Нахождение типов, определенных в сборке 644
Объект Type . 644
Создание иерархии типов, производных от Exception . 646
Создание экземпляра типа 648
Создание приложений с поддержкой подключаемых компонентов . 650
Нахождение членов типа путем отражения 653
Нахождение членов типа. 654
Обращение к членам типов 658
Использование дескрипторов привязки для снижения.
потребления памяти процессом 663
Глава 24. сериализация. 666
Практический пример сериализации/десериализации 667
Сериализуемые типы . 672
Управление сериализацией и десериализацией 673
Сериализация экземпляров типа 677
Управление сериализованными и десериализованными данными 679
Определение типа, реализующего интерфейс ISerializable,.
не реализуемый базовым классом 684
Контексты потока ввода-вывода . 686
Сериализация в другой тип и десериализация в другой объект . 688
Суррогаты сериализации. 691
Цепочка селекторов суррогатов. 694
Переопределение сборки и/или типа при десериализации объекта 695
Глава 25. Взаимодействие с компонентами WinRT 698
Проекции уровня CLRи правила системы типов.
компонентов WinRT 700
Основные концепции системы типов WinRT 700
Проекции уровня. NET Framework 705
Асинхронные вызовы WinRTAPI из кода. NET. 705
Взаимодействия между потоками WinRT и потоками. NET 710
Передача блоков данных между CLRи WinRT. 712
Определение компонентов WinRT в коде C# 715
Часть V. МнОГОПОтОЧнОсть
Глава 26. Потоки исполнения 724
Для чего Windows поддерживает потоки? . 724
Ресурсоемкость потоков 725
Так дальше не пойдет! 729
Тенденции развития процессоров . 732
CLR- и Windows-потоки . 733
Потоки для асинхронных вычислительных операций . 734
Причины использования потоков 736
Планирование и приоритеты потоков 739
Фоновые и активные потоки 744
Что дальше? . 746
Глава 27.асинхронные вычислительные операции . . . . . . . 747
Пул потоков в CLR. 747
Простые вычислительные операции. 748
Контексты исполнения 750
Скоординированная отмена 752
Задания 757
Завершение задания и получение результата 758
Отмена задания 760
Автоматический запуск задания по завершении предыдущего. 762
Дочерние задания 764
Структура задания 765
Фабрики заданий. 767
Планировщики заданий 769
Методы For, ForEach и Invoke классаParallel 771
Встроенный язык параллельных запросов 775
Периодические вычислительные операции. 779
Разновидности таймеров 782
Как пул управляет потоками 783
Ограничение количества потоков в пуле 783
Управление рабочими потоками 784
Глава 28.асинхронные операции ввода-вывода. 787
Операции ввода-вывода в Windows 787
Асинхронныефункции C# 792
Преобразование асинхроннойфункции в конечный автомат 795
Расширяемость асинхронныхфункций 799
Асинхронныефункции и обработчики событий . 803
Асинхронныефункции в FCL 804
Асинхронныефункции и исключения 806
Другие возможности асинхронныхфункций 807
Потоковые модели приложений 810
Асинхронная реализация сервера . 813
Отмена операций ввода-вывода. 814
Некоторые операции ввода-вывода.
должны выполняться синхронно 815
Проблемы FileStream. 816
Приоритеты запросов ввода-вывода 817
Глава 29. Примитивные конструкции синхронизации
потоков. 820
Библиотеки классов и безопасность потоков . 822
Примитивные конструкции пользовательского режима.
и режима ядра. 824
Конструкции пользовательского режима 825
Volatile-конструкции 826
Interlocked-конструкции 832
Реализация простой циклической блокировки. 837
Универсальный Interlocked-паттерн. 841
Конструкции режима ядра 843
События. 847
Семафоры 850
Мьютексы . 851
Глава 30. Гибридные конструкции синхронизации потоков . 854
Простая гибридная блокировка 854
Зацикливание, владение потоком и рекурсия 857
Гибридные конструкции в FCL 859
Классы ManualResetEventSlim иSemaphoreSlim 859
Класс Monitor и блоки синхронизации 860
КлассReaderWriterLockSlim 866
Класс OneManyLock 868
Класс CountdownEvent . 871
КлассBarrier 872
Выводы по гибридным конструкциям. 873
Блокировка с двойной проверкой 875
Паттерн условной переменной. 880
Асинхронная синхронизация . 882
Классы коллекций для параллельного доступа . 888
словарь соответствия русскоязычных
ианглоязычных терминов 893

С этой книгой чаще всего покупают:
WinRT: программирование на C# для профессионалов

WinRT: программирование на C# для профессионалов

рекомендуем
Джеффри Рихтер, Мартен ван де Боспурт
Год выпуска: 2014
Изд-во: Диалектика-Вильямс
в корзину
На 1 книгу
 
C# для профессионалов: тонкости программирования, 3-е издание

C# для профессионалов: тонкости программирования, 3-е издание

рекомендуем
Джон Скит
Год выпуска: 2019
Изд-во: Диалектика-Вильямс
Временно отсутствует Оставить заявку
Цена: 450.00 грн. 
 
Цена: 1320.00 грн. 

Хотите оставить отзыв? У Вас возникли вопросы о книге "CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Джеффри Рихтер" ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

 

 * Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 10 до 18 по будним дням: Водафон (050) 809-56-66, Киевстар (067) 408-26-36 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov