Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Основные принципы построения архитектуры .NET.

Читайте также:
  1. A)простые, синтетические, аналитические, основные
  2. I. Общеметодологические (общесистемные) принципы.
  3. I. Основные богословские положения
  4. I. Основные положения
  5. I. ОСНОВНЫЕ ПОНЯТИЯ
  6. I. Основные формы исследования ППО
  7. I. Основные характеристики финансовых активов
  8. II. Общие принципы Конвенции о правах ребенка и законодательства Российской Федерации
  9. II. Основные положения по организации практики
  10. II. Основные права и обязанности обучающихся

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

CLR предоставляет исполняемому коду определенный набор сервисов. Например, CLR поддерживает создание и манипулирование потоками. Поэтому любой язык, который может использовать CLR, сможет использовать потоки.

Код, который нуждается в CLR во время выполнения, называется “управляемый” (managed) код. Ответственность за такие задачи как создание объектов и вызов методов возлагается на CLR. Код, который не нуждается в CLR, называется “неуправляемый” (unmanaged) код.

Common Language Runtime (CLR)

Автоматическое управление ресурсами

Выполнение на многих платформах

Согласующаяся модель программирования

Контроль типов

Интеграция языков

Общая система типов (Common Type System)

Assemblies - управляемые компоненты

Промежуточный Язык и JIT компилятор

 

4. Сравнительная характеристика языков C# и С++.

Эти языки очень похожи своим синтаксисом и вообще многим. Но всё-таки есть существенные различия, о которых никак нельзя забывать.

В C# используется безопасный код. А это значит, что нельзя использовать никакие указатели и распределение памяти. C++ те же самые указатели имеют далеко не последнее место и программисты часто с ними работают. Поэтому никакой адресации в C# быть НЕ должно! Во-вторых, в C# реализованы новые типы данных, которых нет в С++. В-третьих, нет такой широкой реализации наследования и шаблонов. Зато в C++ это широко применяется. Думаю, что эти три пункта будут основными различиями. Помимо них есть небольшие различия в структурах, массивах и классах. Ну и небольшие расхождения в семантике и синтаксисе.

Результатом компиляции программы на C++ чаще всего является т.н. Native Code - набор бинарных инструкций непосредственно для микропроцессора (CPU). Такая программа имеет доступ к низкоуровневым ресурсам (железу), за небольшим исключением, накладываемым операционной системой. Контроль ресурсов осуществляется самой программой и операционной системой. Это накладывает большую ответственность на программиста, но и дает ему больше свободы действий. При условии, что руки не кривые и мозг на месте (что, вопреки самомнению большинства далеко не всегда так). Компиляция осуществляется, как правило, под конкретную платформу (ОС, архитектуру процессора).

На C# пишутся программы исключительно для Microsoft.NET Framework (аналог виртуальной машины Java от Microsoft) - необходимо, чтобы он был установлен на машине, где будет исполняться код (причем, именно та версия, под которую скомпилирована программа). Т.е. программа представляет собой не бинарный исполняемый код, а набор инструкций на MSIL (microsoft intermediate language) исполняемых средой CLR (common language runtime). Превращение MSIL в бинарный код, исполняемый процессором (еще одна компиляция) происходит в момент первого запуска.NET программы. Причем компиляция именно под платформу (OS, архитектуру процессора), на которой программа запускается. Выделение, контроль ресурсов и некоторых прав доступа осуществляются виртуальной машиной CLR. Тем не менее, производительность очень близка к производительности программ, являющими собой Native Code - ибо результатом второй компиляции тоже является Native Code, и именно он выполняется процессором. Тем не менее, контроль ресурсов со стороны CLR позволяет избежать многих типичных ошибок (например, утечки памяти). Платой за это являются чуть более высокие требования к ресурсам (впрочем, как и при использовании Java, Python и прочих виртуальных сред исполнения, а также универсальных фреймворков типа Qt, Gtk и прочих). Тем не менее, через CLR можно решить не все задачи - например, драйвер какого-нибудь устройства на.NET написать нельзя. Зато стоимость разработки бизнес-приложений на порядок меньше за счет готовых реализаций наиболее типичных вспомогательных задач программирования и меньших затрат на отладку приложений.

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




Дата добавления: 2015-01-30; просмотров: 92 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | <== 3 ==> | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав