Новое RAD-средство разработки Java-приложений JBuilder 1.0 выпустила компания Borland. Здесь есть все то, к чему привыкли пользователи Delphi, C++ Builder, и даже больше.


Среда разработчика
Мастера
BeansExpress
Инструментарий доступа к данным
Библиотеки JBCL и JGL

Если п мотреться к пакетам разработки приложений на языке Java, то можно увидеть, что их названия хоть как-нибудь, но связаны с кофе: Espresso, Arabica, JavaBeans (зерна) и т. п. И даже единица производительности Java-кода называется CaffeineMark. А вот у компании Borland своя традиция называть продукты: C++ Builder, IntraBuilder. Видимо, поэтому очередное выпущенное средство быстрой разработки названо JBuilder, хотя название проекта все же было кофейным - Latte (сорт кофе). Любителям программной продукции Borland не придется долго осваиваться в среде разработчика JBuilder, которая хотя и претерпела изменения, но все же полностью укладывается в идеологию, предложенную когда-то пакетом Delphi.

Поставка JBuilder 1.0 производится в трех комплектациях: Standard, Professional и Client/Server Suite. В каждую из них входит свой набор компонентов и средств.

Standard состоит из интегрированной среды, в которую встроен визуальный дизайнер, браузер приложений, редактор, отладчик и компилятор. Средство JavaBeans Express позволяет создавать компоненты JavaBeans, большой набор которых уже включен в пакет. Ну а поскольку стандартную комплектацию будут использовать преимущественно "чайники", в подарок им дается книга-самоучитель из знаменитой серии "Teach Yourself". В комплектацию Professional входит система разработчика (как и в поставку Standard), а также компоненты доступа к базам данных, набор драйверов JDBC, более сотни компонентов JBCL JavaBeans, исходные тексты компонентов, компоненты деловой графики, различные мастера и утилиты командной строки и даже локальная копия сервера баз данных InterBase.

Соответственно комплектация Client/Server Suite включает все, что имеется в составе Professional, плюс расширенные средства для создания многоярусных клиент-серверных приложений с полной поддержкой RMI и CORBA. Здесь же вы найдете визуальные инструменты для построения SQL-запросов, монитор SQL, менеджер контроля версий PVCS, драйверы быстрого доступа и многое другое. Любая комплектация базируется на стандартах JDK 1.1 и "Pure Java".

Среда разработчика

Среда разработчика сделана весьма оригинально. Будучи очень похожей на то, что предлагается в пакетах Borland Delphi и Borland C++ Builder, она тем не менее отражает последние технические достижения.

Главное окно

Главное окно JBuilder состоит из меню, панели кнопок быстрого доступа и палитры компонентов, рассортированных по категориям. Кнопки быстрого доступа дублируют некоторые наиболее часто используемые команды меню. Палитра компонентов - своеобразный склад инструментов. Нужно добавить компонент приложению - найдите нужную закладку в палитре, перетащите выбранный компонент и бросьте его на форму. Если потребуется, можно подключить собственные компоненты к палитре, что позволит держать их всегда под рукой.

Окно AppBrowser

Окно AppBrowser вносит свежую струю в стандартную для продуктов Borland среду разработчика. Оно состоит из трех панелей: навигации, структуры проекта и содержимого.

Для большей универсальности в нижней части окна AppBrowser имеются закладки, переключая которые можно мгновенно переходить из одного режима в другой. Если левые панели работают в режиме Project, в котором удобно вести редактирование исходного текста и быстро переключаться от одного файла к другому, то панель навигации в это время выполняет роль менеджера проектов, позволяя добавлять и удалять файлы проекта. Указав на какой-либо файл, можно увидеть его исходный текст в панели содержимого. Это справедливо для исходного текста на языке Java. Если же указать на файл Web-страницы с расширением HTML, то панель навигации становится мини-браузером. При этом на командной линейке, находящейся над панелью, активизируются кнопки гиперсвязей для перехода вперед по ссылке, назад и обратно на домашнюю страницу. Введение в проект HTML-файлов позволяет не только создать Web-страницу под аплет, но и показать информацию о проекте, создаваемую в виде HTML-файла, одновременно с новым проектом. Если щелкнуть на закладке Source, располагающейся под панелью содержимого, то будет отображаться исходный текст страницы на языке HTML. Панель структуры проекта все это время будет показывать имеющиеся на странице гипертекстовые ссылки.

Но давайте вернемся к редактированию исходного текста на Java. В этом режиме панель содержимого показывает исходный текст. Одновременно панель структуры проекта обрабатывает содержимое исходного текста и представляет его в виде иерархического дерева объектов, входящих в java-файл. Если указать на объект мышью, то курсор в панели содержимого переместится к тому месту, где этот объект объявлен. Через панель структуры видно даже пакеты, импортируемые программой. Кстати, их содержимое также можно просмотреть, если дважды щелкнуть на объекте, обозначающем пакет.

Поскольку писать программы руками в последнее время стало не модно, в каждом достойном продукте есть средства визуальной разработки, которые генерируют исходный текст по графическому эскизу. Ну а поскольку фирма Borland имеет в этом деле большой опыт, то и качество визуального дизайнера, входящего в пакет JBuilder, соответствующее. Чтобы попасть в него, нужно переключить окно содержимого в режим Design. Здесь есть все, что нужно для разработки комплексных программ. Ваше дело - расположить компоненты и настроить их с помощью инспектора свойств.

Остальное возьмет на себя JBuilder. Переключившись обратно в режим редактирования, вы увидите, что в исходном тексте появились строчки на языке Java, создающие все те элементы, с которыми вы работали визуально.

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

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

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

Мастера

Как уже отмечалось, вручную писать исходные тексты вряд ли сейчас кому-то интересно, поэтому все RAD-системы имеют в своем составе парочку мастеров для ускоренного создания программных элементов. В JBuilder все мастера разбиты на две категории: файловые и вспомогательные. Мастера создания сосредоточены в меню File · New... .

Вам предлагается следующий выбор новых файлов:

Application - новое Java-приложение, окно которого базируется на классе Frame; дополнительно приложение может быть оснащено линейкой кнопок быстрого доступа, строкой состояния и некоторыми другими полезными элементами;

Applet - новый аплет Java, который может работать либо будучи встроенным в HTML-страницу, либо как самостоятельное окно;

Project - пустой проект, в который включается лишь одна Web-страница с данными о проекте;

Frame - новый проект, в котором имеется окно-рамка класса Frame и страница с данными о проекте;

Dialog - новый проект со включенным в него диалоговым окном, наследуемым от класса Dialog, и страница с данными о проекте;

Panel - проект с включенным в него классом панели и страница с данными о проекте;

Data Module - контейнер для компонентов централизованного доступа к базам данных;

Class - создатель нового класса Java, для которого, по желанию, может быть сгенерирован конструктор по умолчанию;

HTML - изготовитель новой Web-страницы.

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

Implement Interface - описывает активный класс проекта как реализующий выбранный вами интерфейс Java, при этом в исходный текст класса не только вносится ключевое слово Implements, но и добавляются "болванки" всех тех методов интерфейса, которые класс должен реализовать;

Interaction Wizard - задает взаимодействие между различными компонентами через события;

Override Methods - позволяет перекрыть любой доступный метод класса-предка, при этом в исходном тексте вашего класса создается шаблон перекрытого метода, который вызывает перекрываемый метод класса-предка;

Resource Strings - обнаруживает все имеющиеся в текущем файле строки и переносит их в отдельный RES-файл, а в исходном тексте строка конвертируется в вызов функции, читающей строку из ресурса;

Wrap Applet - этот мастер преобразует аплет Java в компонент JavaBeans;

Deployment Wizard - упаковывает файлы проекта в архивы для удобного переноса и размещения.

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

BeansExpress

Новая модель Java, предложенная в JDK 1.1, подразумевает переход от простых Java-приложений к компонентам JavaBeans. Написание таких компонентов является приоритетной задачей любых фирм, планирующих использовать Java для своих дальнейших разработок. Ускорение в этот процесс может внести мастер под названием BeansExpress, также входящий в состав JBuilder 1.0. Это средство значительно упрощает работу, генерируя стандартные скелеты компонентов и их частей.

Мастер BeansExpress может выполнять различные задачи.

Помимо простого компонента он позволяет создавать информационные классы для компонентов JavaBeans, новые классы событий, а также имеет две часто используемые заготовки: элемента Ok-Cancel и элемента просмотра данных из базы.

Процесс создания нового компонента разбивается на несколько этапов:

- создание нового проекта;
- создание нового элемента JavaBeans с помощью BeansExpress;
- упаковка полученного элемента в архив;
- подключение сжатого компонента к палитре.

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

Второй способ - это ручная модификация каркаса компонента, причем это единственный возможный метод получения нового оригинального компонента, чье поведение не похоже на то, что уже есть в вашем распоряжении. В любом случае BeansExpress вставляет в генерируемый исходный текст новое свойство Example. Оно не нужно, но служит своеобразным примером изготовления новых свойств вроде шпаргалки для разработчика. Его можно будет удалить, как только новый элемент JavaBeans готов. Готовый компонент с помощью уже известного вам Deployment Wizard архивируется и затем легко подключается к палитре компонентов.

Инструментарий доступа к данным

В JBuilder применена стандартная для продуктов Borland трехслойная архитектура доступа к данным. Первый слой - источник данных, т. е. конкретная физическая база данных и связанный с ней компонент источника. Следующий слой транслирует данные в так называемый набор данных (dataset). И наконец, данные из набора передаются на визуальные компоненты, через которые пользователь видит информацию из базы. Это, так сказать, взгляд на вещи глазами обычного разработчика. На самом деле все гораздо сложнее. Все данные передаются с использованием программного интерфейса JDBC, который, в свою очередь, подразумевает применение языка запросов SQL.

Еще одно средство доступа к данным включено в JBuilder. Оно называется jdbcConnector. Это многоярусное решение для Java-программ, предоставляющее доступ к данным с помощью драйверов JDBC. Через шлюз, располагающийся на компьютерах, работающих под управлением Windows NT и Windows 95, можно взаимодействовать с данными Informix, DB2, Sybase, MS-SQL, InterBase, Paradox, dBASE, FoxPro и Microsoft Access. Для этих данных используются драйверы прямого доступа, функционирующие на базе Borland Database Engine.

В составе jdbcConnector три компонента. Первый, jdbcConnector Bridge, преобразует вызовы JDBC в вызовы BDE/IDAPI. Это позволяет Java-программам работать с данными, чьи псевдонимы внесены в реестр локальной копии Borland Data Engine (BDE). Второй компонент, jdbcConnector Broker, играет роль посредника между Java-программами, выполняющимися на любой платформе, и данными, расположенными на платформе Wintel. Он также написан на Java, поэтому стопроцентно переносим на любой компьютер, где есть виртуальная машина Java. По протоколу TCP/IP jdbcConnector Broker соединяется с третьим компонентом - jdbcConnector Server, который располагается на Windows-машине с данными.

Для прямого сетевого доступа к серверу баз данных Borland InterBase пакет JBuilder 1.0 оснащен драйвером InterClient, который использует для обмена данными и их кэширования удаленный протокол JDBC. Это дает возможность напрямую обращаться к данным без использования промежуточного транслирующего программного обеспечения типа ODBC.

Библиотеки JBCL и JGL

Используя JBuilder, вы будете работать не столько с самим языком Java, сколько с библиотекой JavaBeans Component Library (JBCL), чем-то похожей на библиотеку VCL программных пакетов Delphi и C++ Builder. Практически все компоненты палитры имеют свое отражение в JBCL, которая расположена в пакетах, имеющих префикс borland.jbcl:

control - содержит такие компоненты интерфейса пользователя, как управляющие элементы, диалоговые окна и контейнеры;

view - содержит различные виды, компоненты рисования и редактирования;

model - содержит сложные интерфейсы и классы для хранения данных, как, например, векторы, матрицы, графы и т.п.;

dataset - хранит компоненты работы с базами данных и организации каналов их передачи;

util - вместилище вспомогательных классов и интерфейсов диагностического характера, передачи сообщений, ввода-вывода, исключительных ситуаций и т.д.;

layout - вмещает классы менеджера расположения компонентов;

io - содержит классы потоков ввода-вывода.

Вторая библиотека JGL компании ObjectSpace расшифровывается как Java Generic Collections Library - библиотека общих коллекций и алгоритмов. Она расширяет и дополняет классы, которые уже имеются в JDK. Программисты, работающие на Cи++, могут трактовать эту библиотеку как Java-версию библиотеки стандартных шаблонов STL. Как и в последней, в JGL имеются контейнеры, алгоритмы, итераторы и функциональные объекты - короче, все базовые объекты, требуемые для реализации самых сложных объектов.

* * *

Заканчивая описание Borland JBuilder 1.0, отметим, что этот продукт может служить не только инструментом для решения проблем, но и примером того, как можно писать коммерческие продукты на Java: вы сами можете убедиться, что все мастеры и большая часть диалоговых панелей пакета реализованы именно на этом языке. Так что есть на кого равняться.


JBuilder 1.0

Borland Int.

Системные требования (для варианта Professional): процессор Pentium-90 или выше; ОС Windows 95 или Windows NT 4.0; 32 Мбайт оперативной памяти (рекомендуется 48 Мбайт); 50 Mбайт свободного места на жестком диске для обычной установки.