0

最后尝试得到这个答案。

我有一个简单的 ASP.NET 应用程序,它使用 Hibernate 进行数据访问。GUI 可以调用客户对象上的方法,例如“CalculateTotalSumOfOrders()”。延迟加载(即使它不是最佳的)对我有用,当在域对象中引用 Orders 和 OrderLines 集合时,它们将自动从数据库中获取。

现在让我们假设我正在将同一个应用程序重写为 Silverlight,因为它看起来比 ASP.NET 更好。我不再能够进行延迟加载或数据访问,因为 Silverlight 客户端在浏览器中运行。如何在不考虑使用何种服务将数据导入 Silverlight 客户端的情况下解决此问题?

4

4 回答 4

1

One option that would support Silverlight and Windows clients would be the new ADO.NET Data Services in .NET 3.5 SP1. These are a set of services that expose your database schema through a WCF interface. You can then retrieve the data from Silverlight or a Windows Client using a WCF client.

As @McWafflestix has said, you won't be able to do lazy loading any more, but in my opinion that's a good thing because retrieving data is now a much more "expensive" operation.

于 2008-11-22T04:33:34.357 回答
1

支持所有这些平台的最佳选择是使用 Web 服务。您可以选择许多不同的风格,.NET 2.0 Web 服务 (ASMX)、WCF、REST,如果您使用 Silverlight,您可能需要考虑使用此处演示的 WCF + LINQ to SQL 。该组合还可用于 ASP.NET(如果在 .NET 3.5 上运行)和 Windows 桌面应用程序(同样是 .NET 3.5)。

此外,您可能会对名为 InterLinq 的开源项目感兴趣,基本上它允许您在客户端构建 LINQ to SQL 查询,然后通过 WCF 将它们传输到执行查询并返回结果的服务器。可以在这里找到。我过去曾尝试过它,并且效果很好。

于 2008-11-21T13:07:16.393 回答
0

您正在尝试使用与数据库交互并进行延迟加载的服务器端应用程序,并将其转换为客户端应用程序而无需大量工作?对不起,它只是行不通。您需要的是对您的应用程序进行重大重新架构。

对不起...

于 2008-11-20T22:08:02.433 回答
0

*

“没关系,因为我来得还早。你将如何重新架构它以最小的开销支持 ASP.NET、silverlight 和 Windows 客户端?”

*

我知道我会在过期后回答这个问题,无论如何。我建议你使用 MVP 设计模式;这将帮助您构建多个“视图”以使用您的模型。为了确保您支持 Windows 客户端,您必须使用服务层(阅读 WCF)公开您的业务层。

于 2011-01-12T12:57:52.380 回答