Каковы ограничения свободного XAML?
-
03-07-2019 - |
Вопрос
Я экспериментировал с WPF и отображал строгую разметку XAML в веб-браузере, также известную как свободный XAML (объясняется здесь и здесь).
Мне кажется, что он наиболее полезен для отображения статического контента.Однако также представляется возможным выполнить привязку к поставщику данных XML.
Свободные файлы XAML не компилируются с приложением, что создает следующие ограничения:
- Они не допускают внешних сборок
- Никакого использования классов, кода программной части (или любого C#)
- Нет двусторонней привязки данных
Какие дополнительные ограничения существуют?
- Я не нашел способа привязки данных к поставщику базы данных (SQL Server).
- Требуется ли .NET Framework на клиентском компьютере для отображения XAML в браузере?
- Могут ли поисковые системы допросить свободный XAML, чтобы надлежащим образом ранжировать страницы?
РЕДАКТИРОВАТЬ:Я попытался связать поставщика данных XML с веб-службой (используя этот простой пример) и не увенчались успехом.Эти результаты привели меня к дальнейшим исследованиям, в ходе которых я обнаружил, что это не поддерживается:«Xmldataprovider предназначен для чтения только для чтения (другими словами, он не дает возможности совершать изменения) и не может иметь дело с данными XML, которые могут исходить из других источников (например, запись базы данных , сообщение веб -службы и т. Д.) ». -Матфея Макдональд, Профессиональный WPF
Решение
AFAIK невозможно определить строку подключения в XAML.Таким образом, вы не можете получить доступ к своей базе данных SQL.
Примечание:Однако можно привязать данные к веб-сервису с помощью XmlDataProvider.Так что это может быть способ отправить ваши данные через...
Редактировать:кстати, я нашел это список функций изолированной среды, в котором работает ваше приложение при использовании XBAP и свободном XAML.это немного устарело, но, вероятно, большинство ограничений все еще применяются.
Другие советы
Для просмотра отдельных страниц XAML в IE требуется платформа не ниже 3.0.Вы даже можете проверить его на своем сайте, выполнив поиск «.NET CLR 3.0» в строке пользовательского агента.
Соединение с базой данных, если оно вообще возможно, не будет осуществляться непосредственно в свободном XAML из-за необходимости в процедурном коде для открытия соединения.
Я проделал большую работу по размещению среды выполнения динамического языка (DLR) и внедрению сценариев в XAML.Сейчас я чувствую, что Loose XAML не является гражданином второго сорта, поскольку я могу обрабатывать события, писать преобразователи значений, запускать Python/Ruby/JScript для таких вещей, как подключение к SQL-серверу.
Смотри мой блог чтобы понять, подходит ли вам это направление.
Я динамически загружаю сборки, используя прикрепленное свойство — после загрузки вы можете ссылаться на классы в сборке обычным способом.
Итак, ответьте на вопрос: существует МНОГИЕ ограничения Loose XAML из коробки (например, невозможность перенаправить событие в обработчик событий), но их можно преодолеть, приложив немного усилий.
Я использовал XAML/WPF только для настольных приложений.Надеюсь, кто-то еще ответит на ваши вопросы, касающиеся конкретного браузера.
У меня есть библиотека, которую я использую в коммерческой работе по размещению DLR и внедрению сценариев DLR в XAML, которую я намеревался превратить в поддерживаемый продукт.Если вам это будет интересно, обязательно дайте мне знать.