Как экспортировать компоненты приложения в Lotus Domino Designer?

StackOverflow https://stackoverflow.com//questions/24014290

Вопрос

У меня есть устаревшее веб-приложение Lotus Domino - база данных с данными, конечно, а также JavaScript, ресурсы - включая изображения PNG и jpg, подформы в виде HTML и CSS и т. д.

Я хочу экспортировать само приложение - нет данные, только структура приложения, поэтому я могу повторно использовать изображения, HTML и CSS в других, более современных веб-фреймворках (например,Rails, NodeJS, PHP, Python или что-то еще), которые используют шаблоны HTML, а также CSS и JS в виде файлов.

Как экспортировать HTML, CSS, JS, png, jpg и т. д.как есть?Я рад использовать всю файловую структуру, как показано в Designer, просто хочу получить фактический HTML/CSS/JS/изображения/и т. д.там.

Я попробовал использовать опцию «синхронизация диска управления версиями», но файлы сохраняются в каком-то странном XML-формате, специфичном для Domino, а базовый HTML/CSS/и т. д. хранится в шестнадцатеричном формате.Не очень полезно.

Например, в моем приложении может быть Shared Elements\subforms\main.login.subform (и многие другие), которые выглядят так:

<style>
#service-content {
    background-color: #fff;
}

label, input {
    width: 100px;
    display: inline-block;
    padding: 3px 5px;
    margin-bottom: 10px;
}

input {
    width: 300px;
}

#login-message, h1 {
    text-align: center;
}   
</style>
<div style="width: 450px; margin: 0 auto">
    <input type="hidden" value="/<Computed Value>/page?readform" name="RedirectTo" />

    <h1>Login</h1>
        <!-- lots of html here -->
</div>
<!--// NAVIGATION -->

Я хочу извлечь это (и другим это нравится).

РЕДАКТИРОВАТЬ:

Как отметил @AndrewB в комментариях ниже, это заслуживает лучшего объяснения.

Рассматриваемое приложение Domino использует (в основном) статический HTML и JS для получения данных от агентов через Ajax.Таким образом, пользовательский интерфейс (html/css/js) можно многократно использовать с любой поддержкой, при этом требуется умеренный объем работы.

Но это сработает только в том случае, если я смогу получить исходные статические страницы.Эта статика хранится под Resources\Files\ или Shared Elements\subforms\

РЕДАКТИРОВАТЬ 2:

Когда я отключаю двоичный экспорт DXL согласно @sjcaged, я получаю выходные данные для приведенного выше необработанного HTML, которые выглядят следующим образом (это только конец):

<font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"submit"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='purple'/>value</run>    
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/>=</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"Login"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'><run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/></run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>form</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;
</run></par>
<par def='2'><run><font name='monospace'/>&lt;!--// NAVIGATION --&gt;</run></par></richtext>    
</body>
<item name='$$ScriptName' summary='false' sign='true'><text>main.nav</text></item></subform>
Это было полезно?

Решение

@deitch, ты был почти у цели:вы хотите включить систему контроля версий.Это работает так: содержимое базы данных синхронизируется (автоматически или вручную) со стандартным каталогом файловой системы.Дополнительную информацию см. в разделе справки «Настройка функции включения системы управления версиями».

Однако, чтобы это действительно работало, необходимо изменить предпочтения.В дизайнере сначала перейдите в файл | Предпочтения | Дизайнер | Управления источником.Убедитесь, что параметр «использовать двоичный DXL» не установлен.Дополнительную информацию о разнице см. в разделе справки «Выбор способа представления элементов дизайна на диске». По сути, использование обычного DXL разделяет данные элемента дизайна [т.е.код] из оболочки метаданных в формате DXL, которую элемент дизайна имеет в базе данных, где двоичный DXL помещает их оба в двоичный объект и предотвращает возможность их редактирования внешними приложениями.Здесь есть и другие варианты. Дополнительную информацию см. в разделе справки «Настройка предпочтений функции управления версиями».

После этого (все еще в дизайнере) щелкните проект правой кнопкой мыши, выберите «Групповая разработка», а затем «Настроить систему управления версиями для этого приложения».Он может отображать или не отображать заставку, и вы должны выбрать «Далее», но в конечном итоге появится диалоговое окно с просьбой ввести имя проекта на диске.Убедитесь, что вторая строка указывает на каталог, который еще не существует (по умолчанию, если установлен флажок «использовать местоположение по умолчанию», она будет указывать на каталог данных Notes и добавлять к нему все, что введено в качестве имени для включенного файла). -disk project в качестве нового имени каталога).Когда вы выберете «Готово», виртуальная файловая система Eclipse из NSF будет экспортирована в файловую систему, используя этот каталог в качестве корневого.

(Не во всех перспективах отображается запись «Развитие команды».Примечательно, что Java Perspective этого не делает.Однако с точки зрения дизайнера Domino это так.Чтобы изменить перспективу, выберите окно | Откройте перспективу и выберите перспективу для использования.)

Как только это будет сделано, вы можете использовать внешние инструменты, чтобы добавить каталог в систему управления версиями [что всегда хорошая идея];пока флажок «использовать двоичный DXL» не выбран, вы также можете использовать внешние инструменты для управления кодом и данными, которые считаются частью приложения.

Другие советы

Простой ответ:Нет никакого способа сделать это.

Веб-код, отображаемый в браузере, динамически генерируется HTTP-задачой Domino из форм, представлений, страниц, подформ, библиотек сценариев, формул и т. д.

В базе данных нет простого HTML-представления.

Чтобы получить то, что вы хотите, вам понадобится программа-личер, которая захватывает и загружает сгенерированный исходный код, как это сделал бы браузер.Но поскольку большая часть функций выполняется на стороне сервера (проверка полей, агенты, отправка почты и т. д.), от такого подхода вы не получите ничего достаточного.

Конечно, вы можете вручную экспортировать ресурсы изображений, файлы css и, возможно, библиотеки JavaScript (если таковые имеются), но это не продвинет вас ни на шаг вперед к тому, чего вы хотите достичь.

Если вы хотите «перенести» NSF на другую платформу, вам придется все переписать…

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top