2008-10-01 3 views
3

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

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

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

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

Какие еще существуют ограничения?

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

EDIT: Я попытался связать поставщика данных XML с веб-службой (используя простой пример this) и не был успешным. Эти результаты приводят меня к дальнейшим исследованиям, когда я обнаружил, что это не поддерживается: «XMLDataProvider предназначен для чтения только для чтения (другими словами, он не дает возможности совершать изменения), и он не способен обрабатывать данные XML, которые могут поступать из других источников (например, запись базы данных, сообщение веб-службы и т. д.). -Matthew MacDonald, Pro WPF

ответ

1

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

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

Редактировать: btw, я нашел это list of features of the Sandboxed environment, которое работает в вашем приложении при использовании XBAP и освобождает XAML. он немного устарел, но, вероятно, большинство ограничений по-прежнему применяются.

3

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

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

+1

Я не уверен, почему это даже проблема. свободный xaml следует сравнить с HTML. вы не можете открыть соединение с базой данных с javascript на стороне клиента. вам нужно будет выполнить эту работу на сервере, а затем отправить клиенту страницу с информацией о базе данных. почему бы вам не сделать то же самое с бесплатным xaml .. сервер строит xaml с данными и отправляет их клиенту – zumalifeguard

1

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

Посмотрите мои blog, чтобы узнать, подходит ли вам именно это направление.

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

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

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

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