【问题标题】:Best practice to share DAL between ASP.NET and Silverlight 2在 ASP.NET 和 Silverlight 2 之间共享 DAL 的最佳实践
【发布时间】:2009-02-02 14:58:52
【问题描述】:

我有一个 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 客户端、任何其他使用者等开始使用该服务。

【问题讨论】:

    标签: asp.net wcf silverlight asynchronous


    【解决方案1】:

    您通常希望避免将数据访问代码放入 Silverlight 应用程序,因为用户可以轻松地对您的代码进行逆向工程。事实上,出于这个原因,Silverlight 运行时不包含任何数据库通信框架类。

    推荐的最佳做法是使用 WCF 服务包装您的数据访问层,并从 Silverlight 调用 WCF 服务。有一篇关于这样做的好文章here

    【讨论】:

      【解决方案2】:

      如果您在多个地方都需要您的 DAL,我建议您将它包装在 WCF 服务层中。

      这将取决于您的 DAL,但请尽量将现有代码包装在服务层中,而不是将所有内容作为服务重写。这将为您提供最大的测试灵活性和未来的可扩展性。

      【讨论】:

        【解决方案3】:

        当然,如果您从头开始创建 DAL,WCF 服务是一个不错的选择。但我认为现在.NET RIA 服务在这种情况下会是更好的选择。 .Net RIA 服务只是 WCF 服务的包装器。但允许更好的功能。

        【讨论】:

          【解决方案4】:

          RIA 服务是当今的最佳选择。另一种非 WCF 方式(WCF 数据访问在 silverlight 中的大规模 LOB 应用程序中很难维护)可能是在服务器和客户端之间交换数据的 RESTful 方式。

          【讨论】:

            【解决方案5】:

            我们是否可以拥有一个 WCF 托管层并通过反射和 T4 代码生成访问已经实现的 DAL 组件。

            使用现有 DAL 公开为 wcf 服务的最佳做法是什么?

            【讨论】:

              猜你喜欢
              • 2011-04-21
              • 2014-01-21
              • 2016-01-19
              • 2015-09-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-12-15
              相关资源
              最近更新 更多