【问题标题】:Silverlight application architectureSilverlight 应用程序架构
【发布时间】:2009-07-15 04:51:20
【问题描述】:

我刚开始学习 Silverlight,我想知道 Silverlight 应用程序的典型架构和应用程序中的工作流程(我使用的是 Silverlight 2,但很快就会迁移到 3)。

在我的测试应用程序中,我目前只有两个默认项目 - MyProject 和 MyProject.Web。我熟悉 MVVM 模式,并使用它组织了我的代码。但是,我无法理解客户端上发生了什么以及服务器上发生了什么——我该如何定义呢?我猜 ViewModel 层在客户端 - 与服务器上的 Model 层通信。但他们将如何沟通?使用 WCF?我的应用程序的服务器部分是否应该在单独的项目中定义?客户部分应该对此有参考吗?

当我想将我的模型设置为使用 LINQ to SQL 与 SQL Server 通信时遇到了问题。 Silverlight 项目中似乎不允许使用“LINQ to SQL”项目,如果我将其添加到单独的类库项目中,我将无法从我的 Silverlight 项目中引用该项目; “您只能将项目引用添加到解决方案中的其他 Silverlight 项目”。

非常感谢任何可能启发我理解架构和工作流程的信息。谢谢。

【问题讨论】:

    标签: linq silverlight linq-to-sql architecture


    【解决方案1】:

    Windows Communication Foundation (WCF)Silverlight 与服务器通信的方式。您还可以查看当前技术预览中的RIA framework,它在Silverlight 客户端和WCF Web 服务之间添加了一个用于数据验证的层,允许共享验证代码(以及其他内容)。

    无法从 Silverlight 直接连接到数据库 - 相反,您需要通过 Web 服务器使用 WCF 服务来访问您的数据。如果您使用旧样式 ASP.NET web servicesSilverlight 在引用这些服务时会为您将这些包装到类似 WCF 的包装器中。

    【讨论】:

    • 谢谢!这真的为我理清了概念。那么 - 我通常有一个单独的 WCF 项目呢?这会为我保留 MVVM 模式的整个模型方面吗?我是否将 ViewModel 放在客户端 - 在 Silverlight 项目中?我看到无法从 Silverlight 项目中引用 WCF 项目,但我想我不需要这些之间的直接链接?所有通信都通过 REST 调用?
    • 您在网站项目中托管 WCF 类,然后将 Silverlight 项目中的服务引用添加到网站服务。 Silverlight 将生成客户端与服务通信所需的所有类。除非您想对通信进行更细粒度的控制,否则您无需考虑如何发送。
    • 服务参考 - 我明白了。好吧,我现在知道的足够深入了。谢谢你让我明白了!
    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多