3

我一直在试验 WPF 并在 Web 浏览器中呈现严格的 XAML 标记,也称为松散 XAML(在此处此处进行解释)。

我觉得它对显示静态内容最有用。但是,似乎也可以绑定到 XML 数据提供者。

松散的 XAML 文件不使用应用程序编译,这会产生以下限制:

  • 他们不允许外部程序集
  • 不使用类、代码隐藏(或任何 C#)
  • 没有双向数据绑定

还有哪些额外限制?

  • 我还没有找到一种将数据绑定到数据库提供程序(SQL Server)的方法
  • 客户端计算机上是否需要 .NET Framework 才能在浏览器中呈现 XAML?
  • 搜索引擎是否能够询问 Loose XAML 以适当地对页面进行排名?

编辑:我试图将 XML 数据提供程序绑定到 Web 服务(使用这个简单的示例)并且没有成功。这些发现使我进一步研究,发现不支持:“XMLDataProvider 被设计为只读的(换句话说,它不提供提交更改的能力),并且它不能处理可能来自其他来源(如数据库记录、Web 服务消息等)的 XML 数据。” -Matthew MacDonald,专业 WPF

4

3 回答 3

3

在 IE 中查看松散的 XAML 页面至少需要 framework 3.0。您甚至可以通过在用户代理字符串中查找“.NET CLR 3.0”来在您的站点上检查它。

数据库连接(如果可能的话)不会直接在松散的 XAML 中完成,因为需要过程代码来打开连接。

于 2008-10-01T21:11:50.897 回答
1

AFAIK 不可能在 XAML 中定义连接字符串。所以你不能访问你的 SQL 数据库。

注意:可以使用 XmlDataProvider 将数据绑定到 Web 服务。所以这可能是您可以通过...发送数据的一种方式

编辑:顺便说一句,我找到了沙盒环境的功能列表,当使用 XBAP 和松散的 XAML 时,您的应用程序正在其中运行。它有点过时了,但可能大多数限制仍然适用。

于 2008-10-02T09:29:57.003 回答
1

我在托管动态语言运行时 (DLR) 和允许将脚本嵌入 XAML 方面做了大量工作。我现在觉得 Loose XAML 不是二等公民,因为我可以处理事件、编写值转换器、运行 Python/Ruby/JScript 来执行诸如连接到 SQL 服务器之类的事情。

查看我的博客,看看这个方向是否适合你。

我使用附加属性动态加载程序集——一旦加载,您可以以通常的方式引用程序集中的类。

所以,也回答这个问题,Loose XAML 有很多开箱即用的限制(比如不能将事件路由到事件处理程序),但是这些可以通过一些工作来克服。

我只将 XAML/WPF 用于桌面应用程序。希望其他人能够回答您浏览器特定的问题。

我有一个库,我在商业工作中使用 DLR 托管和在 XAML 中嵌入 DLR 脚本,我一直想将它变成受支持的产品。如果您对此感兴趣,请务必告诉我。

于 2008-12-17T23:18:58.100 回答