Проблемы использования и зрелости XBAP

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

Знаете ли вы о каких-либо коммерческих приложениях, использующих XBAP, и есть ли у вас опыт его использования? можете рассказать об этом опыте?

также, как предложил @Murph, можете ли вы придумать веские причины предпочесть clickOnce XBAP (или наоборот)?


person Yonatan Karni    schedule 21.10.2009    source источник
comment
Глядя на это, также нужно спросить, почему XBAP вместо Clickonce? К сожалению, я могу многое сделать в качестве ответа в любом случае!   -  person Murph    schedule 21.10.2009
comment
хороший вопрос, я должен сказать, что не знаю, что предпочтительнее, обновлю свой вопрос.   -  person Yonatan Karni    schedule 21.10.2009
comment
ПРОСИМ ВСЕХ! Я хотел выбрать получателя награды, но StackOverflow не разрешил этого (слишком долго). Я думаю, что это действительно отстой, и я написал об этом на мета-сайте, но, увы, я не могу это изменить. так что мои извинения всем, и спасибо за вашу помощь!   -  person Yonatan Karni    schedule 02.11.2009


Ответы (5)


Я делал инструмент XBAP, в том числе для внутренних корпоративных нужд. Развернуть обновления довольно просто — просто обновите версию серверного приложения, и клиенты будут обновлены при следующем подключении. Итак, в этом аспекте он не сильно отличается от ClickOnce.

Главной проблемой для нас был режим «частичного доверия», которому нужно подчиняться. И это происходит в некоторых очень неожиданных ситуациях, например, некоторые из наших сторонних WPF не работают, потому что они используют растровые эффекты WPF, которые, в свою очередь, используют шейдеры графического процессора, что рассматривается системой как нарушение безопасности и блокируется. Я не уверен, что такая проблема решена в ClickOnce. Ходят слухи, что режим доверия XBAP будет менее параноидальным в .NET 4.

В остальном я не вижу никакой разницы. По крайней мере, разработка XBAP по сравнению с автономным WPF одинакова. (Примечание: Silverlight отличается тем, что использует только подмножество .NET framework, которое устанавливается отдельно и доступно для нескольких платформ. Для XBAP требуется платформа Windows и .NET Framework 3+).

person Max Galkin    schedule 30.10.2009
comment
при частичном доверии насколько сложно/легко использовать модальные диалоги/открывать новые окна и т.д.? Я читал, что открытие нового окна приведет к отключению блокировщика всплывающих окон. Есть ли способ заставить его работать из коробки без дополнительных локальных настроек? - person Yonatan Karni; 02.11.2009
comment
Как правило, вам не разрешено открывать новые окна или использовать собственные диалоги (msdn .microsoft.com/en-us/library/aa970910.aspx). Вы можете вызывать некоторые стандартные диалоги, такие как File Open, и вы можете создавать экземпляры Popup. Не уверен, будут ли они заблокированы или нет, но вам также придется реализовать модальность самостоятельно (social.msdn.microsoft.com/forums/en-US/wpf/thread/)... - person Max Galkin; 02.11.2009
comment
еще вопрос - мой клиент вызывает веб-сервис с WCF, настроенным через app.config. когда я играл с XBAP, я не мог найти способ его развернуть, и в любом случае app.config недоступен, поскольку процесс выполняется в контексте PresentationHost. был ли у вас опыт работы с альтернативой app.config (особенно в контексте веб-сервисов)? (развернуть другой файл и загрузить его вручную? использовать жестко закодированную конфигурацию?) - person Yonatan Karni; 02.11.2009
comment
Насколько я знаю, мы используем App.config для подключения к WCF-сервису, и он работает, никаких специальных действий не требуется... - person Max Galkin; 02.11.2009

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

Вы правы в том, что внедрение XBAP действительно очень низкое. Я думаю, это в первую очередь потому, что Silverlight имеет гораздо больше смысла для большинства людей, которым нужны преимущества WPF/DotNet в браузере (поскольку их приложения могут быть кросс-платформенными с Silverlight).

person Clay Fowler    schedule 28.10.2009
comment
не могли бы вы уточнить первый пункт - clickOnce? легко ли выкладывать обновления? (или это копирование и запуск за клик?), как я уже сказал, наша мотивация в основном заключается в быстром и легком развертывании, например, для пользователей службы поддержки. Что касается второго пункта - опять же, мы хотели бы использовать как можно больше существующего кода, и кажется, что Silverlight будет гораздо более строгим при использовании наших общих сборок и т. д., поскольку проект Silverlight не может ссылаться на сборки, отличные от Silverlight. - person Yonatan Karni; 29.10.2009
comment
Да, развертывать обновления очень просто — это основная часть ClickOnce. Таким образом, вы отправляете новую сборку своего инструмента на HTTP-сервер, с которого они были установлены, и при следующем запуске он автоматически обновится. Вы можете контролировать, насколько драконовским он должен быть: принудительное обновление, запрос на обновление и т. д. - person Clay Fowler; 29.10.2009
comment
Вы совершенно правы насчет Silverlight в вашем случае. Я упомянул об этом только как возможное объяснение низкой популярности XBAP, а не как рекомендацию для решения этой проблемы. - person Clay Fowler; 29.10.2009

Мы разрабатываем приложение, которое имеет как десктопную, так и веб-реализацию. Поскольку функциональность практически одинакова, нам нужно решение из единого источника. Приложение представляет собой инструмент управления проектами и чертежами для приложения САПР. Наиболее важной причиной для его запуска в браузере является то, что приложение будет использоваться в качестве инструмента совместной работы для обмена проектными данными и чертежами.

Проблема с приложениями, размещенными в браузере, заключается в том, что они запускаются в браузере и, таким образом, ограничены применимыми правилами (как упоминалось в другом ответе, например, новые окна и ограничения доверия).

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

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

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

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

person Rob    schedule 13.04.2010

Вот забавный факт. В .NET 4.0 они добавили возможность для приложений XBAP, развернутых через ClickOnce, работать с полным доверием. Частичное доверие больше не требуется. Это должно дать вам несколько вариантов!

person RobinDotNet    schedule 14.04.2010

Я могу ошибаться, но IIRC XBAP использует ClickOnce в качестве основного метода развертывания. [Не могу найти, где я это прочитал, так что отнеситесь к этому с недоверием.]

Тем не менее, я добился большого успеха при запуске приложения WPF с помощью развертывания ClickOnce. Как было сказано ранее, вы развертываете все файлы на своем веб-сервере. Когда вы выпускаете обновления, вы просто копируете их на свой веб-сервер, когда клиенты запускают приложение, им предлагается обновиться до последней версии, вы можете потребовать обновления или позволить им отложить.

Он очень удобен для пользователя и не требует накладных расходов браузера для запуска вашего приложения.

person Nate    schedule 30.10.2009