依靠WCF为Silverlight提供数据库支持真的让我感到困扰。
我的猜测是Silverlight最终是客户端的,微软希望为数据提供某种主要的访问/入口点,即服务器端代码。
答案 0 :(得分:6)
这将是一个很大的安全问题。想象一下从javascript调用你的数据库。即使没有这个,你需要小心XSS。
另一个原因是他们只是强迫你将你的BLL分开,这样你的应用就会消除常见的模式。
答案 1 :(得分:4)
Silverlight遵循网络范例,似乎试图弥合ASP.NET与传统桌面技术之间的差距。
最近,微软已经大踏步地为浏览器耗尽的Silverlight应用程序提供更多控制(PInvoke支持非托管代码,Office集成,访问COM,支持外围设备......)。有了这一切,似乎几乎没有阻止他们包括数据库支持。它可能在浏览器外的情况下有意义,并且不会像运行您刚刚下载的任何其他应用程序那样带来安全风险。
然而,建立在网络范例之上,您的数据通常来自网络。所以这可能是他们不愿意加入它的原因......
我想,最后,这是值得商榷的。
答案 2 :(得分:1)
Silverlight可以使用剥离版本的.NET Framework,它仅限于核心类库 - 有限制 - ,多媒体管理和WCF /网络客户端库,而不是更多。
那是因为Silverlight是一个浏览器插件,它的运行时必须尽可能小,因为网络受众不想下载30MB插件才能查看网页 - 毕竟,这个会违背网络范式 - 。
答案 3 :(得分:0)
如果你想使用带有silverlight的数据库,那么请查看Jeffrey Richters Sterling DB的silverlight和WP7: http://wintellect.com/powerthreading.aspx
如果您正在谈论Sql Server,那么他们确实制作了支持它的Silverlight版本。它叫做WPF:)