Несовместимые изменения в библиотеке Resto.Framework
[ ]Механизм поиска и загрузки локализованных строк удалён из библиотеки Resto.Framework.dll
. Хотя эта библиотека и не является частью iikoFront API, некоторые плагины всё же могли использовать её, при обновлении приложения iikoFront они могут перестать работать.
Resto.Framework.dll
, как и другие файлы приложения iikoFront, является внутренней деталью его реализации и может поменяться или вовсе удалиться в любой версии iikoFront без предупреждения. Для этой библиотеки не публикуется xml-файл документации, отсутствует chm-справочник, не гарантируется обратная совместимость. Плагины не должны никоим образом полагаться на эту библиотеку.
К сожалению, имела место некая путаница и даже провокация использования этой библиотеки — в составе SDK она публиковалась не как ThirdParty, а в подпапке iiko, iikoFront API вплоть до версии V4 и примеры плагинов из SDK так или иначе использовали Resto.Framework.dll
, провоцируя разработчиков плагинов делать то же самое. Версия API V5 не будет ссылаться на эту библиотеку, а в SDK начиная с версии 5.2 эта библиотека будет публиковаться только в подпапках V3 и V4.
Удаление механизма локализации из Resto.Framework.dll
— не первое и не последнее изменение, способное нарушить работу плагинов, использовавших недокументированные возможности этой библиотеки. Более того, до фиксации версии API V5 даже новые плагины, дополняющие чеки собственной разметкой, вынуждены будут использовать тэги из Resto.Framework.Common.Print.Tags
, поскольку V3 и V4 не содержат альтернативы, и лишь после перехода на API V5 смогут переключиться на Resto.Front.Api.V5.Data.Cheques.Tags
. В случаях, когда плагин по историческим причинам или вынужденно использует библиотеку Resto.Framework.dll
, рекомендуется относиться к ней как к стороннему компоненту и устанавливать в папку с плагином именно ту версию файла, с использованием которой плагин был собран. Для этого необходимо выяснить версию, найти SDK соответствующей версии и взять оттуда файл Resto.Framework.dll
. Для выяснения версии можно воспользоваться бесплатной утилитой ILSpy.
Следует заметить, что до версии 5.2 при наличии файлов с одинаковыми именами в папке плагина и в папке приложения iikoFront загружался файл из папки iikoFront, поэтому в версиях до 5.2 мало установить Resto.Framework.dll
в папку с плагином, необходимо ещё зарегистрировать в коде плагина обработчик AppDomain.AssemblyResolve
и вручную загрузить файл из папки плагина. Начиная с 5.2 предпочтение будет отдаваться файлу из папки плагина, подробнее об этом есть отдельная статья.