Портирование приложения JavaScript в Silverilight (XML / XSLT / HTML и XAML) - PullRequest
0 голосов
/ 28 января 2010

Мы находимся в процессе переноса существующего приложения JS на Silverlight. Вы можете представить приложение как приложение для управления документами: 1.) Документы хранятся в виде документов XML. 2.) Документы могут быть разных типов. Типы документов могут быть добавлены без изменения исходного кода (все находится в БД или ФС). - Каждый тип документа имеет разные формы для редактирования документов. - Каждый тип документа имеет свою форму для просмотра документов.

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

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

Что касается первого варианта, я думаю, что я должен «изобрести» некоторый файл метаданных, который расскажет, как генерировать (стилизовать) формы. Поскольку мы должны поддерживать много разных стилей, я думаю, что это все равно, что изобретать новый CSS.

Для второго варианта я не знаю, как создать этот генератор. Как я уже сказал, добавление нового типа документа (и новых генераторов) должно быть сделано без изменения или перекомпиляции исходного кода и должно быть максимально простым (типы документов меняются ежедневно). У нас был XSLT в JS, но, насколько я знаю, в SL нет поддержки XSLT.

Кроме того, я знаю, что генератор, вероятно, должен генерировать код XAML, а не HTML.

Мы создали прототип, в котором у нас есть разные генераторы для каждого типа документа. Каждый генератор хранится в отдельной сборке, которая затем динамически загружается в приложение SL. Но я боюсь, что создание этого для каждого типа документа будет кошмаром.

Что вы предлагаете? Пожалуйста, дайте мне знать, если вам нужно больше информации. Спасибо!

Ура!

1 Ответ

0 голосов
/ 29 января 2010

Это сложный вопрос. Сейчас мне будет сложно, и я не отвечу на ваш вопрос, а вместо этого предложу альтернативный подход: это вариант для вас, чтобы обработать XSL-обработку на сервере и затем просто загрузить сгенерированный XAML в Silverlight с помощью метода веб-службы? Или, возможно, даже сохраните обработку XSL в своем текущем коде Javascript и просто вызовите эти методы js из Silverlight.

Что касается редактирования документа XML, я думаю, что это будет еще сложнее. Генерация формы не должна быть слишком сложной, если предположить, что вам удастся решить всю проблему XML -> XSL -> XAML. Но я не могу придумать хороший способ получения значений, которые пользователь вводит в сгенерированную форму, обратно в XML-документ. Silverlight поддерживает Linq to XML, но эти запросы всегда компилируются, чего, я думаю, вы хотите избежать. Я думаю, что Silverlight в его текущей версии просто не очень хорошо подходит для такого рода вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...