Создать приложение браузера WPF (XBAP) в PowerBuilder 12? - PullRequest
4 голосов
/ 08 апреля 2010

Возможно ли создавать приложения XBAP в Powerbuilder 12? Я узнал, что powerbuilder 12 поддерживает WPF, но я не уверен насчет приложений WPF Browser (XBAP).

Любая помощь или ссылка приветствуется.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Итак, поскольку он еще не выпущен, ничего официального, но из того, что я слышал об объявлениях, в этом выпуске нет намерения. Имейте в виду, в предыдущих выпусках не было предназначено поддерживать элементы управления .NET, но такие люди, как Брюс Армстронг, нашли творческие способы сделать это в любом случае .

Объявленное намерение - взглянуть на новое веб-решение после PB12 (PB12 уже довольно массово), но не на 100% ясно, остановятся ли они на XBAP, что является логическим продолжением их работы в WPF, что-то еще, как HTML5.

Удачи,

Терри.

0 голосов
/ 01 апреля 2011

Нет, но вы можете вручную преобразовать цель приложения Windows WPF в XBAP.Я выполнил эти шаги, чтобы опубликовать классическое приложение PB как приложение XBAP, и оно работало, но приложение было очень простым;не знаю, сработает ли это для вас.

  1. PB12.NET создает файлы .csproj, которые Visual Studio не может прочитать, потому что они имеют формат UTF-16 и не имеют спецификации.Это можно исправить, открыв их в блокноте и сохранив.

  2. Затем необходимо преобразовать проект из приложения Windows WPF в приложение браузера WPF.Это можно сделать, следуя данному руководству: http://www.charlespetzold.com/blog/2006/11/120718.html

  3. PB создает файл PBApplicationEntryPoint.cs, содержащий функцию Main (точку входа в приложение).Main вызывает метод экземпляра PBSession.RunWPFApp, который вызывает метод экземпляра System.Windows.Application.Run (), но это запрещено в приложениях XBAP.Я не знаю, что именно выполняет RunWPFApp (), но PresentationHost (программа, которая выполняет XBAP на компьютере клиента) может запустить приложение, если вы удалите этот вызов и вызовете PBApplication .create () и .open ().методы, таким образом:

    Удалить:
    session.RunWPFApp();
    Добавить:
    c__a_your_application_name.GetCurrentApplication().create(); c__a_your_application_name.GetCurrentApplication().open("");

  4. По какой-то причине, что яне знаю, открытие любого окна после закрытия окна вызовет исключение, и программа будет остановлена.Решение, которое я нашел, состоит в том, чтобы использовать MDI (в PB12.NET MDI визуально равен TDI) и открывать окна как вкладки, используя OpenSheet (WithParm).

  5. Среда выполнения PB12.NET полагаетсяв некоторых собственных библиотеках (то есть) в неуправляемом коде, поэтому приложению необходимо предоставить полное доверие для использования этих библиотек.В этом руководстве показано, как развернуть XBAP с полным доверием (работал для меня): http://blogs.microsoft.co.il/blogs/maxim/archive/2008/03/05/wpf-xbap-as-full-trust-application.aspx

  6. На клиентском компьютере должен быть установлен исполняемый пакет PB12.NET и .NET 3.5 SP1.

Sybase больше заинтересован в поддержке Silverlight, чем XBAP, поэтому мы, вероятно, никогда не увидим официально поддерживаемую функцию развертывания XBAP.

Удачи.

...