是否可以在 Powerbuilder 12 中创建 XBAP 应用程序?我了解到 powerbuilder 12 支持 WPF,但我不确定 WPF 浏览器 (XBAP) 应用程序。
任何帮助或链接表示赞赏。
谢谢!
是否可以在 Powerbuilder 12 中创建 XBAP 应用程序?我了解到 powerbuilder 12 支持 WPF,但我不确定 WPF 浏览器 (XBAP) 应用程序。
任何帮助或链接表示赞赏。
谢谢!
所以,由于它还没有发布,所以没有任何官方消息,但从我听到的公告来看,这不是本次发布的意图。请注意,以前的版本并没有打算支持 .NET 控件,但像Bruce Armstrong 这样的人还是找到了创造性的方法来实现它。
宣布的意图是研究 PB12 之后的新 Web 解决方案(PB12 已经相当庞大),但他们是否会选择 XBAP(这是他们 WPF 工作的逻辑扩展)或其他类似的东西还不是 100% 清楚HTML5。
祝你好运,
特里。
不可以,但您可以手动将 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() 究竟做了什么,但 PresentationHost(在客户端机器上执行 XBAP 的程序)可能能够启动应用程序,如果您删除此调用并调用 PBApplication .create() 和 .open()方法,这样:
删除:
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-应用程序.aspx
客户端计算机必须安装 PB12.NET 运行时包和 .NET 3.5 SP1。
Sybase 对支持 Silverlight 比支持 XBAP 更感兴趣,因此我们可能永远不会看到正式支持的 XBAP 部署功能。
祝你好运。