首页 文章

RIA服务与WCF和共享代码

提问于
浏览
4

我们开始开发一个新的Silverlight LOB应用程序,其中DataAccess不是基于EF,而是基于我们自己的DAL代码(用于遗留和其他不相关的原因) .

我们目前正在讨论是使用RIA服务还是使用简单的WCF服务作为Silverlight的外观层 .

选项:

RIA Services and generated code: RIA Services将在Silverlight项目中自动创建Domain Model和DomainServices的代理类 .
这意味着我们的服务需要从DomainService类继承,并且需要很多工作和变通方法来允许我们的自定义模型正常序列化(因为我们不使用EF)

WCF And shared libraries: 我们将创建一个将在Silverlight和我们的服务器代码(as offered here)之间共享的DomainModel库,让我们更好地控制我们的域类的外观,以及如何在Silverlight上看到它们,并且我们的服务将保持干净为WCF并不要求我们使用任何基类,并为我们提供更多关于我们的服务暴露的权力 .

所以问题是 - 鉴于我们不使用EF,RIA服务的专业人员是什么,以及使用WCF和共享域的关键是什么?

1 回答

  • 3

    我对这两种技术都有合理的实际经验 .

    我观点的主要优点和缺点:

    RIA服务

    • Pro:即使不使用实体框架,开发也会更快 . 您可以创建ViewModel,也可以使用AutoMapper进行映射,并指定验证/数据输入/关系所需的属性 . 即使使用实体框架,这也是很好的做法 .

    • Con:开销的 lot .

    • Con:发送大量数据时性能下降(类似> 100个对象)

    WCF和共享库

    • 亲:性能相对优秀

    • Con:开发时间/可维护性不如RIA Services .

    • Con:没有DomainDataSource也不能使用数据绑定(即使使用MVVM) .

    Update 对于数据绑定部分:RIA Services允许Silverlight中的DomainDataSource控件 . 这使得能够轻松(异步)加载其状态(Busy等)的可绑定属性,这使得加载动画和一般改进用户体验变得容易 . 这当然可以在没有这种控制的情况下完成,但它有所帮助 .

    对于RIA服务性能,我似乎无法找到这个例子(这里有人说他们因为无法满足的响应时间而丢失了几个月的开发时间,将域服务重写为传统的WCF服务) .

    关于Silverlight(业务应用程序)的另一个注意事项:尝试将浏览器缩放到110%或90%,某些任意百分比 . 由于渲染的工作方式,字体/组件将变得模糊 . 我已经在多台机器/配置上确认了这一点,并且没有找到修复/解决方法 . 捕捉设备像素对此毫无帮助 .

    在您做出决定之前,考虑MVC3可能也很聪明,JQuery和HTML5可作为您的解决方案的一个选项 . HTML布局系统可能不如Silverlight,但有跨平台和移动支持等优点 .

相关问题