Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Строительные блоки .NET

Введение в.NETFrameWork

Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться. Языки (C++, Visual Basic. Java), библиотеки (MFC. ATL. STL), архитектуры (COM. CORBA). которые стали вехами в развитии программирования за последние годы, постепенно уходят в тень лучших или. по крайней мере, более молодых программных технологий. Платформа.NET компании Microsoft — это следующая волна коренных изменений.

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

- Полные возможности взаимодействия с существующим кодом. Существующие двоичные компоненты СОМ работают вместе с двоичными файлами.NET.

- Полное и абсолютное межъязыковое взаимодействие. В отличие от классического СОМ. в.NET поддерживаются межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка.

- Общая среда выполнения для любых приложений.NET, вне зависимости от того, на каких языках они были созданы. При этом для всех языков используется один и тот же набор встроенных типов данных.

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

- Менее сложный процесс создания приложений. IClassFactory. IUnknown, код IDL, VARIANT-совместимые типы данных и остальные больше не используются в программах.NET.

- Упрощение процесса развертывания приложения. В.NET нет необходимости регистрировать информацию в системном реестре.

 

Технологии Common Language Runtime (CLR). Common Type System (CTS) и Common Language Specification (CLS) очень важны для понимания смысла платформы.NET. С точки зрения программиста.NET можно рассматривать как новую среду выполнения и новую библиотеку базовых классов.

Новая среда выполнения.NET обеспечивается с помощью Common Language Runtime (CLR стандартная среда выполнения для языков). Главная роль CLR заключается в том. чтобы обнаруживать и загружать типы.NET и производить управление ими. CLR берет на себя всю низкоуровневую работу например. автоматическое управление памятью, межъязыковым взаимодействием, развертывание (с отслеживанием версий) различных двоичных библиотек.

Еще один строительный блок платформы.NET — это Common Type System (CTS. стандартная система типов). CTS полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных.NET. Важно понимать, что не во всех языках программирования.NET обязательно должны поддерживаться все типы данных, которые определены в CTS.

Common Language Specification (CLS) — это набор правил, определяющих подмножество общих типов данных, в отношении которых гарантируется, что они безопасны при использовании во всех языках.NET. Если создаются типы.NET с использованием только тех возможностей, которые совместимы с CLS, тем самым они делаются пригодными для любых языков.NЕТ.

Помимо спецификаций CLR и CTS/CLS платформа.NET предоставляет также библиотеку базовых классов, доступную из любого языка программирования.NET. Библиотека базовых классов не только прячет обычные низкоуровневые операции, такие как файловый ввод-вывод, обработка графики и взаимодействие с оборудованием компьютера, но и обеспечивает поддержку большого количества служб, используемых в современных приложениях. В качестве примера можно привести встроенные типы для обращения к базам данных, работы с XML, обеспечения безопасности при работе приложения, создания приложений для работы в Web. С концептуальной точки зрения отношения между уровнем среды выполнения и библиотекой базовых классов.NET выглядят так, как показано на рис. 5.1.

 

      Базовая библиотека классов      
  Доступ к данным   GUI   Безопасность   XML/SOAP  
                 
  Управление потоками   Файловый ввод/вывод   Отладка   Прочее  
                 
  Common Language Runtime  
  Common Type System   Common Language Specification  
         
         
                         

Рис. 5.1. Отношения между средой выполнения и библиотекой базовых классов.NET.

 

Специально для платформы.NET Microsoft был разработан новый язык про­граммирования С#. С# — это язык программирования, синтаксис которого очень похож на синтаксис Java (но не идентичен ему). Например, в С# (как в Java) определение класса состоит из одного файла (*.cs), в отличие от С++, где определение класса разбито на заголовок (*.h) и реализацию (*.срр). Однако называть С# клоном Java было бы неверно. Как С#, так и Java основаны на синтаксических конструкциях С++. Если Java во многих отношениях можно назвать очищенной версией C++, то С# можно охарактеризовать как очищенную версию Java. Синтаксические конструкции С# унаследованы не только от C++, но и от Visual Basic. Например, в С#, как и в Visual Basic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов (Java не поддерживает ни ту, ни другую возможность). С# — это фактически гибрид разных языков. При этом С# синтаксически не менее (если не более) чист, чем Java, так же прост. как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++. Подводя итоги, еще раз выделим основные особенности С#.

- В программах на С#. как правило, нет необходимости в работе с указателями (однако если это потребуется, то возможности для работы с указателями остались).

- Управление памятью производится автоматически.

- В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов.

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

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

- Также предусмотрена полная поддержка аспектно-ориентированных про­граммных технологий (таких как атрибуты). Это позволяет присваивать типам характеристики (что во многом напоминает COM IDL) для описания в будущем поведения данной сущности.

 

<== предыдущая лекция | следующая лекция ==>
Finally | Понятие и типы сборок
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 898; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.