.RU

Три вопроса о .NET - Учебное пособие для студентов специальности 051312 по дисциплине «Высокоуровневые методы инорматики...


^ Три вопроса о .NET

Начнем с определения платформы .NET , а затем обратимся к общему описанию архитектуры .NET Framework и деталям ее реализации.



Рис. 1. Архитектура .NET Framework


Дадим следующее определение платформы .NET: Платформа .NET— это совокупность программных средств, обеспечивающих разработку приложений на основе промежуточного кода и их выполнение в специализированной операционной среде .NET Framework.


Теперь поставим три вопроса:

  1. Что такое .NET

  2. Необходимость создания новой технологии

  3. Как она работает в целом.



^ Что такое .NET

Платформа .NET — это совокупность всех средств разработки, распространения и выполнения приложений .NET, включая операционные системы, серверы, сервисы, стандарты, спецификации и документацию.

В состав платформы входят следующие программные средства.

В первую очередь это средства разработки приложений. Microsoft специально для этого выпустила Visual Studio .NET. Также можно применять любое средств разработки, разработанное другими фирмами, в частности, Borland.

Созданные приложения выполняются при помощи операционной среды .NET Framework (рассмотрим ниже) — и это второй элемент платформы. Специально для нужд .NET разработано семейство серверных операционных систем Windows .NET Server 2003, также новейшая операционная система Windows Vista. И наконец, расширяемый набор служб .NET Building Block Services объединяет службы со стандартными функциями, используемыми приложениями.



^ Зачем нужен .NET

Для примера рассмотрим проект сложного распределенного приложения, включающего клиентские приложения с Web- и Windows-интерфейсом, разнообразные службы, серверы баз данных и т. д. Полный цикл создания подобных приложений— процесс трудоемкий и непростой. Составные части такого приложения очень часто разрабатываются при помощи различных языков программирования и инструментариев. Различаются и подходы к разработке уровней приложения. Поэтому здесь всегда существовали трудности интеграции составных частей, проблемы с управляемостью кода и его верификацией, недоразумения с контролем версий и т. д.

Платформа .NET позволяет упростить процесс и повысить эффективность разработки распределенных приложений. Приведем несколько примеров:



^ Как работает технология .NET

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



Рис. 2. Схема работы .NET Framework


Сначала разработчик выбирает среду разработки, компилятор которой обеспечивает создание промежуточного кода на языке MSIL. При помощи инструментов Microsoft разработчик может работать с языками С#, C++, Visual Basic. Помимо этого еще около 20 независимых компаний анонсировали собственные продукты или планы их разработки.

Итак, разработчик выбрал инструментарий, разработал некое приложение и откомпилировал его. В результате получается код приложения на промежуточном языке MSIL, который не интерпретируется в машинные команды. Поэтому приложение .NET получается независимым от конкретных реализаций операционной системы и аппаратной платформы.

Готовое приложение .NET состоит из сборок. Сборка — это один или несколько файлов, в которых помимо собственно кода MSIL приложения также включены метаданные — разнообразная служебная информация о самом приложении. В результате отпадает необходимость в регистрации приложения в системном реестре, подобно приложениям СОМ, ведь вся необходимая информация доступна вместе с приложением. Сюда же, к примеру, можно добавить сведения о версии приложения и т. д.

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

При запуске приложения в дело вступает среда выполнения приложения Common Language Runtime, которая при помощи загрузчика загружает сборки приложения и обеспечивает его выполнение. Но для этого необходимо преобразовать код MSIL в машинные команды процессора.

Описанный механизм далеко не нов и неоднократно использовался в более ранних технологиях. К примеру, ранние версии Visual Basic генерировали интерпретируемый или Р-код, или байт-код (разные наименования одной сущности), который затем преобразовывался в машинные команды специальным интерпретатором. Виртуальные машины Java также реализуют подобный подход и берут на себя исполнение Java-кода. Безусловный и принципиальный недостаток подобных решений — дополнительные затраты вычислительных ресурсов на преобразование кода и в этом смысле обычные исполняемые двоичные ЕХЕ-файлы эффективнее. Безусловные преимущества такого подхода — абстрагирование кода приложения от реализации функций операционной системы и возможность реализовать "интеллектуальное выполнение" кода, управляя интерпретируемым кодом.

Разработчики .NET постарались решить проблему эффективности интерпретируемого кода. Для этого в составе .NET Framework имеется Just In Time (JIT) компилятор, который выполняет преобразование кода MSIL в машинные команды по мере вызова подпрограмм. Как только в коде встречается вызов подпрограммы, загрузчик CLR находит и загружает необходимый фрагмент кода в компилятор JIT. В результате ненужная в данный момент часть кода приложения может быть вообще не откомпилирована. Откомпилированный в ходе одного сеанса выполнения приложения код можно использовать многократно, CLR позаботится о том, чтобы сохранить его на протяжении сеанса работы с приложением. Кроме этого, CLR может хранить однажды откомпилированный код подпрограмм на жестком диске и вызывать его при повторных обращениях к приложению.

На выходе компилятора создается так называемый управляемый код, который затем исполняется в среде CLR. Код называется управляемым, т. к. он содержит метаданные, позволяющие CLR, кроме очевидной функции управлением компиляцией, выполнять и многие другие операции, к которым относятся проверка безопасности, проверка прав, контроль версий, сборка мусора и т. д. Напомним, что все это делается с помощью метаданных, содержащихся в сборке приложения .NET.

Таким образом, разработка приложений .NET выполняется в специализированных средах, а выполнение подразумевает использование операционной среды .NET Framework. Новизна архитектуры .NET базируется на "трех технологических китах":



^ Сборки, метаданные и промежуточный код
Согласно рассмотренной схеме разработки и выполнения приложений .NET, компиляторы исходных языков программирования, используемых разработчиками, компилируют приложение не в машинный код для конкретной операционной системы и процессора, а в промежуточный код на языке MSIL. Полученный таким образом исполняемый файл, помимо собственно кода приложения, содержит и метаданные — служебную информацию о приложении. Такие исполняемые файлы называются сборками и являются аналогами файлов EXE и DLL для обычных приложений. Затем при выполнении приложения сборка загружается операционной средой .NET Framework и уже там компилируется в машинный код. Такая схема выполнения приложения в архитектуре .NET дает существенные преимущества:


Но, конечно, у такого подхода есть и недостатки. Разработчики Microsoft, разумеется, знали об этом и постарались ликвидировать или минимизировать большинство проблем. Наиболее очевидные из них:




tehnika-voobrazheniya-psihofizicheskaya-problema-10.html
tehnikali-bajaudi-haliarali-sertifikatin-beru-memlekettk-krsetletn-izmet-standarti.html
tehnikali-tapsirma-ultradibisti-diagnostikali.html
tehnikali-zhne-ksptk-blm-beru-mamanditari-bojinsha-lglk-ou-zhosparlari-men-lglk-blm-beretn-ou-badarlamalarin-bektu-turali.html
tehnikali-zhne-ksptk-orta-blmnen-kejng-blm-beretn-jimdara-zhattar-abildau-memlekettk-krsetletn-izmet-standarti.html
tehnikatehnicheskie-nauki-matematika.html
  • obrazovanie.bystrickaya.ru/prioritetnie-programmi-sber-i-osnovnie-napravleniya-sotrudnichestva-v-regione-sovet-gosudarstv-baltijskogo-morya-stranica-3.html
  • vospitanie.bystrickaya.ru/zakon-chuvashskoj-respubliki-stranica-23.html
  • thescience.bystrickaya.ru/gubernator-provel-soveshanie-posvyashennoe-razvitiyu-velosporta-v-regione.html
  • composition.bystrickaya.ru/osobo-ohranyaemie-prirodnie-territorii-gosudarstvennoe-uchrezhdenie-kulturi.html
  • learn.bystrickaya.ru/filosofskie-predposilki-v-strukture-nauchnogo-znaniya-a-v-volkov-nauka-v-zerkale.html
  • report.bystrickaya.ru/katastrofa-evrejstva-sovetskogo-soyuza-stranica-11.html
  • testyi.bystrickaya.ru/avtor-hotel-bi-virazit-svoyu-glubokuyu-i-iskrennyuyu-priznatelnost-tem-kto-sdelal-vse-ot-nih-zavisyashee-chtobi-kniga-poluchilas-kak-mozhno-luchshe-stranica-50.html
  • lecture.bystrickaya.ru/4-rabskoe-mesto-sergej-ermakov.html
  • reading.bystrickaya.ru/koncepciya-prodvizheniya-torgovoj-marki-na-rossijskom-rinke-fmcg-na-primere-ooo-vinzavod-tolyattinskij-59-stranica-7.html
  • textbook.bystrickaya.ru/kniga-povestej-i-rasskazov-stranica-3.html
  • literature.bystrickaya.ru/ekologiya-i-ustojchivoe-razvitie.html
  • ucheba.bystrickaya.ru/poyasnitelnaya-zapiska-k-godovomu-otchetu-kommercheskogo-banka-mezhregionalnij-kliringovij-bank-ooo.html
  • upbringing.bystrickaya.ru/konkurs-knigocheev-komandnaya-igra-dlya-uchashihsya-5-h-klassov-scenarij-zaveduyushaya-bibliotekoj-gou-sosh-15.html
  • uchitel.bystrickaya.ru/realizaciya-zadach-godovogo-plana-v-marte-2010-goda-godovoj-plan-vospitatelno-obrazovatelnoj-raboti-municipalnogo.html
  • literatura.bystrickaya.ru/shnajder-romi-19381982-i-a-musskij-100-velikih-akterov.html
  • esse.bystrickaya.ru/rabochaya-programma-po-discipline-matematika-po-napravleniyu-080100-ekonomika.html
  • otsenki.bystrickaya.ru/sopostavlenie-nakazaniya-i-disciplinarnoj-meri-zig-ziglar-iskusstvo-prodazh.html
  • shkola.bystrickaya.ru/otdelenie-valeologii-i-psihofiziologii.html
  • holiday.bystrickaya.ru/nikitina-t-gr-11eus-n-i-aleshenkova-aleshenkov-a-gr-11-odsp.html
  • control.bystrickaya.ru/ekzamenacionnaya-programma-po-svyashennomu-pisaniyu-i-bogoslovskim-disciplinam-dlya-postupayushih-v-obshecerkovnuyu-aspiranturu-i-doktoranturu-na-osnovanii-programm-moskovskoj-i-sankt-peterburgskoj-duhovnih-akademij.html
  • universitet.bystrickaya.ru/tema-6-uchet-ustavnogo-kapitala-kommercheskogo-banka-uchebno-metodicheskij-kompleks-po-discipline-uchet-v-kommercheskom.html
  • universitet.bystrickaya.ru/tema-fiziologiya-pishevareniya-plani-prakticheskih-zanyatij-po-normalnoj-fiziologii-dlya-studentov-lechebnogo-fakulteta.html
  • education.bystrickaya.ru/14-rashodi-na-marketingovie-uslugi-spravochnik-buhgaltera-po-rashodam-sosnauskene-o-i-klokova-a-v-tihonova-e-p.html
  • uchenik.bystrickaya.ru/lichnost-chajkovskogo-cheloveka-i-hudozhnika.html
  • teacher.bystrickaya.ru/glava-4-kak-ya-popal-v-reklamu-klod-hopkins-moya-zhizn-v-reklame-pervij-iz-mogikan.html
  • klass.bystrickaya.ru/5-upravlenie-akademiej-ademika-d-n-pryanishnikova.html
  • klass.bystrickaya.ru/administraciya-goroda-rostova-na-donu-postanovlenie-stranica-3.html
  • university.bystrickaya.ru/glava-ii-uroki-vojni-1914-1918-gg-v-artillerijskom-otnoshenii-kniga-na-sajte.html
  • uchit.bystrickaya.ru/uchastie-v-intellektualno-razvivayushih-igrah-otchet-o-prodelannoj-rabote-studencheskogo-soveta-ekonomicheskogo-fakulteta.html
  • klass.bystrickaya.ru/52-tehnologiya-organizacii-poznavatelnoj-deyatelnosti-studentov-s-uchetom-ih-individualno-psihologicheskih-osobennostej.html
  • zadachi.bystrickaya.ru/pirej-greciya.html
  • turn.bystrickaya.ru/polozhenie-o-poryadke-predostavleniya-subsidij-subektam-malogo-i-srednego-predprinimatelstva-na-sozdanie-sobstvennogo-dela.html
  • university.bystrickaya.ru/glava-shestaya-gestalt-therapy.html
  • lecture.bystrickaya.ru/46-torgovie-organizacii-mogut-ispolzovat-sleduyushie-varianti-ucheta-tovarov-otmetit-nepravilnij-variant.html
  • occupation.bystrickaya.ru/nensi-makvilyams.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.