Обзор интегрированной среды разработки Lazarus




Free Pascal (FPC) компилятор с открытыми исходными кодами с двумя важными особенностями: высокая совместимость с Delphi и доступность для большого количества платформ, включая Windows, Mac OS X, и Linux. Совместимость Free Pascal с Delphi включает не только поддержку того же языка программирования Object Pascal который использует Delphi, но также библиотеки конструкции и классы, которые "понимает" Delphi, например, System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles and Registry, которые включены в Free Pascal и поддерживаются всеми платформами. Free Pascal также включает модули Windows, ShellAPI, BaseUnix, Unix и DynLibs для доступа к специфичным для конкретной ОС фичам. Около дюжины модулей составляют ядро обычно упоминающееся как Free Pascal run-time library (RTL).

Lazarus - это система с открытым исходным кодом, которая построена на компиляторе Free Pascal Compiler с добавлением Интегрированной Среды Разработки (IDE), которая включает в себя подсветку синтаксиса, редактор кода и визуальный проектировщик форм, а также библиотеку компонентов, которая очень хорошо совместима с Библиотекой Визуальных Компонентов Delphi (VCL). Библиотека Визуальных Компонентов Lazarus (LCL) включает эквиваленты для большинства контролов из VCL, например, формы, кнопки, текстовые поля и так далее, которые используются для создания приложений, которые имеют графический интерфейс (GUI).

И Free Pascal и Lazarus написаны на Pascal. Полный исходный код доступен не только для Free Pascal compiler и Lazarus IDE, но и также для всех модулей, составляющих Free Pascal RTL и Lazarus LCL.

Подобно Delphi, Free Pascal и Lazarus являются многоцелевым инструментом программирования, то есть вы можете создавать программы различных типов, включая следующие:

Консольные приложения не имеют графического интерфейса (GUI). Обычно они запускаются в консоли, читают информацию с консоли и выводят результаты на консоль. В Windows консоли обычно соответствует окно командной строке. В OS X и Linux консоли соответствует окно терминала. Консольные приложения это, как правило, небольшие утилиты, такие как программа FC (file compare - сравнение файлов) в Windows или команды cd и cp в Unix. Консольные приложения могут быть также мощными программами для тестирования, моделирования или управления данными, которые не нуждаются в причудливом GUI, потому как они запускаются другими программами или из командных файлов. Компилятор Free Pascal и прилагающийся набор утилит являются консольными приложениями, то есть могут быть запущены в консоли, из командных файлов или из IDE Lazarus.

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

Динамически-подгружаемые библиотеки (DLL)

Динамически-подгружаемая библиотека обычно представляет из себя набор скомпилированных функций, которые могут вызываться другими программами. Библиотека не прилинковывается к программе в режиме компиляции, а вместо этого она загружается в реальном времени. В Windows, файл библиотеки имеет расширение.dll (dynamic-link library, или DLL). В OS X, файл библиотеки имеет расширение. dylib (dynamic shared library). В Linux, файл библиотеки имеет расширение. so (shared object library). Динамически-подгружаемые библиотеки обычно используются для разработки дополнений других программ, а также для разработки библиотек, которые могут вызываться программами, написанными на других языках, например, на C и C++, или для разбиения больших проектов на кусочки, чтобы разработчики на наступали друг другу на пятки. Windows сама по себе состоит из сотен библиотек DLL, как и другие крупные приложения, например, OpenOffice.org.

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

В Windows, DLL-ки имеют незаслуженную репутацию сложных и нестабильных элементов. Это больше относится к тому каким способом они иногда устанавливаются, нежели к использованию DLL как таковых. В действительности, так как обмен информацией с DLL обычно идет при помощи стандартных простых типов данных (вместо специфичных для языка объектов и структур), то это требование заставляет программистов уделять больше внимания тому что они делают. Если все сделано правильно, то в результате получаются более стабильные и хорошие программы.

GUI приложения

Большинство программ, которые мы используем каждый день – это GUI-приложения, среди которых текстовые процессоры, Web-браузеры, электронные таблицы и даже инструменты разработки. Lazarus и Delphi это прекрасные примеры полностью укомплектованных GUI-приложений. При разработке GUI-приложения в Lazarus, вы не только пишете код на Pascal, но также создаете формы, содержащие визуальные элементы, такие как кнопки и списки (ListBox). Также, как и в Delphi, разработка форм в Lazarus производится визуально. Свойства элементов могут быть изменены при помощи IDE или программно.

Поскольку LCL элементы доступны для всех поддерживаемых платформ, то GUI-приложения, созданные на одной платформе (например, Windows) могут быть скомпилированы на другой платформе (например, OS X или Linux) без изменения формы или файлов с сопутствующим кодом формы.

Внутренне устройство Lazarus

Программы, написанные в Lazarus, используют следующею архитектуру:

LCL представляет собой следующею архитектуру:

 


ПРИЛОЖЕНИЕ 4

Обзор СУБД Firebird.

Firebird – кроссплатформенная система управления базами данных (СУБД), работающая на Mac OS X, Linux, Microsoft Windows и разнообразных Unix платформах.

Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников.

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

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

Основные характеристики

· Соответствие требованиям ACID: Firebird сделан специально, чтобы удовлетворять требованиям «атомарности, целостности, изоляции и надёжности» транзакций («Atomicity, Consistency, Isolation and Durability»)[4].

· Версионная архитектура: Основная особенность Firebird – версионная архитектура, позволяющая серверу обрабатывать различные версии одной и той же записи в любое время таким образом, что каждая транзакция видит свою версию данных, не мешая соседним («читающие транзакции не блокируют пишущих, а пишущие – не блокируют читающих»). Это позволяет использовать одновременно OLTP и OLAP запросы.

· Хранимые процедуры: Используя язык PSQL (процедурный SQL) Firebird, можно создавать сложные хранимые процедуры для обработки данных полностью на стороне сервера. Для генерации отчётов особенно удобны хранимые процедуры с возможностью выборки, возвращающие данные в виде набора записей. Такие процедуры можно использовать в запросах точно так же, как и обычные таблицы.

· События: Хранимые процедуры и триггеры могут генерировать события, на которые может подписаться клиент. После успешного завершения транзакции (COMMIT) он будет извещён о произошедших событиях и их количестве.

· Генераторы: Идея генераторов (последовательностей) делает возможной простую реализацию автоинкрементных полей, и не только их. Генераторы являются 64‐битными хранимыми в базе данных счётчиками, работающими независимо от транзакций. Они могут быть использованы для различных целей, таких как генерация первичных ключей, управление длительными запросами в соседних транзакциях, и т. д.

· Базы данных только для чтения: позволяют распространять базы данных, к примеру, на CD-ROM. Особенно упрощает распространение данных их использование в комбинации со встраиваемой версией сервера Firebird (Firebird Embedded).

· Полный контроль за транзакциями: Одно клиентское приложение может выполнять множество одновременных транзакций. В разных транзакциях могут быть использованы разные уровни изоляции. Протокол двухфазного подтверждения транзакций обеспечивает гарантированную устойчивость при работе с несколькими базами данных. Также доступны оптимистическое блокирование данных и точки сохранения транзакций.

· Резервное копирование на лету: Для резервного копирования нет надобности останавливать сервер. Процесс резервного копирования сохраняет состояние базы данных на момент своего старта, не мешая при этом работе с базой. Кроме того, существует возможность производить инкрементальное резервное копирование БД.

· Триггеры: Для каждой таблицы возможно назначение нескольких триггеров, срабатывающих до или после вставки, обновления или удаления записей. Для триггеров используется язык PSQL, позволяя вносить начальные значения, проверять целостность данных, вызывать исключения и т. д. В Firebird 1.5 появились «универсальные» триггеры, позволяющие в одном триггере обрабатывать вставки, обновления и удаления записей таблицы.

· Внешние функции: библиотеки с UDF (User Defined Function) могут быть написаны на любом языке и легко подключены к серверу в виде DLL/SO, позволяя расширять возможности сервера «изнутри».

· Декларативное описание ссылочной целостности: Обеспечивает непротиворечивость и целостность многоуровневых отношений «master-detail» между таблицами.

· Наборы символов: Firebird поддерживает множество международных наборов символов (включая Unicode) с множеством вариантов сортировки

Соответствие стандарту SQL

Firebird полностью поддерживает SQL-92 Entry Level 1 и реализует большую часть стандарта SQL-99 c некоторыми очень полезными дополнениями. Это включает выражения DML/DDL, синтаксис объединений FULL/LEFT/RIGHT [OUTER] JOIN, выражения UNION, DISTINCT, подзапросы (IN, EXISTS), встроенные функции (AVG, SUM, MIN, MAX, COALESCE, CASE,...), ограничения целостности (PRIMARY KEY, UNIQUE, FOREIGN KEY), и все общие типы данных SQL.

Firebird также реализует ограничения проверки (check constraints) на уровне доменов и полей, отображения (views), исключения, роли и управление правами доступа. Для более подробной информации см. Firebird Reference Guide и Release Notes.

Требования к аппаратному обеспечению

Firebird работает на аппаратных платформах x86, x64 и PowerPC, Sparc и многих других, и поддерживает легкий переход между этими платформами. Может использоваться даже не очень мощное оборудование, особенно под Linux. И, как в любой СУБД, на производительность влияют: количество памяти, скорость работы дисковой подсистемы и т. д. Рекомендации для выбора аппаратного обеспечения зависят от требования к системе, прогнозируемого размера базы данных, количества пользователей и т. п. Допустимо начинать с минимальной конфигурации, расширяя её по мере надобности.

Доступные операционные системы

32- и 64-разрядные версии Windows, Linux, также MacOS X, HP-UX, FreeBSD, Solaris и др. В настоящее время выпускаются версии только для 32- и 64-разрядных версий Windows, Linux и MacOS X. Последняя версия для Solaris и HP-UX – 2.1.4. Наиболее широко используемыми для серверов «Firebird» операционными системами являются Linux и Microsoft Windows (включая NT) (включая терминальные службы MS и Citrix).

Переход от одной ОС к другой весьма прост – достаточно сделать резервную копию базы в переносимом формате в одной системе и восстановить на другой.

Средства доступа к серверу

Firebird поддерживает множество способов доступа, включая: собственные наборы компонент для C/C++, Delphi, классы для ADO, ODBC, JDBC (Jaybird), драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных.NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll)

Физические ограничения

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

· Практически база данных объёмом 1 ТБ стабильно работает, что доказывает проведенный тест.

· Максимальная длина одной записи (суммарно все поля за исключением полей с типом BLOB) равна 64 КБ.

Версии серверa

Не поддерживаемые версии:

· 1.0 (последний выпуск 1.0.3 от 04.06.2003);

· 1.5 (последний выпуск 1.5.6 от 08.10.2009);

· 2.0 (последний выпуск 2.0.7 от 12.04.2012);

· 2.1 (последний выпуск 2.1.7 от 05.12.2014).

Поддерживаемые:

· 2.5 (самая последняя версия 2.5.6 от 04.07.2016);

· 3.0 (самая последняя версия 3.0.1 от 27.09.2016).

Архитектуры сервера

Существует четыре различных взаимозаменяемых архитектуры сервера.

· ClassicServer – один процесс на одно соединение; поддержка многопроцессорных машин.

· SuperServer – все соединения используют один процесс, меньшие требования к памяти при большем быстродействии; для многопроцессорных машин (до 3.0 для однопроцессорных).

· SuperClassic Server – один процесс, но свой поток на каждое соединение. Данная архитектура введена в версии 2.5.

· Embedded (встраиваемая) версия – весь движок содержится в одной библиотеке с именем клиентской библиотеки сервера, идеально подходит для однопользовательских систем, не требует инсталляции в Windows.

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

Лицензирование

Firebird выпускается под условиями IPL (InterBase Public License) и IDPL (Initial Developer’s Public License), которые совпадают с условиями Mozilla Public License 1.1. Firebird полностью бесплатен для использования и распространения (в том числе и коммерческого). Раскрытие исходного кода вашего продукта не требуется, вне зависимости от используемой модели лицензирования. Однако, в случае, если вы модифицировали исходный код сервера, то необходимо сделать доступным исходный код ваших модификаций.


ПРИЛОЖЕНИЕ 5



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: