Схема процессов разработки и исполнения Java-программ

Язык С# разрабатывался для создания кода .NET Framework, поэтому он использует две важные составляющие этой технологии:

- не зависящую от языка среду исполнения CLR, которая поддерживает программирование с использованием нескольких языков, обеспечивает переносимость кода и безопасность передачи данных;

- библиотеку классов .NET, которая дает программе доступ к среде исполнения,

-Microsoft позиционирует С# как универсальную переносимую платформу аналогичную Java. С# вобрал в себя лучшее от С++ и Java, устранив их недостатки. C# имеет стиль синтаксиса языка C (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и с Delphi (ориентированность на создание компонент), и в то же время имеет и свои особенности.

Важной и отличительной от языка С++ особенностью C# является его простота. При создании языка в основу дизайна легли следующие основные принципы:

- легкость написания приложений, доминирующая над мощностью языка и скоростью выполнения;

- простота поддержки приложений, в связи с чем в язык включили поддержку XML-комментариев и контроля версий.

Особенности языка C#

1. C# – ОО язык, как и вся платформа .NET. Более того, это язык, ориентированный на написание компонент. Язык позволяет рассматривать все типы (даже примитивные) как объекты. Указатели больше не нужны, но в отличие от Java обеспечивается возможность их использования. Управление памятью производится автоматически.

2. C# создан для программирования в управляемой среде с присутствующим сборщиком мусора, но позволяет писать и неуправляемый (unmanaged) код. Перед удалением недоступного объекта из памяти автоматически вызывается деструктор. В отличие от C++ деструктор не вызывается при выходе за пределы области видимости, в которой объект был создан. Для утилизации объектов, инкапсулирующих неуправляемые ресурсы, деструктор неявным образом вызывает метод Finalize для базового класса объекта.

3. В язык C# включены и инновационные элементы – делегаты (delegates) и индексаторы (indexers).

4. В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов. В С# осталась возможность перегружать операторы, унаследованные от C++. При этом значительная часть возникавших при этом сложностей ликвиди­рована.

5. В C# представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать систему типов, что делает код намного более понятным и оптимизирует именование. Можно рассматривать пространства имен как директории, а языковые типы как файлы в этих директориях.

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

7. C# позволяет использовать при разработке парадигму атрибутивного программирования, когда в компиляционных модулях вместе с типом может сохраняться метаинформация. Это позволяет присваивать типам характеристики для описания в будущем поведения данной сущности. Данная информация впоследствии может быть получена и использована во время выполнения, причем, не запуская компонент. Работа с атрибутами позволяет использовать COM, COM+ и DLL в C# приложениях, работающих в среде .NET.

8. В C# были предприняты меры для исключения ошибок при обновлении программного обеспечения. Изменение кода, в такой ситуации, может непредсказуемо изменить суть самой программы. Чтобы помочь разработчикам бороться с этой проблемой C# включает в себя поддержку совместимости версий. В частности, в отличие от C++ и Java, если метод класса был изменен, это должно быть специально оговорено. Это позволяет обойти ошибки в коде и обеспечить гибкую совместимость версий.

9. Также новой особенностью является native-поддержка интерфейсов и наследования интерфейсов.

Недостаток: язык С# генерирует код, предназначенный для выполнения только в среде выполнения .NET. Например, невозможно использовать С# для создания классического СОМ сервера.

 








Дата добавления: 2017-09-19; просмотров: 626;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.