Каковы ограничения Loose XAML? - PullRequest
3 голосов
/ 02 октября 2008

Я экспериментировал с WPF и отрисовывал строгую разметку XAML в веб-браузере, также известном как Loose XAML (объяснено здесь и здесь ).

Мне кажется, что это наиболее полезно для отображения статического контента. Тем не менее, также представляется возможным связать с поставщиком данных XML.

Свободные XAML-файлы не компилируются с приложением, что создает следующие ограничения:

  • Они не допускают внешних сборок
  • Не использовать классы, выделенный код (или любой C #)
  • Нет двусторонней привязки данных

Какие существуют дополнительные ограничения?

  • Я не нашел способа привязки данных к поставщику базы данных (SQL Server)
  • Требуется ли .NET Framework на клиентском компьютере для отображения XAML в браузере?
  • Могут ли поисковые системы запрашивать свободный XAML для соответствующего ранжирования страницы?

РЕДАКТИРОВАТЬ: Я пытался привязать провайдер данных XML к веб-службе (используя этот простой пример) и не удалось. Эти результаты привели меня к дальнейшим исследованиям, в которых я обнаружил, что это не поддерживается: «XMLDataProvider предназначен только для чтения (другими словами, он не предоставляет возможность фиксировать изменения), и он не может иметь дело с данными XML, которые могут поступать из других источников (таких как запись в базе данных, сообщение веб-службы и т. д.) ». - Мэтью Макдональд, Pro WPF

Ответы [ 3 ]

3 голосов
/ 02 октября 2008

Для просмотра свободных страниц XAML в IE требуется как минимум framework 3.0. Вы даже можете проверить это на своем сайте, посмотрев «.NET CLR 3.0» в строке агента пользователя.

Соединение с базой данных, если это вообще возможно, не будет выполняться непосредственно в свободном XAML из-за необходимости процедурного кода для открытия соединения.

1 голос
/ 18 декабря 2008

Я проделал большую работу по размещению Dynamic Language Runtime (DLR) и разрешению встраивания скриптов в XAML. Сейчас я чувствую, что свободный XAML не является гражданином второго сорта, поскольку я могу обрабатывать события, записывать преобразователи значений, запускать Python / Ruby / JScript для таких вещей, как подключение к серверу SQL.

См. Мой блог , чтобы узнать, подходит ли вам это направление.

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

Итак, также ответьте на вопрос, существует множество ограничений Loose XAML из коробки (например, невозможность перенаправить событие в обработчик событий), но их можно преодолеть с небольшим количеством работы.

Я использовал XAML / WPF только для настольных приложений. Надеемся, что кто-то другой зайдет, чтобы ответить на вопросы вашего браузера.

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

1 голос
/ 02 октября 2008

AFAIK невозможно определить строку подключения в XAML. Таким образом, вы не можете получить доступ к своей базе данных SQL.

Примечание: возможно привязать данные к веб-сервису, используя XmlDataProvider. Таким образом, вы можете отправить свои данные через ...

Редактировать: кстати, я нашел этот список функций среды Sandboxed , в которой ваше приложение работает при использовании XBAP и свободного XAML. Это немного устарело, но, вероятно, большинство ограничений все еще применяются.

...