【问题标题】:Asp.net + Silverlight + WCF and n-tier architectureAsp.net + Silverlight + WCF 和 n 层架构
【发布时间】:2011-05-14 22:06:43
【问题描述】:

编码人员,我正在设计/实施(是的,同时进行)我自己的 CMS 原型。我使用 Asp.net、WCF 和 silverlight。到目前为止,我的项目有以下模型:

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

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

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

解决方案:

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

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

这是一个场景:假设我的 WCF 中有一个 Post 类,它是我的 BL 的实现。在创建我的服务引用的客户端实例之后,我将能够从我的 PL 添加一个新帖子,使用如下行:client.AddPostAsync(post parameters)。但是,如果想通过调用 WCF 方法在我的 PL 中检索 Post 对象,那么我是否必须已经在我的 PL 中有一个 Post 类的实现,它与我的 WCF 中的 Post 类的副本完全相同!

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

【问题讨论】:

  • 当您向表示层添加服务引用时,它会为您生成所有数据协定。您不必再次定义它们。如果我遗漏了什么,您能否给出您的 WCF 方法的完整方法原型?

标签: asp.net silverlight wcf architecture


【解决方案1】:

确实,您不必在 Silverlight 中从 WCF 服务复制类(具有 DataContract 属性),它们将在您创建 WCF 服务的 ServiceReference 时自动创建。

它们将非常简单,基本上将数据存储在字段类中,因此我可以理解,如果您需要它们背后的一些逻辑,您可能希望在 Silverlight 中创建一些功能副本。我在我的项目中使用相同的模型,也有这个问题。

我认为你应该在知道这一点的情况下提前规划你的架构,让那些 WCF 继承的类越来越像 DataTransferObject 模式类,以避免大量的类重复。

【讨论】:

  • 我注意到的一件事是,我只能在 client_GetPostsCompleted(..) 方法中设置事件处理 ex) 后调用类。这是正确的吗?
  • 我不明白,你能提供一个更大的代码 sn-p 吗?调用类是什么意思,哪些类。
猜你喜欢
  • 2011-01-10
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多