我有一个ASP.NET 3.5电子商务网站,它有一个管理部分.我想换掉基于ASP.NET的管理部分并在Silverlight 2中重写它.Silverlight需要异步调用,所以我不能只从新的SL2应用程序调用我现有的DAL.
做这样的事情的最佳做法是什么?我应该创建一个WCF服务并通过它调用我现有的DAL,还是应该将所有内容移植到WCF,或者我应该只将异步调用添加到现有的非WCF DAL中.寻找关于做这样事情的最佳方法的建议.
编辑:所以我正在阅读的是,最好的方法是利用我现有的DAL并创建一个简单的WCF服务,引用该DAL并包装调用.WCF服务只是作为中间人来进入我的DAL,而是将其暴露给Silverlight.如果你从头开始怎么办?您是否应该将DAL构建为WCF服务,并从WPF客户端,ASP.NET客户端,Silverlight客户端,任何其他消费者等开始使用该服务.
您通常希望避免将数据访问代码放入Silverlight应用程序中,因为用户可以轻松地对代码进行反向工程.实际上,出于这个原因,Silverlight运行时不包含任何数据库通信框架类.
建议的最佳做法是使用WCF服务包装数据访问层,并从Silverlight调用WCF服务.有一个关于这样的好文章在这里.
如果您需要在多个地方使用DAL,我建议您将其包装在WCF服务层中.
它将取决于您的DAL,但尽可能将现有代码包装在服务层中,而不是将所有内容重新编写为服务.这将为您提供最大的测试灵活性和未来的可扩展性.