Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 (ч.5 дополн). СП С#.doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
520.19 Кб
Скачать

Язык с#. Компонентно-ориентированный язык

  • Автор Андерс Хейлсберг (Microsoft).

  • Возник в 2000 г. как новый язык (причем пока единственный) для новой технологии .NET с целью повышения производительности разработки больших программ с использованием классов и компонентов.

  • Поддерживается технология распределенных приложений, получаемых через Internet.

  • Наиболее популярен сейчас.

  • Является наследником лучших возможностей языков С, С++ и Java, но лишен их недостатков.

  • Достоинства:

    • гораздо проще в изучении

    • независимость от платформы (переносимость)

    • мощный язык системного и прикладного программирования (адресная арифметика)

    • реализуется более простая технология использования сетевых компонентов

    • использует новую библиотеку классов для .NET

    • безопасность

    • поддержка Web-служб

    • Вместо неконтролируемого использования DLL-библиотек реализована концепция сборок, обеспечивающая средства контроля версий компонентов. Сборка полностью концентрирует в себе всю информацию о приложении (ранее: реестр, EXE, DLL и т.д. Реестр забит информацией о тысячах компонентов).

К особенностям С# относятся:

  • Полная поддержка классов и объектно-ориентированного программирования, включая наследование интерфейсов и реализаций, виртуальных функций и пере­грузки операторов.

  • Полный и хорошо определенный набор основных типов.

  • Встроенная поддержка автоматической генерации XML-документации.

  • Автоматическое освобождение динамически распределенной памяти.

  • Возможность отметки классов и методов атрибутами, определяемыми пользова­телем. Это может быть полезно при документировании и способно воздейство­вать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).

  • Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).

  • Указатели и прямой доступ к памяти, если они необходимы. Однако язык раз­работан таким образом, что практически во всех случаях можно обойтись и без этого.

  • Поддержка свойств и событий в стиле VB.

  • Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).

  • Возможность использования С# для написания динамических web-страниц ASP.NET.

Надо отметить, что большинство из приведенного выше справедливо и для VB.NET, и для управляемого C++. Однако тот факт, что С# создан с нуля для работы с .NET, озна­чает, что он более полно поддерживает все особенности .NET и предлагает в этом кон­тексте более удобный синтаксис, чем остальные языки.

Сам по себе язык С# похож на Java, однако есть некоторые улучшения, и, кроме того, Java не создан для работы в среде .NET.

Подводя черту, можно сказать, что С# является не только мощным языком, который не сложен в изучении, но и, пожалуй, единственным языком на рынке, который был со­здан на основе современных технологий и инструментов разработки. Изучая опыт пре­дыдущих языков, Microsoft может гарантировать, что С# хорошо проработан и позволяет быстро получать высококачественный код.

Подходы к программированию:

  • ранние неструктурные подходы;

  • структурный или модульный подход (задача разбивается на подзадачи, затем на алгоритмы, составляются их структурные схемы и осуществляется реализация);

  • функциональный подход;

  • логический подход;

  • объектно-ориентированный подход;

  • смешанный подход (некоторые подходы можно комбинировать);

  • компонентно-ориентированный (программный проект рассматривается как множество компонент, такой подход принят, в частности, в .NET);

  • чисто объектный подход (идеальный с математической точки зрения вариант, который пока не реализован практически).

  • Модульное программирование

  • Структурное программирование

  • Объектно-ориентированное программирование

  • Логическое программирование

  • Функциональное программирование

Безопасное компонентно-ориентированное программирование

сильно распределенных приложений с интеграцией с Интернет и другими языками программирования, а так же независимостью от платформ