CASEBERRY Plugins

Для чего нужны CASEBERRY Plugins

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

Автоматизированное получение базы данных с модели

 Инструментарий позволяет автоматически по модели сформировать скрипты DDL для создания структуры данных в реляционной базе данных. Останется только запустить эти скрипты для создания базы.
 Также существует возможность привести базу данных в соответствие с моделью, описанной на языке UML. Генератор исследует структуру базы данных, найдёт различия между ней и моделью в CASEBERRY, а затем создаст и применит скрипт, вносящий изменения в базу в соответствии с моделью.

Автоматизированное получение систем с модели (генерация кода)

 Инструментарий позволяет автоматизированно получать исходный код приложения. В отличие от других инструментов, не просто преобразует UML диаграммы классов в объектно-ориентированный код этих же классов, а создаст код для сущностей, код для пользовательского интерфейса, разместит на формах элементы управления, создаст приложение для запуска и т.п. Фактически, сгенерированный код можно сразу, прямо из среды CASEBERRY, скомпилировать и запустить полученную систему. Можно даже делать генерацию-компиляцию-запуск одним щелчком мыши!
 В зависимости от используемого модуля, исходный код можно получать инструкций на языке C#, JavaScript, SQL и др.

Классы данных (с наследованием!), сервисы данных, написание бизнес-логики

 Конечно, не всё полностью автоматизирует генератор. Он автоматизирует лишь наиболее рутинные аспекты программирования. Такие вещи, как реализация операций, всё равно делает программист, однако мы стараемся как можно больше освободить его от рутинных аспектов программирования, в частности, в области доступа к данным.
 Сегодня, имеется очевидный прогресс в области доступа к данным, высокоуровневые библиотеки, подобные ADO, предоставляют широкие возможности: выполнить запрос и получить набор записей, которые можно разобрать более или менее удобным способом.  К сожалению, они не избавляют программиста от необходимости писать запрос, перебирать поля и устанавливать значения в поля объектов. Аналогично и при сохранении объектов. Это является рутинной работой, и хочется большего…
Наверное, многие программисты мечтают о том, как было бы здорово, если бы можно было сохранять и читать из базы данных экземпляры классов напрямую, т.е. по-настоящему объектным образом. Было бы так изящно и легко передать объект или массив объектов какому-либо сервису (сервису данных), а тот обновит записи в источнике данных (базе данных). Этот сервис данных «поймёт», какие поля в объекте изменились, построит запрос и выполнит его. Также, при чтении было бы здорово получать непосредственно объект или массив объектов прямо от сервиса данных. И ничего лишнего, никакого лишнего кода, никаких лишних структур, SQL запросов и т.п.
 С нашим инструментом — это реальность!
Вы просто берёте объект, передаёте сервису данных, примерно вот так (C#):

            //Сохранение одного объекта
            Страна страна = new Страна();
            страна.Наименование="Россия";
            DataServiceProvider.DataService.UpdateObject(страна);
        

 Обратите внимание: вы не «говорите» сервису данных, что конкретно хотите сделать: добавить объект, удалить или обновить; UpdateObject — означает «привести хранилище в соответствие объекту». Сервис данных сам «понимает», что вы хотите добавить страну, раз уж вы только что её сконструировали.

Доступ к разным источникам данных (имеющиеся и возможности создания своего)

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

Пользовательский интерфейс (списки, формы)

 У современных средств разработки весьма развитые средства разработки пользовательского интерфейса: программист размещает на формах элементы управления, как стандартные, так и собственного написания, либо написанные кем-то ещё. Однако, если вы создаёте систему, где много разных объектов, требующих ввода, отображения в списках и т.п., Вам придётся размещать на формах огромное количество элементов, связывать их с данными, писать обработку стандартных действий (таких, как редактирование, сохранение и т.п.). А это всё, опять же, огромная, отнимающая много времени, рутинная работа. И тогда хочется большего…
С нашим инструментарием, вы можете:
  1. Пользоваться стандартными, предопределёнными, автоматически настраивающимися на сущности формами;
    1. Получить любую форму в виде исходного кода (сгенерировать её) и затем изменить, допрограммировать её обычным образом, через IDE.
    2. Вы можете создать пользовательский интерфейс полностью «вручную», используя предоставляемые нами элементы управления.
    3. Вы можете настраивать пользовательский интерфейс как угодно, наш инструмент никак вас не ограничивает.

Общие принципы создания систем

 Наш инструментарий позволяет разрешить не только рутинные проблемы, но и архитектурные, такие как:
  1. Работа с данными и объектный доступ к данным, в том числе хранение объектов наследующихся классов;
  2. Выбора клиент-серверной архитектуры (монолит, двухуровневая, трехуровневая, многоуровневая);
  3. Организация пользовательского интерфейса;
    • Блокирование данных от других пользователей в процессе редактирования (пессимистическая блокировка);
    • Хранение настроечной информации;
  4. И многое, многое другое.

Что нужно для работы с нашим инструментом

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