Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
ВВЕДЕНИЕ
ЗАЧЕМ СОЗДАВАТЬ ЕЩЕ ОДИН ЯЗЫК?
Вероятно, сейчас вы задаете себе вопрос: "Почему я должен изучать очередной язык? Почему нельзя использовать C++?" (VB, Java или другой язык, на котором вы предпочитаете работать). По крайней мере, вы наверняка задали себе этот вопрос перед тем, как купить книгу.
Языки программирования отчасти похожи на рабочие инструменты - у них также есть свои сильные и слабые стороны. Хотя бревно можно распилить лобзиком, гораздо удобнее сделать это при помощи пилы. Аналогично компьютерную игру с большим количеством графики можно написать на языке типа LISP, но, наверное, на C++ это сделать проще.
С# (произносится "си-шарп") является родным языком среды .NET Common Language Runtime. Более того, естественная интеграция с .NET Common Language Runtime была одной из целей, преследуемых при его разработке. Вы можете программировать для .NET на Visual C++ или Visual Basic (а иногда это просто неизбежно), однако в большинстве случаев С# лучше подойдет для ваших целей. Поскольку среда Common Language Runtime занимает центральное место во многих аспектах С#, в главе 2 будут представлены ее важнейшие компоненты - по крайней мере, значимые для языка С#.
ОСНОВНЫЕ ЦЕЛИ ПРОЕКТИРОВАНИЯ С#
При первом появлении C++ произвел настоящую сенсацию. Это был язык для создания объектно-ориентированных программ, который не требовал от программистов С забыть свой опыт программирования или отказаться от усилий, затраченных на разработку программ. Он не был в полной мере объектно-ориентированным, как языки типа Eiffel, однако его объектно-ориентированные возможности были вполне достаточны для того, чтобы приносить большую практическую пользу.
То же самое можно сказать и о С#. В сочетании с .NET Common Language Runtime этот язык может применяться для разработки объектно-ориентированных программ с привлечением всего опыта программирования С, C++ или СОМ.
Итак, язык С# предназначен для построения надежных, устойчивых к ошибкам компонентов, используемых в практических ситуациях.
СОЗДАНИЕ ПРОГРАММНЫХ КОМПОНЕНТОВ
Среда .NET Common Language Runtime построена на компонентной базе. Вполне естественно, одной из целей проектирования С# было упрощение создания компонентов. С# является "компонентно-ориентированным" языком в том смысле, что все объекты оформляются в виде компонентов и все происходящее так или иначе связано с компонентами.
Такие концепции компонентов, как свойства, методы и события, имеют первостепенное значение для языка и базовой среды времени выполнения. С компонентами может быть связана декларативная информация (атрибуты), которая передает сведения о компонентах другим частям системы на стадии конструирования или выполнения. Существует возможность внедрения документации в компоненты и ее экспортирования в XML.
Для создания и использования объектов С# не нужны заголовочные файлы, IDL-файлы или библиотеки типов. Компоненты, созданные на С#, содержат всю необходимую информацию о себе и могут использоваться без процесса регистрации.
В создании компонентов на помощь С# приходят .NET Runtime и Frameworks. В результате возникает унифицированная система типов, в которой все данные интерпретируются как объекты без понижения быстродействия, характерного для чистых объектно-ориентированных систем вроде SmallTalk.
НАДЕЖНОСТЬ И УСТОЙЧИВОСТЬ ПРОГРАММНОГО КОДА
В компонентно-ориентированном мире возможность создания надежного и устойчивого к ошибкам программного кода очень важна. Web-серверы могут целыми месяцами работать без перезагрузок, к тому же незапланированные перезагрузки весьма нежелательны.
Система сборки мусора снимает с программиста тяжкое бремя управления памятью, а проблема написания компонентов для разных версий упрощается благодаря определяемой семантике данных версии и возможности отделения интерфейса от реализации. Числовые операции можно проверять на предмет переполнения, а у массивов поддерживается проверка границ.
Программирование на С# отличается простотой, надежностью и логичностью. Механизм обработки ошибок в нем не выглядит каким-то запоздалым дополнением, а исключения обрабатываются практически на любом уровне. С# безопасен по отношению к типам. Он защищен от использования неинициализированных переменных, небезопасных преобразований типов и других распространенных ошибок программирования.
ПРАКТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Программирование давно покинуло область "чистой науки". Программы редко строятся на пустом месте; они должны соответствовать некоторым требованиям к быстродействию, интегрироваться с существующим программным кодом, а их написание должно быть оправдано с позиций затрат времени и денег. Даже хорошо спроектированная среда не принесет особой пользы, если она не обладает достаточными возможностями для практического применения.
С# обладает всеми преимуществами элегантной унифицированной среды, но при этом предоставляет доступ и к менее "почтенным" возможностям (например, указателям), когда этого требует конкретная ситуация.
С# бережет усилия, затраченные на разработку готового программного кода. Существующие объекты СОМ могут использоваться так, словно они являются объектами .NET. Среда .NET Common Language Runtime действует таким образом, что во время выполнения программы существующий СОМ-код воспринимает объекты как объекты СОМ. Из программного кода С# можно обращаться к коду С, находящемуся в файлах DLL.
При необходимости С# позволяет использовать низкоуровневые средства. Облегченные объекты могут выделяться из стека, но при этом все равно работают в унифицированной среде. Низкоуровневый доступ реализуется в режиме unsafe, позволяющем использовать указатели в ситуациях, когда быстродействие является критическим фактором или указатели необходимы для работы с существующими библиотеками DLL.
С# построен на базе наследия C++, поэтому программисты C++ очень быстро осваиваются в нем. Этот язык быстро изучается, повышает эффективность труда программиста и не требует лишних жертв,
Наконец, С# широко использует возможности среды .NET Common Language Runtime, обеспечивающей обширную библиотечную поддержку для решения общих и специализированных задач программирования. .NET Runtime, Frameworks и языки объединяются в среде Visual Studio, предоставляющей все необходимые средства в распоряжение программиста .NET.
Начало
О чем эта книга
Краткое содержание
Полное содержание
Предисловие
Заказать книгу в магазине "Мистраль"