【问题标题】:What are the limitations of Loose XAML?松散 XAML 的限制是什么?
【发布时间】:2010-09-14 15:25:19
【问题描述】:

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

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

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

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

还有哪些额外限制?

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

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

【问题讨论】:

    标签: .net wpf data-binding xaml seo


    【解决方案1】:

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

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

    【讨论】:

    • 我不知道为什么这甚至是一个问题。松散的 xaml 应该与 HTML 进行比较。您也无法从客户端 javascript 打开数据库连接。您必须在服务器上完成这项工作,然后将已经包含数据库信息的页面发送到客户端。你为什么不对松散的 xaml 做同样的事情。服务器用数据构造 xaml 并将其发送到客户端
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        • 1970-01-01
        • 2013-03-17
        相关资源
        最近更新 更多