在PowerBuilder 12中创建WPF浏览器(XBAP)应用程序?

时间:2010-04-08 05:14:10

标签: powerbuilder

是否可以在Powerbuilder 12中创建XBAP应用程序?我了解到powerbuilder 12支持WPF,但我不确定WPF浏览器(XBAP)应用程序。

感谢任何帮助或链接。

谢谢!

2 个答案:

答案 0 :(得分:3)

所以,既然它尚未发布,没有任何官方消息,但从我听说过的消息来看,这不是本次发布的意图。请注意,在以前的版本中不支持.NET控件,但像Bruce Armstrong found creative ways to do it anyway这样的人。

宣布的目的是在PB12之后看一个新的网络解决方案(PB12已经相当庞大),但如果他们能够接受XBAP,这是他们的WPF工作的逻辑扩展,或者它不是100%明确的,或者像HTML5这样的东西。

祝你好运,

特里。

答案 1 :(得分:0)

不,但您可以手动将WPF Windows应用程序目标转换为XBAP。我按照这些步骤发布了一个经典的PB应用程序作为XBAP应用程序,它工作,但应用程序非常简单;不知道它是否适合你。

  1. PB12.NET会生成Visual Studio无法读取的.csproj文件,因为它们是UTF-16且缺少BOM。您可以通过在记事本中打开并保存来解决此问题。

  2. 然后,您需要将项目从WPF Window App转换为WPF Browser App。这可以在本教程之后完成:http://www.charlespetzold.com/blog/2006/11/120718.html

  3. PB生成包含Main函数(应用程序入口点)的PBApplicationEntryPoint.cs文件。 Main调用实例方法PBSession.RunWPFApp,它调用实例方法System.Windows.Application.Run(),但这在XBAP应用程序中是禁止的。我不知道RunWPFApp()究竟做了什么,但如果删除此调用并调用PBApplication .create()和.open(),则PresentationHost(在客户端机器中执行XBAP的程序)可能能够启动应用程序。方法,这样:

    删除:
    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 Runtime Package和.NET 3.5 SP1。

  7. Sybase对支持Silverlight比XBAP更感兴趣,因此我们可能永远不会看到正式支持的XBAP部署功能。

    祝你好运。