УДК004.453.5
АНАЛИЗ СОВРЕМЕННЫХ ТЕХНОЛОГИЙ РАЗВЕРТЫВАНИЯ ПРИЛОЖЕНИЙ И ПРОГРАММНЫХ ИНСТРУМЕНТОВ СОЗДАНИЯ ПАКЕТОВ УСТАНОВКИ
© Д.В. Манухина, А.Е. Потапов, И.А. Соломатина, А.И. Бадмаев, А.С. Нилова, Д.Ю. Федотов
Ключевые слова: пакет установки; технология развертывания приложений; ЬЫа1КЫеШ; ClickOnce. В данной статье рассматриваются современные технологии развертывания приложений и программные инструменты создания пакетов установки. Целью статьи является анализ возможностей таких программных инструментов, как InstallShield и ClickOnce. Выделяются и описываются характерные особенности применения вышеуказанных средств создания пакетов установки. На основании приведенного анализа программисты, не обладающие специальными знаниями и навыками в области создания программ-установщиков, могут сделать обоснованный выбор наиболее подходящего средства разработки в зависимости от требований, предъявляемых к разворачиваемому программному продукту.
При разработке качественных программных продуктов важное место отводится созданию надежного, отказоустойчивого пакета установки, в который при необходимости легко внести изменения. Однако это может потребовать значительных трудозатрат. К счастью, в настоящее время имеются средства, которыми могут воспользоваться программисты, не обладающие специальными знаниями и навыками в области создания программ-установщиков. В связи с этим главной задачей специалистов является выбор наиболее подходящего средства разработки в зависимости от требований, предъявляемых к разворачиваемому программному продукту. В данной статье приведен обзор таких средств разработки, как ClickOnce и InstallShield, проведен их сравнительный анализ.
Актуальность темы данной статьи не вызывает сомнения, поскольку изучение и анализ технологий развертывания и средств создания инсталляторов позволяет выбрать наиболее оптимальное решение в сфере разработки программ-установщиков. Рассмотренные достоинства и недостатки технологий и средств разработки ClickOnce и InstallShield позволяют сделать обоснованный выбор в зависимости от программного продукта, который будет разворачиваться на компьютере конечного пользователя, и требований, предъявляемых к нему.
ClickOnce - это программный инструмент, позволяющий создавать самообновляющиеся Windows-приложения, которые можно устанавливать и запускать с минимальным вмешательством со стороны пользователя. Инструментальная среда разработки MS Visual Studio предоставляет полную поддержку публикации и обновления для приложений, написанных на языках Visual Basic и Visual C# и развернутых с использованием технологии ClickOnce.
Технология ClickOnce предназначена для решения трех основных проблем развертывания:
1) трудности обновления приложений. Технология развертывания ClickOnce позволяет предоставлять обновления автоматически. Загружаются только те
части приложения, которые изменились, а затем полное, обновленное приложение повторно устанавливается из новой расположенной рядом папки;
2) влияния на компьютер пользователя. В технологии развертывания ClickOnce каждое приложение самодостаточно и не оказывает влияния на другие приложения;
3) разрешения безопасности. Развертывание по технологии ClickOnce предоставляет пользователям, не имеющим прав администратора, возможность установки и позволяет наделять только теми правами системы безопасности доступа к коду, которые необходимы для приложения.
В прошлом эти проблемы иногда вынуждали разработчиков принимать решение о создании веб-приложений вместо Windows-приложений, принося в жертву простоте установки пользовательский интерфейс с широкими возможностями. Используя приложения, разворачиваемые по технологии ClickOnce, можно использовать преимущества обоих методов.
Технология ClickOnce поддерживает любые приложения Windows на базе Presentation Foundation (XBAP) или Windows Forms (EXE), консольное приложение (EXE) или решение Office (DLL). С помощью ClickOnce приложение можно опубликовать тремя разными способами: с веб-страницы, из общего сетевого файлового ресурса или с носителя, например, компакт-диска. Приложение ClickOnce можно устанавливать на компьютер пользователя и запускать локально даже при работе в автономном режиме, либо запускать в интерактивном режиме без постоянной установки каких-либо компонентов на компьютер пользователя [1].
Однако развертывание ClickOnce не позволяет повсеместное конфигурирование. Многие аспекты его поведения жестко фиксированы - либо чтобы гарантировать согласованное восприятие пользователем, либо для обеспечения политик безопасности, подходящих для предприятий.
Ниже перечислены ограничения технологии ClickOnce.
1841
1. Приложения ClickOnce устанавливаются для единственного пользователя. Установка приложения для всех пользователей рабочей станции невозможна.
2. Приложения ClickOnce всегда устанавливаются в управляемую системой папку, специфичную для пользователя. Изменить или повлиять на выбор папки, куда устанавливается приложение, нельзя.
3. Если приложения ClickOnce необходимо добавить в меню Пуск, то существует возможность создать всего два ярлыка: один запускает приложение, а другой открывает в браузере справочную веб-страницу. Изменить это не удастся, равно как не получится добавить приложение ClickOnce в группу Startup (Автозагрузка), меню Favorites (Избранное) и т. п.
4. Не поддерживается возможность изменения пользовательского интерфейса мастера установки. Это значит, что добавлять новые диалоговые окна, изменять текст в существующих окнах и т. п. невозможно.
5. Нельзя изменять страницу установки, сгенерированную приложениями ClickOnce. Однако после генерации допускается отредактировать HTML-разметку вручную.
6. Развертывание ClickOnce не позволяет устанавливать разделенные компоненты в кэш глобальных сборок (GAC).
7. Развертывание ClickOnce не дает возможность выполнять специализированные действия (такие как создание базы данных или конфигурирование настроек реестра).
1м1а118ЫеЫ является одним из наиболее популярных инструментов, используемых для создания инсталляторов программного обеспечения. Программа установки, созданная с помощью InstaИSЫeld, позволяет конечному пользователю установить программное обеспечение непосредственно на компьютер или серверные платформы. В дополнение к установке инсталлятор также может удалить нежелательные программы, мешающие корректной работе устанавливаемого программного обеспечения (ПО) и в некоторых случаях восстановить поврежденные или устаревшие файлы ПО.
Помимо установки самого ПО InstaUShield позволяет включить в инсталлятор широкий спектр файлов. Если для обеспечения функционирования разработанного программного продукта, разворачиваемого на персональном компьютере с помощью инсталлятора, требуется предварительная установка конкретного программного обеспечения, InstaUShield позволяет включить его в проект установки. То же самое касается и драйверов различных устройств. Например, если разработано приложение, позволяющее распечатывать чеки на фискальных принтерах, то для обеспечения данной возможности, помимо самого приложения, необходимо установить соответствующие драйверы.
Программа установки способна автоматически настроить операционную систему таким образом, чтобы обеспечить правильную работу устанавливаемого ПО. Все это возможно при грамотной разработке инсталлятора.
Таблица 1
Сравнение ClickOnce и InstallShield
Функция ClickOnce InstallShield
Автоматическое обновление Да Да
Откат после установки Да Да
Обновление из Интернета Да Да
Не влияет на общие компоненты и другие Да Нет
приложения
Местоположение установки приложения Кэш приложения ClickOnce Папки Program Files,Common Files, AppData и др.
Предоставляемые разрешения безопасности Предоставляет только разрешения, необходимые для приложения (более безопасно) Предоставляет по умолчанию разрешения полного доверия (менее безопасно)
Требуемые разрешения безопасности Зона Интернета или интрасети (полное доверие для установки с компакт-диска) Администратор
Подписание манифеста приложения и манифеста развертывания Да Да
Интерфейс пользователя во время установки Одно приглашение Многоэлементный мастер
Установка сборок по запросу Да Нет
Установка общих файлов Нет Да
Установка драйверов Нет Да (с настраиваемыми действиями)
Установка в глобальный кэш сборок Нет Да
Установка для нескольких пользователей Нет Да
Добавление приложения в меню Пуск Да Да
Добавление приложения в группу запуска Нет Да
Добавление приложения в меню Избранное Нет Да
Установка временного доступа к реестру Ограниченная Да
Регистрация типов файлов Да Да
Исправление двоичных файлов Нет Да
1842
InstallShield - это обладающий высокой производительной мощностью инструмент, имеющий интуитивно понятный графический интерфейс. Он предоставляет возможность разработчику ПО с легкостью создать инсталлятор любой сложности.
InstallShield позволяет:
1) поддерживать версионность выпускаемого ПО;
2) производить запись в реестр при установке созданного приложения, если это необходимо;
3) осуществлять предварительную установку ПО и драйверов;
4) создавать установочные проекты различных типов (.msi, .exe и пр.);
5) настраивать диалоговые окна, оповещения, уведомления, сопровождающие процесс установки ПО;
6) выбирать язык установки;
7) выбирать место установки (Program Files, App-Data, Common Files и др.);
8) настраивать ярлыки;
9) выпускать различные виды обновления (верси-онное, критическое и пр.);
10) добавлять установленный программный продукт в автозапуск;
11) подписывать манифест приложения и манифест развертывания;
12) настраивать установку для нескольких пользователей.
InstallShield гарантирует, что все программное обеспечение на ПК соответствует спецификациям Microsoft Windows. InstallShield выполняет регулярные проверки на наличие обновлений в системе, и когда оно становится доступным, программа оповещает пользователя о данном факте. Это интерактивное общение позволяет пользователю быть в курсе новейших технологий и повышает его производительность.
InstallShield постоянно обновляется и совершенствуется [2].
На основании проведенных исследований можно сделать выводы о функциональных возможностях программных инструментов создания инсталляторов. Результаты анализа приведены в табл. 1 [3].
ЛИТЕРАТУРА
1. Развертывание и безопасность технологии ClickOnce // Microsoft Developer Network. URL: http://msdn.microsoft.com/ru-ru/Library/ t71a733d (дата обращения: 20.05.2014).
2. What is InstallShield? // WiseGEEK. URL: http://www.wisegeek.com/ what-is-installshield.htm (дата обращения: 20.05.2014).
3. Выбор стратегии развертывания // Microsoft Developer Network. URL: http://msdn.microsoft.com/ru-ru/library/e2444w33 (дата обращения: 20.05.2014).
Поступила в редакцию 1 сентября 2014 г.
Manukhina D.V., Potapov A.E., Solomatina I.A., Badma-ev A.I., Nilova A.S., Fedotov D.Y. ANALYSIS OF MODERN TECHNOLOGIES FOR DEPLOYING APPLICATIONS AND SOFTWARE TOOLS FOR CREATING INSTALLATION PACKAGES
This article discusses modern technology deployment and software tools for creating installation packages. The aim of the article is to analyze the possibilities of software tools such as InstallShield and ClickOnce. Standing and describing the characteristic features of the application of the above means of creating installation packages. Based on the above analysis, programmers who do not have special knowledge and skills in the field of software installers can make an informed choice of the most appropriate means of development, depending on the requirements to deploy software product.
Key words: installation package; application deployment technology; InstallShield; ClickOnce.
Манухина Дарья Владимировна, Московский государственный технический университет им. Н.Э. Баумана, Калужский филиал, г. Калуга, Российская Федерация, кандидат физико-математических наук, доцент кафедры систем автоматизированного проектирования, e-mail: dmanuhina@gmail.com
Manukhina Darya Vladimirovna, Bauman Moscow State Technical University, Kaluga Branch, Russian Federation, Candidate of Physics and Mathematics, Associate Professor of Systems of Automatic Design Department, e-mail: dmanuhi-na@gmail.com
Потапов Андрей Евгеньевич, Московский государственный технический университет им. Н.Э. Баумана, Калужский филиал, г. Калуга, Российская Федерация, кандидат физико-математических наук, доцент кафедры Систем автоматизированного проектирования, e-mail: jerry1st@mail.ru
Potapov Andrey Evgenyevich, Bauman Moscow State Technical University, Kaluga Branch, Russian Federation, Candidate of Physics and Mathematics, Associate Professor of Systems of Automatic Design Department, e-mail: jerry1st@mail.ru
Соломатина Ирина Алексеевна, Московский государственный технический университет им. Н.Э. Баумана, Калужский филиал, г. Калуга, Российская Федерация, студент, кафедра систем автоматизированного проектирования, e-mail: solomatina.irinka@yandex.ru
Solomatina Irina Alekseyevna, Bauman Moscow State Technical University, Kaluga Branch, Russian Federation, Student, Systems of Automatic Design Department, e-mail: solomatina.irinka@yandex.ru
Бадмаев Алексей Игоревич, Московский государственный технический университет им. Н.Э. Баумана, Калужский филиал, г. Калуга, Российская Федерация, студент, кафедра систем автоматизированного проектирования, e-mail: Alexey_bdmv@mail.ru
Badmaev Aleksey Igorevich, Bauman Moscow State Technical University, Kaluga Branch, Russian Federation, Student, Systems of Automatic Design Department, e-mail: Alexey_bdmv@mail.ru
Нилова Анастасия Сергеевна, Московский государственный технический университет им. Н.Э. Баумана, Калужский филиал, г. Калуга, Российская Федерация, студент, кафедра систем автоматизированного проектирования, e-mail: dyudyuka.barbidonskaya@yandex.ru
1843
Nilova Anastasiya Sergeyevna, Bauman Moscow State Technical University, Kaluga Branch, Russian Federation, Student, Systems of Automatic Design Department, e-mail: dyudyuka.barbidonskaya@yandex.ru
Федотов Дмитрий Юрьевич, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, аспирант, кафедра общей физики, e-mail: Dmitry_989@mail.ru
Fedotov Dmitriyu Yuryevich, Tambov State University named after G.R. Derzhavin, Tambvo, Russian Federation, Postgraduate Student, General Physics Department, e-mail: Dmitry_989@mail.ru
1844