СТАТЬЯ
31.08.01

Средства разработки приложений

Алексей Федоров,
Наталия Елманова

Статья была опубликована в КомпьютерПресс #2 2001
как часть статьи "Введение в базы данных" (www.cpress.ru)

Предыдущая статья настоящего цикла была посвящена рассмотрению логического и физического проектирования данных и инструментальным средствам, используемым в данном процессе. Мы убедились в том, что проектирование данных играет ключевую роль при разработке информационных систем — ведь от качества выполнения этой работы зависят затраты, связанные с созданием приложений для конечных пользователей, а также с последующим сопровождением и модернизацией созданного продукта. Результатом этого этапа является «пустая» база данных (то есть база данных, таблицы которой по большей части не содержат записей, за исключением, возможно, таблиц справочного характера типа списка субъектов Российской Федерации или телефонных кодов городов).

Следующий этап жизненного цикла информационной системы — разработка клиентских приложений. Результатом этого этапа является готовый продукт, состоящий из ряда приложений, позволяющих пользователям вводить данные в таблицы либо редактировать уже существующие данные, анализировать введенные данные и представлять их в более удобном для восприятия виде — графиков, сводных таблиц или отчетов (в том числе в виде «бумажных» документов).

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

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

Классификация средств разработки приложений

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

Практически любое средство разработки, мало-мальски претендующее на универсальность, можно заставить работать с любой базой данных — достаточно поддержки применения в этом средстве разработки сторонних библиотек и наличия у этой базы данных набора клиентских интерфейсов (API) для платформы, на которой должны функционировать созданные приложения. Однако далеко не любая пара продуктов «средство разработки плюс СУБД» привлекательна с точки зрения трудозатрат, связанных с созданием подобных приложений. Можно написать полноценное приложение, вызывающее функции клиентского API и реализующего удобный пользовательский интерфейс с помощью компилятора языка С и простейшей графической библиотеки (например, позволяющей изменять цвет пикселов на экране) для той операционной системы, в которой будет работать данное приложение. Но затраты, связанные с реализацией подобного проекта, могут оказаться совершенно неоправданными — ведь в этом случае разработчикам придется реализовывать функции, которые уже содержатся в библиотеках классов и компонентов средств разработки, более глубоко ориентированных на создание приложений с базами данных или включающих поддержку создания таких приложений.

Средства разработки, ориентированные на конкретные СУБД

Лет десять-двадцать назад во многих приложениях, использующих базы данных, функции клиентского API вызывались из кода, написанного на одном из языков программирования, чаще всего на C. Достаточно взглянуть на описание API клиентской части почти любой серверной СУБД — и вы найдете немало примеров наиболее типичных фрагментов кода, например, для регистрации пользователя, выполнения запросов и т.п. Однако достаточно быстро разработчикам СУБД стало ясно, что трудозатраты, связанные с написанием подобного кода, можно существенно сократить, собрав в библиотеки наиболее типичные фрагменты кода и наиболее часто встречающиеся элементы пользовательского интерфейса (пусть даже и для алфавитно-цифровых терминалов), оформив эти библиотеки в виде отдельного продукта и добавив к нему среду разработки и утилиты проектирования пользовательских форм для просмотра и редактирования данных, а также отчетов. Именно так и появились первые средства разработки, ориентированные на конкретные СУБД, такие, например, как Oracle*Forms (предшественник нынешнего Oracle Forms Developer).

Продукты этого класса на рынке средств разработки имеются и сегодня. Почти все производители серверных СУБД производят и средства разработки приложений. В подавляющем большинстве случаев современные версии этих средств разработки поддерживают доступ к СУБД других производителей как минимум с помощью одного из универсальных механизмов доступа к данным (ODBC, OLE DB, BDE). Однако доступ к «своей» СУБД обычно осуществляется максимально эффективным способом, то есть с помощью клиентских API, объектов, содержащихся в библиотеках клиентской части серверных СУБД, специальных классов для доступа к данным этой СУБД либо за счет реализации драйверов для универсальных механизмов доступа к данным, способной учитывать специфические особенности данной СУБД.

В отдельную категорию можно выделить среды разработки настольных СУБД. В статье данного цикла, посвященной настольным СУБД, мы уже отмечали, что подавляющее большинство настольных СУБД, доживших до сегодняшнего дня, таких как Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, поддерживают доступ к серверным СУБД, как минимум, с помощью универсальных механизмов доступа к данным, что позволяет условно отнести их и к категории средств разработки. Отметим, однако, что в настоящее время создание приложений в архитектуре «клиент-сервер» с их помощью — явление нечастое. Исключение, пожалуй, составляют пары Microsoft Access — MSDE, Microsoft Access — Microsoft SQL Server и Microsoft Visual FoxPro — Microsoft SQL Server. Здесь налицо результат грамотной политики Microsoft, стремящейся к максимальной совместимости своих продуктов и обеспечивающей наиболее безболезненную для пользователей замену своих настольных СУБД собственными же серверами баз данных (Access->MSDE->Microsoft SQL Server, FoxPro->Visual FoxPro->Microsoft SQL Server).

Средства разработки, универсальные по отношению к СУБД

Средства разработки, универсальные по отношению к СУБД (или претендующие на подобную универсальность), как правило, являются последователями обычных средств разработки приложений, не имеющих прямого отношения к базам данных. Типичные примеры таких средств разработки — Borland Pascal, Borland C++, Microsoft QuickC. Способные использовать библиотеки сторонних производителей, эти средства позволяли обращаться к функциям клиентских API, а с развитием универсальных механизмов доступа к данным (таких как ODBC) — и к функциям API библиотек, реализующих такие механизмы. Отметим, что нередко с помощью этих средств разработки создавались среды настольных СУБД (таких как dBase, FoxBase) или псевдокомпиляторы для языков семейства xBase (например, Clipper).

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

К первой категории относятся средства разработки, обладающие обширными библиотеками классов, большим количеством «мастеров» и кодогенераторов, но ориентированные на «ручное» создание кода и довольно редко применяемые для создания «стандартных» приложений для работы с базами данных (здесь под словосочетанием «стандартное приложение» мы подразумеваем приложение, имеющее непосредственный доступ к базе данных, с которым взаимодействует пользователь, то есть являющееся «классическим» клиентом серверной СУБД). Типичным (и единственным действительно популярным на рынке программного обеспечения) представителем этого класса продуктов является Microsoft Visual C++. С помощью Microsoft Visual C++ и библиотеки MFC (Microsoft Foundation Classes) можно создавать любые приложения, если вы обладаете навыком, знаниями, умением и временем. Тем не менее приложения, обладающие сложным пользовательским интерфейсом (например, использующие базы данных), с его помощью разрабатывают не так часто (хотя примеры подобного его использования можно найти даже в отечественной литературе). В основном этот продукт применяется для создания клиентских приложений в случае предъявления к ним особых требований, таких, например, как высокая производительность, способность осуществлять какие-либо нестандартные операции и пр.

Ко второй категории относятся средства разработки с развитыми визуальными инструментами, позволяющие буквально «рисовать» пользовательский интерфейс, частично стирая различия между работой программиста и пользователя и удешевляя конечный продукт за счет привлечения к проектированию интерфейса разработчиков, обладающих не самой высокой квалификацией (если внимательно изучить программы курсов учебных центров, специализирующихся на обучении средствам разработки Microsoft, Borland и Sybase, то можно обнаружить, что продолжительность курса обучения, прослушав который обычный пользователь Windows должен научиться создавать клиентские приложения для серверных СУБД, составляет от 5 до 10 рабочих дней).

Именно эта категория средств разработки наиболее часто применяется при создании клиентских приложений. К наиболее популярным продуктам подобного класса следует отнести Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder и Borland C++ Builder. Среды разработки подобных продуктов весьма схожи внешне (с точностью до расположения окон на экране, устанавливаемого «по умолчанию»): как правило, среда разработки такого продукта содержит «заготовку» проектируемой формы (аналога окна), отдельную панель с пиктограммами элементов пользовательского интерфейса и иных используемых в приложении объектов, которые можно выбирать и помещать на форму, окно, в котором отображаются и редактируются свойства одного из выбранных на форме элементов (а иногда и список событий, на которые реагирует данный элемент), окно редактора кода, где можно вводить фрагменты кода, связанные с обработкой тех или иных событий, а также код, реализующий логику работы данного приложения. Как правило, современные средства разработки такого класса позволяют создавать простейшие приложения для редактирования данных практически без написания кода.

В последнее время очень популярным стало также создание приложений, использующих доступ к базам данных, но расположенных внутри обычных документов. В основу средств разработки подобных приложений положены макроязыки соответствующих редакторов. Наиболее типичным и практически единственным популярным представителем средств разработки этой категории является Visual Basic for Applications, сходный с перечисленными выше визуальными средствами разработки и отличающийся от них тем, что созданные с его помощью приложения содержатся внутри документов Microsoft Office и не отчуждаются от них.

Отметим, однако, что приведенное деление средств разработки на эти два класса весьма условно. Как мы уже говорили выше, практически все средства разработки приложений с базами данных, в том числе и ориентированные на конкретные СУБД, поддерживают как минимум один из универсальных механизмов доступа к данным. И практически все «универсальные» средства разработки приложений, если они принадлежат производителю каких-либо серверных СУБД, поддерживают «свои» СУБД лучше, чем СУБД сторонних производителей (это может выражаться, например, в особых библиотеках классов или компонентов для доступа к данному серверу, а также в наличии общих репозитариев объектов и моделей данных, а иногда и общих с клиентской частью серверной СУБД редакторов параметров доступа к данным или схем данных)

Продолжение статьи

Дополнительная информация

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 31.08.01