asp.net - 在 WPF、Silverlight 和 ASP.NET 之间共享公共(public) DAL

标签 asp.net wpf silverlight data-access-layer sharing

在 WPF、Silverlight 和 ASP.NET 之间共享相同数据访问层的最佳方法/技术是什么?

我正在使用 ADO.NET Entity Framework ,并且正在考虑使用存储库模式创建 DAL。然后使用 RIA 服务作为虚拟中间人来连接 Silverlight 和 ASP.NET。这是一个可靠的计划还是还有其他更好的解决方案?

最佳答案

我喜欢使用的解决方案之一如下: - 有一个仅存储实体(例如:玩家、游戏、实体)的项目,根本不引用数据库。 - 有一个实现存储库模式的项目(存储库,存储库等......) - 使用 ADO.NET Entity Framework 代码优先方法来映射数据库(它创建项目中包含的实体的动态子对象,请参阅 ScottGu 的博客以获取有关如何使用它的说明)

可以使用 Ria 服务或经典 WCF 服务将 Silverlight 连接到您的模式。通常,我会尽可能尝试使用 WCF,因为 Ria 服务并不真正符合 MVVM 开发。

如果您想要使用 WCF 并与 Silverlight 共享您的 DAL 实体,您可以创建一个 MyDal.Silverlight Silverlight 类库项目,并添加符号链接(symbolic link)而不是您想要与 Silverlight 共享的每个实体的副本。然后,当您使用 Visual Studio 添加服务引用时,它会足够智能,不会为您的 Silverlight 项目创建玩家、游戏和用户的副本。

如果您想使用 Ria 服务,它无论如何都会创建您实体的副本。

希望有帮助

约翰

关于asp.net - 在 WPF、Silverlight 和 ASP.NET 之间共享公共(public) DAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3861457/

相关文章:

asp.net - 无法加载文件或程序集 'System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

c# - 附加属性不触发 IMultiValueConverter

javascript - 在 Silverlight 中调用 javascript

.net - Silverlight 的替代品

asp.net - 由于 URL 意外结尾,因此无法识别请求格式

c# - 将 Kestrel 暴露于外界的风险

c# - 在C#中更改图像路径的文件名

wpf - 如何阻止路由事件在 XAML 中的特定位置触发?

c# - 展开扩展器后如何滚动以便控件可见

.net - 什么可能导致进行 HttpWebRequest 调用的巨大开销?