
- •Тема 1. Информационные процессы и средства их реализации
- •Традиционные и новая технологии разраб. Прогр.
- •Язык с#. Компонентно-ориентированный язык
- •Платформа .Net
- •Устанавливаемое на компьютер по .Net
- •Готовые блоки кода
- •Visual Studio .Net позволяет создавать приложения для:
- •Интерпретатор,
- •Управляемый модуль — это стандартный переносимый исполняемый (portable executable, ре) файл Windows на промежуточном языке il, который требует для своего выполнения clr. Языки для платформы .Net
- •Программа на промежуточном языке msil
- •Переносимость
Язык с#. Компонентно-ориентированный язык
Автор
Андерс Хейлсберг (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);
чисто объектный подход (идеальный с математической точки зрения вариант, который пока не реализован практически).
Модульное
программирование
Структурное
программирование
Объектно-ориентированное
программирование
Логическое
программирование
Функциональное
программирование
Безопасное
компонентно-ориентированное
программирование
сильно
распределенных приложений с интеграцией
с Интернет и другими языками
программирования, а так же независимостью
от платформ