添加项目参考商业& Silverlight的数据访问项目

时间:2011-11-22 04:35:08

标签: asp.net silverlight web-applications

我是Silverlight的新手。我们正在将项目迁移到Silverlight。我们只是在改变表示层。 (ASP.NET WebForms站点到Silverlight Web应用程序)。所以我们的其他类库有业务和数据访问层将保持不变。

首先,我在我的解决方案中添加了一个Silverlight Web应用程序。它创建了2个项目:PM_ToolPm_Tool.Web。现在我需要向此添加业务和数据访问层的项目引用,因为我需要在MainPage.xaml.cs中访问它们。

但我无法添加对Pm_Tool的引用 - 我收到以下消息:

  

您只能在解决方案中向项目引用添加其他Silverlight项目。

然后我添加了对Pm_Tool.Web的项目引用,但我无法访问MainPage中的业务层对象。

任何人都可以帮助我进一步推进吗?

2 个答案:

答案 0 :(得分:0)

您只能向其他silverlight程序集添加referances。您不能将“referances”添加到“普通”窗口程序集--asp.net或WPF或winforms(等)中,但是,您可以向其他项目添加silveright程序集的附件。

您将需要制作要添加的程序集的Silverlight版本。主要原因是安全模型。

现在,您可能遇到的问题是,因为Silverlight实际上是WPF的一个子集,所以您想要使用的许多类都不可用。但是,有很多方法可以解决这个问题 - 使用webservices等。

答案 1 :(得分:0)

Silverlight应用程序只能引用其他Silverlight项目。这只是因为Silverlight使用了较轻版本的.NET框架;如果你可以引用'完整的'.NET项目,那么它将需要支持整个框架。微软已做出设计决定来限制功能 - 可能是为了减少安装和安装。 Silverlight的运行时足迹。

话虽如此,很可能大多数代码仍会在Silverlight中运行。您应该创建“Silverlight类库”项目并将您的类包含到这些项目中。您很快就会看到哪些(如果有)类正在使用Silverlight不支持的框架部分。从那里开始实施变通办法。

当然所有您的数据访问和服务器端代码必须保留在您的“Web”项目中。 Silverlight实现了正确的客户端 - 服务器模型,并且不允许您以与ASP.NET WebForms相同的方式“跨越边界”。您的Silverlight应用程序仅在浏览器中运行 - 任何需要在服务器上发生的事情都必须在“Web”项目中进行。您的Silverlight应用程序通过WCF(或WebClient等)发布并从“Web”项目获取信息。

除非你有一个设计精良的ASP.NET解决方案,否则我希望你的转换不会像“只是改变我们的表示层”那么简单。