AccesSoft - Статьи - Создание коммерческих приложений в Access
Главная | Заказ программы | Каталог программ | Форум MS Access | Литература | Статьи | Новости | Гостевая | Контакты | Карта    

Создание коммерческих приложений на Microsoft Access

Создание runtime приложения

Преобразование интерфейса в MDE (ADE)

Для распространения программы с закрытым программным кодом используется преобразование файла проекта в формат MDE или ADE. Соответственно не используйте в коде программ операции недопустимые в MDE-файле. Очень аккуратно используйте ссылки (References), в MDE-файле установить их программным способом не удастся. Кроме того, по собственному опыту работы, Access не всегда корректно восстанавливает ссылки на библиотечные файлы различных версий. В частности из-за проблем с работой под различными версиями Microsoft Office, в разработках нашей компании не используется ссылка на библиотеку Microsoft Excel Object Library. Вместо этого во всех операциях обмена данными с Excel используется тип Object и позднее связывание (CreateObject(“Excel.Application”)). Будьте уверены, что программа установки вашего приложения разместит библиотечные файлы (ActiveX, DLL, надстройки) именно в тех папках (по типам: системная, программная, Office\Library и т.п.), куда ссылался основной файл проекта перед преобразованием в MDE/ADE.

Access Run-time

ODE версия включает в себя программу для подготовки установочного пакета (Package Wizard), в который может быть включена run-time версия Microsoft Access. Эта программа распространяется вместе с конечным приложением Access по лицензии ODE и позволяет запускать файлы пользователям, не имеющим предустановленного пакета Microsoft Office Professional. Run-time версия Access - это набор исполняемых и библиотечных файлов, причем некоторые абсолютно идентичны обычной версии Access (например, msaccess.exe), другие отличаются и по содержанию, и по названиями (msoX.dll и msoXrt.dll). Установить Run-time версию вручную достаточно сложно. Начиная с версии 2002 Package Wizard формирует отдельный msi файл Access Run-time для установки с помощью WindowsInstaller’a. Для предыдущих версий run-time версия также была доступна в виде обычного setup-файла. Run-time версия несколько отличается от стандартной: в частности отсутствует окно базы данных, не доступны никакие средства редактирования проектов, нет стандартных панелей инструментов. Я никогда также не слышал о локализованных run-time версиях Access (ODE не распространяется с русской локализацией). Будьте готовы к тому, что все системные сообщения надо либо заменять, либо смириться с тем что они будут выводиться на английском языке (например, текст в строке состояния).

Тестирование приложений в Run-time

Тестирование готовых приложений необходимо производить именно в run-time версии. Для этого скорее всего понадобится отдельный компьютер без предустановленных офисных программ. Командная строка Access предлагает использование опции «/runtime» для тестирования приложений. Не пользуйтесь этой возможностью, так как поведение приложения и результаты работы в настоящей run-time версии могут отличаться! Дополнительная информация по ODE для Access 97 доступна по адресу http://faqs.org.ru/progr/database/ode.htm

Стандарты для клиентских приложений

Здесь перечислены стандартные интерфейсные средства, делающее клиентское приложение дружественным пользователю.

Заставка

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

Иконка для окон

Чтобы максимально скрыть происхождение программы и средство ее разработки, имеет смысл заменить иконки для форм и отчетов приложения. Для этого можно воспользоваться свойствами запуска в меню Access, либо настраивать иконку через вызов API-функций при открытии окна.

Меню, панели инструментов

Используйте все возможности (не очень, кстати, богатые) для разработки дружественного интерфейса пользователя. Замените стандартное меню на собственное, разработайте панели инструментов и контекстные меню.

Справочная система

Разработка справочной системы и комплекта пользовательской документации дело безусловно непростое, но обязательное. Контекстный вызов справки можно настроить через вызовы функций библиотеки "hhctrl.ocx" (HTMLHelpStdCall).
Компилятор help-файлов входит в состав ODE.

Средства администрирования базы данных

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

Создание программы установки для законченных приложений

Программа установки

Программа создания установочных пакетов Package Wizard, входящая в состав ODE, способна сделать setup-файл для вашего приложения. Но по всем отзывам и по собственному опыту возможности и результат работы этой программы совершенно не те, что хотелось бы увидеть. Эта программа (версии ODE2002) не поддерживает русских настроек Windows, не позволяет настроить алгоритм установки, и даже отказывается создавать архив на диске с файловой системой NTFS! Таким образом, настоятельно не рекомендуется использовать эту программу для распространения собственных приложений. Главное что можно взять после работы Package Wizard, это msi-файлы для Access Run-time и Microsoft Desktop Engine. Разработать программу установки можно в любой инсталляционной системе, например, InstallShield, Wise. В этом случае потребуется настроить эти программы для вызова msi-архивов из командной строки. Иностранные разработчики очень рекомендуют программу SageKey, специально настроенную для работы с приложениями Access. Наша компания использует свободно распространяемую программу InnoSetup (http://www.jrsoftware.org/).

Создание ярлыка для запуска приложения

Используя любую программу установки не забывайте указывать полный путь запуска в ярлыке приложения, например: ‘C:\Program Files\Microsoft Office\Office\msaccess.exe’ ‘C:\MyProgram\MyProgram.mde’ /wrkgrp ‘C:\MyProgram\MySystem.mdw’.

Обновления

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

Ограничения

Здесь описаны причины, которые могут послужить для отказа от Access при выборе средства разработки.

Несанкционированный доступ

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

Кардинальным выходом остается шифрование данных, но при этом надо менять всю систему управления и отказываться от реляционной модели. Что, по-моему, совершенно недопустимо. Кстати, от возможных потерь информации (например, преднамеренного удаления) шифрование также не может защитить.

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

По собственному опыту в 9 случаях из 10 не требуется глобальная система защиты приложений от «хакерских» атак. Кроме того, убытки от неверных действий пользователей с санкционированным доступом могут быть даже выше, так как приводят к скрытым ошибкам. Тем не менее обеспечить минимально необходимый уровень защиты данных безусловно необходимо. Далее приведен перечень действий для обеспечения такого уровня безопасности:

  1. Настройка опций запуска («защита от Shift»).
  2. Настройка прав на объекты на уровне сервера и/или файла рабочих групп.
  3. Обеспечение входа в приложение только с указанием пароля.
  4. Подключение при входе и отключение при выходе линкованных таблиц в проектах MDB/MDE.
  5. Настройка автоматических процедур резервного копирования данных на сервере.
  6. Ведение журналов изменения критических данных.

Рекомендуется создавать отдельный файл рабочей группы (первоначально скопировав system.mdw), затем запускать приложение через использование опции командой строки «/wrkgrp».

Вообще-то в разработках нашей компании не используется разграничение доступа через стандартные функции рабочей группы Access. По многим причинам пришлось разработать собственный модуль настройки пользователей и групп. Поэтому оценить работу со стандартной системой разграничения доступа к объектам и данным я, к сожалению, не могу. Подробнее о безопасности и разграничении доступа – см. http://am.rusimport.ru/MSAccess/topic.aspx?ID=469

Скрытые ошибки Access

Как и любая система разработки, Access, содержит ошибки в собственной программной реализации. Их количество возрастает или сокращается в связи с выпуском различных версий и сервис-паков. Несмотря на наличие таких ошибок и недоработок, в целом Access при корректном использовании достаточно устойчивая система. А количество неустранимых или необъяснимых ошибок вообще чрезвычайно мало. В 99% так называемые «ошибки» Access на самом деле связаны с неправильным алгоритмом или программным кодом.

В наших разработках возникали следующие сложные для устранения проблемы:

Полное разрушение mdb-проекта без возможности восстановления при импорте объектов без последующей компиляции. Решается резервным копированием и хранением объектов в текстовом виде.

Потеря ссылок при использовании библиотек различных версий. Решается через использование типа Object и позднее связывание.

Ошибки при работе с ActiveX. Например, неверные данные иерархии листьев TreeView, если дерево не отображается в данный момент на форме. Здесь в каждом случае надо разбираться отдельно.

Потеря пункта пользовательского меню. Решается через программное создание меню и панелей инструментов.

Обсудить на форуме...

Автор: Марат Шарифуллин Добавлен: 13.02.2007

© 2006, Консультационная группа «Воронов и Максимов»
www.vmgroup.ru info@vmgroup.ru

Главная | Заказ программы | Каталог программ | Форум MS Access | Литература | Статьи | Новости | Гостевая | Контакты | Карта    

Copyright © 2007 - 2012 AccesSoft. All Rights Reserved