松散XAML有哪些局限性?

时间:2008-10-01 20:20:07

标签: .net wpf data-binding xaml seo

我一直在尝试使用WPF并在Web浏览器中呈现严格的XAML标记,也称为Loose XAML(解释为herehere)。

这对我来说非常有用,可以显示静态内容。但是,它似乎也可以绑定到XML数据提供程序。

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

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

还有哪些其他限制?

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

编辑:顺便说一句,我找到了这个list of features of the Sandboxed environment,当你使用XBAP和松散的XAML时你的应用程序正在运行。它有点陈旧,但可能大多数限制仍然适用。

答案 2 :(得分:1)

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

请参阅我的blog,了解此方向是否适合您。

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

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

我只将XAML / WPF用于桌面应用。希望有其他人跳进去回答浏览器特定的问题。

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