Читаем Язык программирования С# 2005 и платформа .NET 2.0. онлайн бесплатно


Язык программирования С# 2005 и платформа .NET 2.0.

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала.

Эндрю Троелсен

Компьютеры и Интернет / Программирование, программы, базы данных
<p>Эндрю Троелсен</p><p>ЯЗЫК ПРОГРАММИРОВАНИЯ C# 2005 И ПЛАТФОРМА .NET 2.0 3-е издание</p>

Посвящаю эту книгу моей матери, Мэри Троелсен. Мама! Благодарю тебя за поддержку в прошлом, настоящем и будущем. Ах, да! И спасибо за то, что ты не стала наказывать меня, когда я пришел домой с "ирокезом".

Люблю тебя. Пух.
Об авторе

Эндрю Троелсен (Andrew Troelsen) носит титул MVP (Most Valuable Professional – "самый ценный специалист") по Visual C# в Microsoft, а также является партнером, преподавателем и консультантом Intertech Training (http://www.IntertechTraining.com), центра обучения разработчиков .NET и J2EE. Он является автором множества книг, среди которых Developer's Workshop to COM and ATL 3.0 (Wordware Publishing, 2000), COM and .NET Interoperability (Apress, 2002), Visual Basic .NET and the .NET Platform: An Advanced Guide (Apress, 2001), а также книга C# and the .NET Platform (Apress, 2003), которая была удостоена ряда специальных наград. Кроме того, он является автором множества статей по вопросам .NET для MSDN online и MacTech (в этих статьях рассматриваются различные аспекты межплатформенной независимости .NET) и часто выступает с докладами, посвященными .NET, в конференциях и группах пользователей.

В настоящее время Эндрю Троелсен проживает в Миннеаполисе, шт. Миннесота, со своей женой Амандой. В свободное время он мечтает о том, что Wild выиграют Кубок Стэнли, Vikings выиграют Суперкубок (он бы хотел, чтобы это произошло до его пенсии), a Timberwolves станут многократными чемпионами NBA.

О научном редакторе

Гэвин Смит (Gavin Smyth) является профессионалом в области программного обеспечения с многолетним (и, как он считает, слишком большим) опытом разработки программ – от драйверов различных устройств до приложений, предназначенных для многоузловых серверов на таких разных платформах, как "несгибаемые" операционные системы реального времени Unix и Windows, и таких языках программирования, как ассемблер, C++, Ada и C# (не считая множества других, не менее достойных языков). Он выполнял заказы для таких компаний, как ВТ и Nortel, а в настоящее время работает для Microsoft. Гэвин Смит имеет ряд собственных печатных работ, вышедших в научных издательствах (EXE и Wrox – где они сейчас?), но в какой-то момент он пришел к заключению, что критика чужих публикаций оказывается куда более плодотворной. Помимо этого, когда он не борется в своем саду с сорняками и насекомыми, он пытается заставить роботов LEGO делать то, что они, по его мнению, должны делать (это все исключительно ради детей – честно!).

Благодарности

Выпуск третьего издания этой книги был бы просто невозможен без поддержки и помощи многих окружающих меня людей, Во-первых, следует выразить благодарность всей команде издательства Apress. Каждый из ее членов приложил немало усилий, чтобы превратить мою "сырую" рукопись в безупречный продукт. Далее, я должен выразить признательность моему научному редактору, Гэвину Смиту (известному также под псевдонимом Eagle Eye – Орлиный Глаз), который выполнил огромную работу, чтобы уберечь меня от множества ошибок. Все оставшиеся ошибки (опечатки, неточности в программном коде и т.д.), которые смогли "пробраться" в эту книгу, конечно же, лежат на моей совести.

Спасибо моим друзьям и членам моей семьи, которые (в очередной раз) терпели мои цейтноты, а иногда и связанную с этим несдержанность в поведении. Такой же благодарности заслуживают мои друзья и сотрудники из Intertech Training. Я очень ценю оказанную вами поддержку (как прямую, так и косвенную). Наконец, отдельное спасибо и "все фантики" моей жене Мэнди за ее любовь и содействие.

<p>Введение</p>

Я помню время, много лет тому назад, когда я предложил издательству Apress книгу, посвященную еще не выпущенному на тот момент пакету инструментальных средств разработки под названием Next Generation Windows Services (NGWS - сервисы Windows следующего поколения). Вы, наверное, знаете, что пакет NGWS в конечном счете стал тем, что сегодня называется платформой .NET. Параллельно с моими исследованиями в области разработки языка программирования C# и платформы .NET шло создание начального варианта соответствующей рукописи. Это был фантастический проект, но я должен признаться, что писать о технологии, которая претерпевала весьма значительные изменения в ходе своей разработки, было занятием, очень действующим на нервы. К счастью, после многих бессонных ночей, где-то к началу лета 2001 года, первое издание книги C# and the .NET Platform было опубликовано почти одновременно с выходом .NET 1.0 Beta 2.

С того времени я был чрезвычайно рад и благодарен тому, что эта книга очень благосклонно принимается прессой и, самое главное, читателями. За эти годы книга предлагалась в качестве номинанта на премию Jolt Award (я тогда "пролетел"…) и на премию Referenceware Excellence Award 2003 года в категории книг по программированию (и я счастлив, что на этот раз мне повезло).

Второе издание этой книги (C# end the .NET platform Second Edition) дало мне возможность включить в нее материал, соответствующий версии 1.1 платформы .NET. Хотя второе издание книги содержало обсуждение множества новых тем, ряд глав и примеров включить в окончательный вариант книги вcе же не удалось.

Теперь, когда книга представлена в третьем издании, я с удовлетворением могу заявить, что она содержит (почти) все темы и примеры, которые я не смог представить в предыдущих изданиях. Это издание не только учитывает все многочисленные усовершенствования, предлагаемые в .NET 2.0, но включает и ряд глав, которые, будучи давно написанными, оставались до сих пор неопубликованными – это касается, например, описания CIL (Common Intermediate Language – общий про-межуточный язык).

Как и в предыдущих изданиях, в этом, третьем издании книги на основе простого и понятного материала представлены язык программирования C# и библиотеки базовых классов .NET. Я никогда не понимал склонность некоторых авторов в созданию технических книг, более похожих на руководство по подготовке к экзамену GRE, чем пригодный для чтения текст. Задачей этого нового издания по-прежнему остается предоставление вам информации, необходимой для построения программных решений сегодня, а не расточительная: трата времени на рассмотрение множества деталей, которые оказываются важными для очень узкого круга специалистов.

<p>Вы и я – одна команда</p>

Публикации разработчиков новых технологий предназначены для очень требовательной аудитории (я должен знать это не понаслышке – ведь я один из них). Построение программных решений для любой платформы требует чрезвычайной детализации и учета множества особенностей соответствующей отрасли, компании, клиентской базы, а также учета сути дела. Вы можете работать в электронном издательстве, разрабатывать системы для федерального или местного правительства, работать в NASA или каком-то оборонном ведомстве. Я, например, разрабатывал программное обеспечение для обучения детей, создавал различные N-звенные системы и участвовал в многочисленных проектах для медицинских и финансовых учреждений. С вероятностью почти 100 процентов тот программный код, который вы создаете на своем рабочем месте, не имеет никакой связи с программным кодом, который пишу я (если, конечно, нам случайно не приходилось работать вместе).

Поэтому в этой книге я сознательно избегаю примеров, в которых программный код связан со спецификой определенных отраслей производства или сфер программирования. Я пытаюсь описать возможности C#, объектно-ориентированного подхода, CLR и библиотек базовых классов .NET 2.0 с помощью примеров, не использующих такой специфики. Вместо того чтобы в каждом примере заполнять таблицы реальными данными, рассчитывать платежки или выполнять какие-то другие специальные вычисления, я буду рассматривать объекты, с которыми могут иметь дело все,- например, автомобили (с их геометрическими формами и служащими соответствующего предприятия, добавленными для полноты картины). И тут на сцену должны выйти вы.

Моей целью является как можно более понятное объяснение возможностей языка программирования C# и описание различных аспектов его применения в рамках платформы .NET. Я сделаю все, что будет в моих силах, чтобы вы, используя знания и навыки, полученные в процессе работы над этой книгой, могли продолжить дальнейшее освоение соответствующих технологий.

Вашей целью является освоение этой информации и применение ее к вашим конкретным задачам программирования. Я, конечно, понимаю, что ваши проекты вряд ли напрямую связаны с автомобилями, имеющими имена домашних любимцев, но так уж заведено в прикладных науках! Уверен, если вы поймете концепции платформы .NET, представленные в этой книге, то сможете предложить и реализовать решения, подходящие для вашей конкретной среды программирования.

<p><strong>Обзор содержимого книги</strong></p>

Книга Язык программирования C# 2005 и платформа .NET 2.0, 3-е издание делится на пять логически обособленных разделов, каждый из которых состоит из глав, тем или иным образом связанных между собой. Если вы имели возможность ознакомиться с одним из предыдущих изданий этой книги, вы сможете заметить некоторое сходство в названиях ряда глав, но знайте, что здесь почти на каждую страницу был добавлен новый материал и дополнительные примеры. Вы можете также заметить, что некоторые темы, также освещенные в первом и втором изданиях (например, сериализация объектов и сборщик мусора .NET), здесь представлены в виде отдельных глав.

Кроме того, и вы вправе это ожидать, третье издание книги содержит несколько глав с совершенно новым материалом (в частности главу, посвященную синтаксису и семантике 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-комментариев в программном коде.

Похожие книги

Другие книги Эндрю Троелсен