Asp.net + Silverlight + WCF和n层架构

时间:2010-11-24 06:23:45

标签: asp.net silverlight wcf architecture

Coders,我正在设计/实现(是的,同时)我自己的CMS的原型。我使用Asp.net,WCF和silverlight。到目前为止,我的项目有以下模型:

表现层[silverlight& Asp.net/html]> WCF>业务逻辑>数据库

我的模型的目标是在将来轻松扩展应用程序。可以从任何可以使用我的WCF服务的应用程序访问该应用程序。

不幸的是,我在实施模型时遇到了一些困难。在我看来,如果我的解决方案中有三个项目:

解决方案:

  • -Asp.net [表示层]
  • -Silverlight [表示层]
  • -WCF [WCF和业务逻辑]

然后我将不得不在我的表示层和我的WCF层中复制许多类。

这是一个场景:让我说我的WCF中有一个Post Class,这是我BL的一个实现。在创建我的服务引用的客户端实例之后,我可以使用诸如:client.AddPostAsync(post参数)之类的行从我的PL添加新帖子。但是,如果想通过调用WCF方法在我的PL中检索Post对象,那么我必须在我的PL中已经有一个Post类的实现,它与我的WCF中的Post类完全相同。

因此,从长远来看,我将在我的WCF层和我的PL中结束许多重复的类。我觉得有些东西我不明白,或者我的模型中有些东西搞乱了?请帮忙!

1 个答案:

答案 0 :(得分:0)

实际上,您不必在Silverlight中从WCF服务复制类(使用DataContract属性),只需在为WCF服务创建ServiceReference时自动创建它们。

Howether它们将是非常简单的基本存储数据字段类,所以我可以理解,如果你需要一些逻辑,你可能想在Silverlight中创建一些功能重复项。我在我的项目中使用相同的模型也有这个问题。

我认为你应该提前规划你的架构,使那些WCF继承的类越来越像DataTransferObject模式类,以避免大规模的类复制。