【问题标题】:Silverlight, WCF, MVVM and existing n-tier assembliesSilverlight、WCF、MVVM 和现有的 n 层程序集
【发布时间】:2010-12-03 15:38:37
【问题描述】:

我正在尝试了解 Silverlight 中的 MVVM - 主要是在我如何将其融入现有架构的背景下 - 或者更确切地说,我如何将现有架构合并到其中。

我目前拥有的架构基本上是传统的 n 层,其顶部有一个服务层。我在 WCF 中有一个服务层、一个业务逻辑程序集和一个包含业务实体(实体框架)的程序集。

WCF 中的服务层非常简单,它只是暴露了业务逻辑层,需要进行一些更改以使其与 Silverlight 更兼容。业务实体组件被服务层和逻辑层引用,因此它们都使用相同的实体,并且任何使用服务的东西也都知道这些实体。

一切都很美好。

随之而来的是 Silverlight 和 MVVM。 View 部分很简单,这就是所有 ui 的东西。 ViewModel 和 Model 是我感兴趣的地方。在我看来,Model 是我的业务实体组件,ViewModel 是我的业务逻辑组件。

如果 Silverlight 使用我的 WCF 服务,那么这个和耦合的业务逻辑层肯定是我的 ViewModel。现在我有两个问题; 1/ ViewModel 对象需要存在于我的 Silverlight 项目中。 2/ WCF 服务公开的类型(业务实体)与 Silverlight 不兼容,因为程序集不适用于 Silverlight。当我尝试将程序集添加为参考时,提示此效果的异常。

那么...我如何使用我的业务实体作为我的模型?另外 - 如何在我的 ViewModel 中使用其他 .Net 类型,例如 System.ServiceProcess.ServiceController?

【问题讨论】:

    标签: wcf mvvm silverlight-4.0 entity-framework-4


    【解决方案1】:

    我认为您应该查看 WCF RIA 服务。

    https://www.silverlight.net/getstarted/riaservices/

    【讨论】:

    • RIA 是否适合其他应用程序使用?当然,它可以解决这个问题。然而,其他应用程序将需要业务逻辑层。例如,WCF 服务必须对客户端可用。
    • 另外 - 这如何帮助我公开 System.ServiceProcess.ServiceController 等 .Net 对象?我真的需要再次建模吗?
    • RIA 是 WCF 服务,据我了解,其他应用程序可以访问。
    • thepaulpage - 你是对的。我的问题在于暴露的类型。
    猜你喜欢
    • 2011-05-14
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2011-02-01
    • 2012-02-12
    相关资源
    最近更新 更多