是否可以在Powerbuilder 12中创建XBAP应用程序?我了解到powerbuilder 12支持WPF,但我不确定WPF浏览器(XBAP)应用程序。
感谢任何帮助或链接。
谢谢!
答案 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应用程序,它工作,但应用程序非常简单;不知道它是否适合你。
PB12.NET会生成Visual Studio无法读取的.csproj文件,因为它们是UTF-16且缺少BOM。您可以通过在记事本中打开并保存来解决此问题。
然后,您需要将项目从WPF Window App转换为WPF Browser App。这可以在本教程之后完成:http://www.charlespetzold.com/blog/2006/11/120718.html
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("");
由于某些我不知道的原因,关闭窗口后打开任何窗口都会引发异常,程序将被终止。我发现的解决方案是使用MDI(在PB12.NET中MDI在视觉上等于TDI)并使用OpenSheet(WithParm)打开窗口作为选项卡。
PB12.NET运行时依赖于一些本机库(即)非托管代码,因此必须完全信任应用程序才能使用这些库。本教程介绍如何部署完全信任的XBAP(对我有用):http://blogs.microsoft.co.il/blogs/maxim/archive/2008/03/05/wpf-xbap-as-full-trust-application.aspx
客户端计算机必须安装PB12.NET Runtime Package和.NET 3.5 SP1。
Sybase对支持Silverlight比XBAP更感兴趣,因此我们可能永远不会看到正式支持的XBAP部署功能。
祝你好运。