Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





ActiveX Doc Migration Wizard. Если выбрать какой-нибудь стандартный ЕХЕ-проект, разработанный для выполнения на персональном компьютере и даже использующий таблицы СУБД, то его можно с помощью этого мастера легко превратить в Интернет-приложение. Мастер-волшебник задаст всего несколько вопросов, на которые легко ответить, и преобразует шаблон приложения так, что он из обычного приложения превратится в приложение ActiveX ЕХЕ, способное работать в Интернете. При этом мастер добавит объект userDocument в преобразованный проект подготовки приложения.

С объектом UserDocument будут связаны два файла:
- файл с расширением .dob — текстовый файл, содержащий исходный текст и значения свойств объекта userDocument, а также элементов управления, имеющихся в форме (например, элемент управления таблицей СУБД, включающий описание ее местоположения и т. д.);
- файл с расширением .dox — в этом файле хранятся все графические элементы и ресурсы, например рисунки, требующиеся для оформления элементов управления.

 

Кроме этих двух файлов в папке проекта при его преобразовании к виду ActiveX (.dll или .ехе — в зависимости от предназначения приложения — внешнее или внутреннее) будет создан еще один очень важный файл с расширением .vbd (Visual Basic Document). Как правило, он формируется с именем главной формы и служит в основном только затем, чтобы именно его указывать в качестве имени приложения, вызываемого на выполнение из браузера.
Для проекта FitstApp — это будет файл с именем docforml.vbd (рис. 1.24).

 

Рис. 1.24. Файл docforml.vbd в окне браузера

Что при этом происходит? Браузер загружает ActiveX-приложение в свое пространство, выделяя ему заданный прямоугольник в окне, и предоставляет фактический карт-бланш, в том смысле, что приложение получает полный контроль над компьютером, так, как если бы оно выполнялось не в браузере, а в реальности было запущено на том компьютере, куда приложение было загружено. В этом, конечно же, таится очень большая опасность.

Следует помнить, что браузер — это вовсе не графическая оболочка для исполнения команд и программ, что-то вроде графического Shell в Unix. Нет, в понимании Microsoft нынешний браузер является неотъемлемой частью операционной системы. Ведь в точности таким же способом, каким вы только что подготовили полнофункциональное приложение для исполнения его через браузер, вы можете загрузить через Интернет какое-нибудь другое приложение, которое, с точки зрения архитектуры и внутренней структуры, ничем не будет отличаться от вашего, но может скрывать в себе потенциальную угрозу для компьютера.

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

В Visual Basic для этих целей существует специальный мастер под названием Package and Deployment Wizard. Советую сразу выбрать в режиме Load on Startup всех необходимых мастеров (рис. 1.25).

 

Рис. 1.25. Окно для выбора необходимого мастера (Wizard)

 

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

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

На самом деле даже приложение FirstApp, которое мы за считанные минуты превратили в полноценное Интернет-приложение, требует весьма значительных ресурсов по времени загрузки, особенно в тех случаях, если оно грузится на компьютере, где даже не установлен Visual Basic и, следовательно, отсутствуют многие важные файлы OCX, DLL и пр.

Именно из них (элементов управления) и строится большая часть приложений. Конечно, в этом нет ничего страшного — САВ-файл содержит в себе все необходимое и при его разворачивании на компьютер клиента грузится только то, что у него отсутствует. Тем не менее мастер Package and Deployment для приложения FirsApp, в том случае, если бы его захотели эксплуатировать по Интернету, создал бы файл объемом в 7 990 Кбайт.

Кроме этого он создал бы еще кучу полезных файлов, например, файл FIRSTAPP.HTM для запуска приложения из браузера:

<HTML>
<HEAD>
<TITLE>FIRSTAPP.CAB</TITLE>
</HEAD>
<BODY>
<a href=docForml.VBD>docForml.VBD</a>
<! *********** Comment Begin **********
Internet Explorer Version 3.x HTML
--------------------------------------------------------------------------
The following HTML code has been commented out and provided for ActiveX User Documents download support in IE 3.x only. This HTML script may not work properly in later versions of Internet Explorer.
Additional information about downloading ActiveX User Documents in IE 3.x can be found in Microsoft's online support on the internet at http://support.microsoft.com.
*********** Comment End *********** - - >
<! *********** Comment Begin ***********
<HTML>
<OBJECT ID="docForml"
CLASSID="CLSID:"
C0DEBASE="FIRSTAPP.CAB#version=6,0,0,8132">
</OBJECT>

<SCRIPT LANGUAGE= "VBScript">
Sub Window OnLoad
Document.Open
Document.Write "<FRAMESET>"
Document.Write "<FRAME SRC=""docForml.VBD"">"
Document.Write "</FRAMESET>"
Document.Close
End Sub
</SCRIPT>
</HTML>
*********** Comment End ********** - - >
</BODY>
</HTML>

Стоит какому-нибудь пользователю запустить из своего браузера с моей Web-странички этот файл, то он, после небольшой паузы, увидит на своем экране то же, что вижу я в результате работы приложения, а именно распечатку и таблицу с данными (см. рис. 1.24).

Однако и тут кроются подводные камни. А что будет, если требуемая таблица с данными отсутствует на вашем компьютере? Браузер в этом случае выдаст предупреждающее сообщение и нарисует пустые клетки. Но ведь я таблицу не экспортирую. Конечно, можно экспортировать и ее или, по крайней мере, ее реплику, однако более предпочтительным представляется вариант, когда работать с таблицей надо непосредственно на сервере, никуда ее не перетаскивая. В таком случае, зачем вообще к себе что-то грузить? Не лучше ли, чтобы и все программы исполнял сервер? Но тут мы уже вступаем в область принципиально иных подходов и технологий, которые имеются и у Microsoft, и у соперничающих с нею фирм.

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

     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru