ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Эндрю Троелсен
Шрифт:
Интервал:
Закладка:
Кроме того, и вы вправе это ожидать, третье издание книги содержит несколько глав с совершенно новым материалом (в частности главу, посвященную синтаксису и семантике CIL) и подробное описание специфических возможностей .NET2.0. Теперь, после всех сделанных оговорок, мы перейдем к краткой характеристике содержимого книги по частям и главам.
Часть 1. Общие сведения о языке C# и платформе .NETЦелью этой части книги является описание базовых принципов функционирования платформы .NET, системы типов .NET я различных инструментальных средств разработки, используемых при создании приложений .NET (многие из таких инструментальных средств являются программными продуктами с открытым исходным кодом). Здесь же представлены базовые возможности языка программирования C#.
Глава 1. Философия .NET
Материал этой главы является фундаментом для понимания всего остального материала книги. Глава начинается с обсуждения традиционных возможностей разработки программ в среде Windows и указывает на недостатки этого, использовавшегося ранее подхода. Но главной целью данной главы является знакомство с набором "строительных блоков" .NET, таких как CLR (Common Language Runtime – общеязыковая среда выполнения), CIS (Common Type System – общая система типов), CLS (Common Language Specification – общеязыковые спецификации) и библиотеки базовых классов. Здесь же предлагается вводная информация о языке программирования C# и формате компоновочных блоков .NET, рассматриваются межплатформенная независимость, вытекающая из самой природы платформы .NET, и роль CLI (Common Language Infrastructure – общеязыковая инфраструктура).
Глава 2. Технология создания приложений на языке C#
В этой главе предлагается краткое описание процесса компиляции и отладки файлов исходного кода для программ, написанных на языке C#, а также обсуждаются соответствующие инструменты и технологии. Сначала вы узнаете, как использовать компилятор командной строки (csc.exe) и файлы ответных сообщений C#, После этого будут рассмотрены некоторые из множества пакетов, предлагающих интегрированную среду разработки, – это, в частности, TextPad, SharpDevelop. Visual C# 2005 Express и (конечно же) Visual Studio 2005. Тут же будет представлен ряд аналогичных пакетов с открытым исходным водом (Vil, NAnt. NDoe и т.д.). которые на всякий случай должен иметь любой разработчик .NET.
Часть II. Язык программирования C#В этой части исследуются основные возможности языка программирования C#, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, Кроме того, часть II познакомит вас с элементами CTS (классы, интерфейсы, структуры, перечни и делегаты) и конструкциями общих типов.
Глава 3. Основы языка C#
В этой главе рассматриваются базовые конструкции языка программирования C#. Вы освоите технику построения классов, выясните разницу между типами, характеризуемыми значениями, и ссылочными типами, приведением к объектному типу и восстановлением из "объектного образа", а также роль любимого всеми базового класса System.Object. В этой же главе показано, как платформа .NET заставляет работать самые простые программные конструкции, такие как перечни, массивы и обработчики строк. Наконец, в этой главе рассматривается ряд специфических для версии 2.0 вопросов, включая типы данных, для которых имеется разрешение принимать значение null.
Глава 4. Язык C# 2.0 и объектно-ориентированный подход
Целью главы 4 является выяснение того, как язык C# сочетается с базовыми принципами ООП – инкапсуляцией, наследованием и полиморфизмом. После рассмотрения ключевых слов и синтаксиса, используемых при построении иерархии классов, будет выяснена роль XML-комментариев в программном коде.
Глава 5. Цикл существования объектов
В этой главе выясняется, как в рамках CLR с помощью сборщика мусора .NET организовано управление памятью. В этой связи вы узнаете о роли корней приложения, генераций объектов и типа System.GC. После изучения базовых вопросов в оставшейся части главы будут рассмотрены тема объектов, предусматривающих освобождение ресурсов (через интерфейс IDisposable), и процесс финализации (реализуемый с помощью метода System.Object.Finalize()).
Глава 6. Структурированная обработка исключений
В этой главе обсуждается структурированный подход к обработке исключений (т.е. исключительных ситуаций), которые могут возникать в среде выполнения. Вы узнаете о ключевых словах языка C# (try, catch, throw и finally), которые позволяют решать соответствующие проблемы, а также выясните разницу между исключениями системного уровня и уровня приложения. Дополнительно в главе обсуждаются специальные средства Visual Studio 2005, призванные упростить задачу выявления и обработки исключений, ускользнувших от вашего внимания.
Глава 7. Интерфейсы и коллекции
Материал этой главы опирается на понимание принципов разработки приложений с использованием объектов и охватывает вопросы программирования на базе интерфейсов. Вы узнаете, как определить типы, поддерживающие множество элементов поведения, как найти эти элементы поведения во время выполнения и как выборочно скрыть такие элементы поведения, используя явную реализацию интерфейса. В оставшейся части главы рассматривается пространство имен System. Collections, с помощью которого демонстрируется польза типов интерфейса.
Глава 8. Интерфейсы обратного вызова, делегаты и события
Цель главы 8 заключается в разъяснении типа делегата. Упрощенно говоря, делегат .NET – это шаблон, "указывающий" на методы в приложении. С помощью такого шаблона вы получаете возможность строить системы, в которых множество объектов могут быть связаны двусторонним обменом- После выяснения возможностей использования делегатов.NET (включая множество возможностей, появившихся с версией 2.0, – например, анонимные методы) в главе рассматривается ключевое слово C# event, которое используется для того, чтобы упростить процесс программирования с помощью делегатов.
Глава 9. Специальные приемы построения типов
Эта глава позволит вам глубже понять возможности языка программирования C# путем изучения более совершенных методов программирования. Вы узнаете, как использовать перегрузку операций и создавать пользовательские программы преобразования (явного или неявного), как строить индексаторы типов и работать c указателями C-типа в файле *.cs.
Глава 10. Обобщения
В свази с разработкой .NET 2.0 язык программирования C# был расширен с целью поддержки новой возможности CTS, связанной с так называемыми обобщениями (generics). Вы увидите, что программирование с помощью обобщений ускоряет процесс создания приложений и обеспечивает типовую безопасность. Здесь рассмотрены различные обобщенные типы из пространства имен System, Collections.Generic, а также показано, как строить свои собственные обобщенные методы и типы (как с ограничениями, так и без таковых).
Часть III. Программирование компоновочных блоков .NETВ этой части рассматривается формат компоновочных блоков .NET. Вы узнаете, как развернуть и сконфигурировать библиотеки программного кода .NET, и выясните внутреннюю структуру бинарного образа .NET. В этой же части объясняется роль атрибутов .NET и конструкция многопоточных приложений. В последних главах этой части рассматриваются низкоуровневые вопросы [такие как, например, объектный контекст), а также синтаксис и семантика CIL.
Глава 11. Компоновочные блоки .NET
С точки зрения высокоуровневого подхода, компоновочные блоки – это файлы *.dll или *.exe. Но такая интерпретация компоновочных блоков .NET очень далека от "исчерпывающей". Вы узнаете, чем отличаются одномодульные и многомодульные компоновочные блоки и как строятся и инсталлируются такие объекты. Вы научитесь конфигурировать приватные и общедоступные компоновочные блоки, используя для этого XML-файлы *.config и компоновочные блоки политики поставщика. По ходу дела будут выяснены внутренняя структура GAC (Global Assembly Cache – глобальный кэш компоновочных блоков) и роль утилиты конфигурации .NET Framework 2.0.
Глава 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов
В главе 12 изучение компоновочных блоков .NET продолжается – здесь рассматривается процесс обнаружения типов в среде выполнения с помощью пространства имен System.Reflection. С помощью этих типов можно строить приложения, способные читать метаданные компоновочных блоков "на лету". Вы узнаете, как динамически активизировать и обрабатывать типы во время выполнения программы, используя динамическое связывание. Здесь же исследуется роль атрибутов .NET (как стандартных, так и создаваемых программистом). Чтобы иллюстрировать возможности применения обсуждавшихся подходов, в конце главы рассматривается конструкция расширяемого приложения Windows Forms.