Coders,我正在设计/实现(是的,同时)我自己的CMS的原型。我使用Asp.net,WCF和silverlight。到目前为止,我的项目有以下模型:
表现层[silverlight& Asp.net/html]> WCF>业务逻辑>数据库
我的模型的目标是在将来轻松扩展应用程序。可以从任何可以使用我的WCF服务的应用程序访问该应用程序。
不幸的是,我在实施模型时遇到了一些困难。在我看来,如果我的解决方案中有三个项目:
解决方案:
然后我将不得不在我的表示层和我的WCF层中复制许多类。
这是一个场景:让我说我的WCF中有一个Post Class,这是我BL的一个实现。在创建我的服务引用的客户端实例之后,我可以使用诸如:client.AddPostAsync(post参数)之类的行从我的PL添加新帖子。但是,如果想通过调用WCF方法在我的PL中检索Post对象,那么我必须在我的PL中已经有一个Post类的实现,它与我的WCF中的Post类完全相同。
因此,从长远来看,我将在我的WCF层和我的PL中结束许多重复的类。我觉得有些东西我不明白,或者我的模型中有些东西搞乱了?请帮忙!
答案 0 :(得分:0)
实际上,您不必在Silverlight中从WCF服务复制类(使用DataContract属性),只需在为WCF服务创建ServiceReference时自动创建它们。
Howether它们将是非常简单的基本存储数据字段类,所以我可以理解,如果你需要一些逻辑,你可能想在Silverlight中创建一些功能重复项。我在我的项目中使用相同的模型也有这个问题。
我认为你应该提前规划你的架构,使那些WCF继承的类越来越像DataTransferObject模式类,以避免大规模的类复制。