我一直在尝试使用WPF并在Web浏览器中呈现严格的XAML标记,也称为Loose XAML(解释为here和here)。
这对我来说非常有用,可以显示静态内容。但是,它似乎也可以绑定到XML数据提供程序。
松散的XAML文件不是使用应用程序编译的,这会产生以下限制:
还有哪些其他限制?
编辑:我试图将XML数据提供程序绑定到Web服务(使用this简单示例)但尚未成功。这些发现引导我进一步研究,我发现这不受支持:“XMLDataProvider被设计为只读(换句话说,它不提供提交更改的能力),并且它无法处理可能来自其他来源的XML数据(例如数据库记录,Web服务消息等)。“ -Matthew MacDonald, Pro WPF
答案 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脚本,我一直想将其变成支持的产品。如果您对此感兴趣,请务必告诉我。