我们开始开发一个新的Silverlight LOB应用程序,其中DataAccess不是基于EF,而是基于我们自己的DAL代码(出于遗留和其他不相关的原因)。
我们目前正在讨论是使用RIA服务还是使用简单的WCF服务作为Silverlight的外观层。
选项:
RIA服务和生成的代码:RIA Services将在Silverlight项目中自动创建Domain Model和DomainServices的代理类。
这意味着我们的服务需要从DomainService类继承,并且需要很多工作和变通方法来允许我们的自定义模型正常序列化(因为我们不使用EF)
WCF和共享库:我们将创建一个将在Silverlight和我们的服务器代码(as offered here)之间共享的DomainModel库,让我们更好地控制我们的域类如何看看,以及如何在Silverlight上看到它们,我们的服务将保持清洁,因为WCF不要求我们使用任何基类,并且让我们对我们的服务暴露方式给予更多的权力。
所以问题是 - 鉴于我们不使用EF,RIA服务的专业人员是什么,以及使用WCF和共享域的关键是什么?
答案 0 :(得分:3)
我对这两种技术都有合理的实际经验。
我认为的主要优点和缺点:
RIA服务
WCF和共享库
<强>更新强> 对于数据绑定部分:RIA Services允许Silverlight中的DomainDataSource控件。这使得能够轻松(异步)加载其状态(Busy等)的可绑定属性,这使得加载动画和一般改进用户体验变得容易。这当然可以在没有这种控制的情况下完成,但它有所帮助。
对于RIA服务性能,我似乎无法找到这个例子(这里有人说他们失去了几个月的开发时间,因为无法满足响应时间而将域服务重写为传统的WCF服务。)
关于Silverlight(业务应用程序)的另一个注意事项:尝试将浏览器缩放到110%或90%,某些任意百分比。由于渲染的工作方式,字体/组件将变得模糊。我已经在多台机器/配置上确认了这一点,并且没有找到修复/解决方法。捕捉到设备像素根本没有帮助。
在您做出决定之前,考虑MVC3可能也很聪明,JQuery和HTML5可作为您解决方案的选项。 HTML布局系统可能不如Silverlight,但有跨平台和移动支持等优势。