ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Глава 11. Компоновочные блоки .NET
С точки зрения высокоуровневого подхода, компоновочные блоки – это файлы *.dll или *.exe. Но такая интерпретация компоновочных блоков .NET очень далека от "исчерпывающей". Вы узнаете, чем отличаются одномодульные и многомодульные компоновочные блоки и как строятся и инсталлируются такие объекты. Вы научитесь конфигурировать приватные и общедоступные компоновочные блоки, используя для этого XML-файлы *.config и компоновочные блоки политики поставщика. По ходу дела будут выяснены внутренняя структура GAC (Global Assembly Cache – глобальный
Глава 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов
В главе 12 изучение компоновочных блоков .NET продолжается – здесь рассматривается процесс обнаружения типов в среде выполнения с помощью пространства имен System.Reflection. С помощью этих типов можно строить приложения, способные читать метаданные компоновочных блоков "на лету". Вы узнаете, как динамически активизировать и обрабатывать типы во время выполнения программы, используя динамическое связывание. Здесь же исследуется роль атрибутов .NET (как стандартных, так и создаваемых программистом). Чтобы иллюстрировать возможности применения обсуждавшихся подходов, в конце главы рассматривается конструкция расширяемого приложения Windows Forms.
Глава 13. Процессы, домены приложений, контексты и хосты CLR
Здесь выполняется более глубокий анализ структуры загруженного выполняемого файла .NET. Главная цель – иллюстрация взаимосвязи между процессами, доменами приложений и границами контекстов. Определив эти объекты, вы сможете понять, как обслуживается CLR в рамках операционной системы Windows, и расширить свои знания о mscoree.dll. Представленная здесь информация может оказаться очень полезной при освоении материала главы 14.
Глава 14. Создание многопоточных приложений
В этой главе объясняется, как строить многопоточные приложения, и иллюстрируется ряд приемов, которые вы можете использовать для создания программного кода, безопасного с точки зрения многопоточных приложений. В начале главы снова обсуждается тип делегата .NET, и это делается с целью выяснения внутренних механизмов делегата, используемых для поддержки асинхронного вызова методов. Затем исследуются типы пространства имен System.Threading. Здесь обсуждается множество типов (Thread, ThreadStart, и т.п.), позволяющих очень просто создавать дополнительные потоки.
Глава 15. Понимание CIL и роль динамических компоновочных блоков
В этой главе ставится две цели. В первой половине главы рассматриваются синтаксис и семантика CIL, намного более подробно, чем в предыдущих главах. Остаток главы посвящен выяснению роли пространства имен System.Reflection. Emit. С помощью соответствующих типов можно строить программное обеспечение, позволяющее генерировать компоновочные блоки .NET в памяти во время выполнения программы. Компоновочные блоки, определенные и выполняемые в памяти, формально называют динамическими компоновочными блоками.
К этому моменту вы уже имеете достаточно информации о языке C# и формате
Глава 16. Пространство имен System.IO
По названию указанного пространства имен можно догадаться, что System.IO обеспечивает взаимодействие со структурой файлов и каталогов соответствующей машины. Из этой главы вы узнаете, как программными средствами можно создать (или уничтожить) систему каталогов, как размещать данные внутри различных потоков (файловых, строковых, в памяти и т.д.) и как выводить их оттуда.
Глава 17. Сериализация объектов
В этой главе рассматриваются сервисы сериализации объектов для платформы .NET. Упрощенно говоря, сериализация позволяет ''консервировать" состояние объекта (или множества связанных объектов) в потоке для использования в будущем. Десериализация (как вы можете догадаться сами) является процессом извлечения объекта из потока для восстановления в памяти с целью использования этого объекта в приложении. Поняв базовые принципы этих процессов, вы сможете управлять процессами сериализации с помощью интерфейса ISerializable и множества новых атрибутов, предлагаемых .NET 2.0.
Глава 18. Удаленное взаимодействие .NET
Вопреки распространенному убеждению. Web-сервисы XML нe являются единcтвенным средством построения распределенных приложений для платформы .NET. Из этой главы вы узнаете о слое удаленного доступа .NET. Вы увидите, что CLR поддерживает простые возможности обмена объектами между приложениями из разных доменов и на разных машинах, используя семантику MBV (marshal-bу-value – маршалинг по значению) и MBR (marshal-by-reference – маршалинг по ссылке). По ходу дела вы узнаете, как в декларативной форме во время выполнения можно изменить поведение распределенного .NET-приложения, используя XML-файлы конфигурации.
Глава 19. Создание окон с помощью System.Windows.Forms
В этой главе начинается ваше знакомство с пространством имен System.Windows.Forms. Подробно обсуждается вопрос построения традиционных приложений с графическим интерфейсом, поддерживающим системы меню, панели инструментов и строки состояния. Как и следует ожидать, здесь рассматриваются различные аспекты проектирования форм в Visual Studio 2005. а для .NET 2.0 – целый ряд типов Windows Forms (MenuStrip, ToolStrip и т.п.).
Глава 20. Визуализация графических данных средствами GDI+
В этой главе говорится о том, как реализовать динамическую визуализацию графических данных в приложении Windows Forms. Кроме обсуждения вопросов обработки шрифтов, цветовых данных, геометрических образов и файлов изображений, в этой главе рассматриваются вопросы проверки попадания в заданную область и техника перетаскивания объектов в рамках графического интерфейса. Вы узнаете о новом формате ресурсов .NET, который, как вы уже можете догадываться к этому моменту, основан на XML-представлении данных.