2009-07-14 129 views
3

我刚开始学习Silverlight和我想了解一下Silverlight应用程序的典型架构和应用程序中的工作流(我使用Silverlight 2,但任何时间很快移动到3)。Silverlight应用程序架构

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

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

可能会开导我的体系结构和工作流程的理解,所有信息都将不胜感激。谢谢。

回答

2

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

Silverlight不可能直接连接到数据库 - 您需要通过Web服务器使用WCF服务来访问您的数据。如果您使用旧样式ASP.NET web services,则Silverlight会在引用这些服务时将它们包装为类似WCF的包装。

+0

Thx!这真的为我澄清了概念。所以 - 我通常有一个单独的WCF项目呢?这是否会为我保留MVVM模式的整个模型?我是否将ViewModel放置在客户端 - 在Silverlight项目中? 我看到WCF项目不能从Silverlight项目中引用,但我想我不需要这些项目之间的直接链接?所有的通信都是通过REST调用的? – stiank81 2009-07-14 21:00:44