Хелпикс

Главная

Контакты

Случайная статья





Технология .NET



1.3. Технология .NET

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

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

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

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

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

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

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

 

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

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

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

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

Новизна архитектуры .NET базируется на «трех технологических китах»:

1. Исполняемые файлы компилируются в коды специального промежуточного языка MSIL.

2. Совместно с кодом программы исполняемые файлы содержат метаданные - всю служебную информацию о приложении.

3. Приложения .NET компилируются в машинный код по мере необходимости и выполняются в платформенно-зависимой среде выполнения.

 

Задание:

Microsoft Visual Studio .NET - это интегрированная среда разработки (Integrated Development Environment (IDE)) для создания, документирования, запуска и отладки программ, написанных на языках .NET. Это мощный инструмент профессиональной разработки сложных приложений.

События мыши

В Интернете часто встречается шуточная программка, представляющая собой диалоговое окно с двумя кнопками. Для ответа на предлагаемый вопрос следует нажать на одну из двух кнопок, причем вторая кнопка при наведении на нее курсора начинает "убегать" от него. Создадим подобное на C#. Создаем новое Windows-приложение и называем его SocOpros. Из окна Toolbox перетаскиваем на форму две кнопки Button и надпись Label. Устанавливаем следующие свойства элементов управления и формы:

Form1, форма, свойство Значение
FormBorderStyle Fixed3D
Icon Путь С:\Program Files\Microsoft Visual Studio .NET2003\Common7\Graphics\icons\....
Size 344; 176
Text Социологический опрос
Label1, свойство Значение
Size
Bold True
Location 32; 28
Size 272; 32
Text Вы довольны своей зарплатой?
Button1, свойство Значение
Name Btnyes
Location 67; 92
Text Да
Button2, свойство Значение
Name btnno
Location 195; 92
Text Нет

 

Щелкаем дважды по кнопке "Да". В обработчике этой кнопки вставляем следующий код:

private void btnyes_Click(object sender, System.EventArgs e){

MessageBox.Show("Мы и не сомневались, что Вы так думаете!");

}

 

Выделяем кнопку "Нет". Открываем окно Properties. Переключаемся в окно событий и дважды щелкаем в поле MouseMove (рис. 3).

Рисунок 3 – Событие MouseMove для кнопки btnno

 

Надпись на информационной панели — "Происходит, когда мышь перемещается"

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

 

private void btnno_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e){

btnno.Top -= e.Y;

btnno.Left += e.X;

if (btnno.Top < -10 || btnno.Top > 100)

btnno.Top = 60;

if (btnno.Left < -80 || btnno.Left > 250)

btnno.Left = 120;

}

 

Запустите приложение. Теперь, при выборе "Да" появляется окно с надписью, а при попытке нажать на кнопку "Нет" она "убегает" (рис. 4).

 

 

Рисунок 4 - Готовое приложение SocOpros

 

С событиями мыши связано большинство инструментов во многих программах, а для некоторых, например, графических, — это основа всего взаимодействия с пользователем. Другие события мыши — такие как MouseDown, MouseEnter, MouseUp — могут быть использованы для получения необычной реакции на действия пользователя в этом приложении.

 

- Ответить на контрольные вопросы.

 

Контрольные вопросы

1.   Microsoft.NET?

2. Структура платформы .NET.

3. Платформа .NET.

4. Архитектура .NET.

5. Операционная среда .NET Framework.

6. Приложения .NET.

7. Службы .NET.

8. Универсальный пользовательский интерфейс.

9. Что такое сборка?

10. На каких «трех технологических китах» базируется новизна архитектуры .NET?

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.