Введение. Установка. Примеры программ
Введение
Пакет ManagedIrbis5
представляет собой фреймворк для создания клиентских приложений для системы автоматизации библиотек ИРБИС64 на платформе Microsoft .NET 8.
Пакет не содержит неуправляемого кода и не требует irbis64_client.dll
. Успешно работает на 32-битных и 64-битных версиях операционных систем Windows, Linux и Mac OS X.
Основные возможности пакета:
Поиск и расформатирование записей.
Создание и модификация записей, сохранение записей в базе данных на сервере.
Работа с поисковым словарем: просмотр термов и постингов.
Администраторские функции: получение списка пользователей, его модификация, передача списка на сервер, создание и удаление баз данных.
Импорт и экспорт записей в формате ISO 2709 и в обменном формате ИРБИС.
Поддерживаются Microsoft Visual Studio (в т. ч. Community Edition), начиная с версии 17.8 (2022), и сервер ИРБИС64, начиная с 2014. Более ранние версии Visual Studio будут выдавать ошибки, т. к. они не поддерживают .NET 8. Аналогично обстоит дело и с более ранними версиями сервера ИРБИС64.
Установка
ManagedIrbis5
загружен в централизованный репозиторий пакетов NuGet, поэтому можно установить его с помощью стандартной утилиты dotnet
, входящей в поставку .NET:
dotnet add package ManagedIrbis5
Также можно установить пакет, скачав необходимые файлы с репозитория GitHub: https://github.com/amironov73/ManagedIrbis5
Кроме того, доступны ночные сборки на AppVeyor: https://ci.appveyor.com/project/AlexeyMironov/ManagedIrbis5/build/artifacts
Примеры программ
Ниже прилагается пример простой программы. Сначала находятся и загружаются 10 первых библиографических записей, в которых автором является А. С. Пушкин. Показано нахождение значения поля с заданным тегом и подполя с заданным кодом. Также показано расформатирование записи в формат brief
.
using System;
using System.Threading.Tasks;
using ManagedIrbis;
using ManagedIrbis.Infrastructure;
using static System.Console;
#nullable enable
class Program
{
static async Task<int> Main(string[] args)
{
try
{
await using var connection = ConnectionFactory.Shared
.CreateConnection();
connection.Host = args.Length == 0
? "127.0.0.1"
: args[0];
connection.Username = "librarian";
connection.Password = "secret";
var success = await connection.ConnectAsync();
if (!success)
{
await Error.WriteLineAsync("Can't connect");
return 1;
}
WriteLine("Successfully connected");
// Ищем все книги, автором которых является А. С. Пушкин
// Обратите внимание на двойные кавычки в тексте запроса
var found = await connection.SearchAsync
(
"\"A=ПУШКИН$\""
);
WriteLine($"Найдено записей: {found.Length}");
// Чтобы не распечатывать все найденные записи,
// отберем только 10 первых
foreach (var mfn in found[..10])
{
// Получаем запись из базы данных
var record = await connection.ReadRecordAsync(mfn);
// Извлекаем из записи интересующее нас поле и подполе
var title = record.FM(200, 'a');
WriteLine($"Title: {title}");
// Форматируем запись средствами сервера
var description = await connection.FormatRecordAsync
(
"@brief",
mfn
);
WriteLine($"Биб. описание: {description}");
WriteLine(); // Добавляем пустую строку
}
// Отключаемся от сервера
await connection.DisposeAsync();
WriteLine("Successfully disconnected");
}
catch (Exception exception)
{
WriteLine(exception);
return 1;
}
return 0;
}
}
Совместимость с предыдущими версиями
Пятая версия фреймворка ManagedIrbis
имеет ряд особенностей, делающей ее несовместимой с предыдущими версиями.
К сожалению, переход на пятую версию путём простой перекомпиляции исходных кодов невозможен. Требуется ручное редактирование кода.
Благодарности
Автор выражает благодарность:
Ивану Батраку (СФУ), протестировавшему библиотеку на совместимость с разными версиями ИРБИС-сервера;
Шувалову Арсению Валентиновичу (Саратовская государственная консерватория им. Л. В. Собинова), выявившему ошибки в библиотеке;
Артёму Васильевичу Гончарову (Научная музыкальная библиотека Санкт-Петербургской Консерватории им. Н. А. Римского-Корсакова), выявившему некоторые досадные ошибки в библиотеке.
Лицензия
Пакет ManagedIrbis5
распространяется по лицензии MIT:
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное обеспечение»), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.