有用的Silverlight类库,参考.NET类库

时间:2010-09-20 15:37:23

标签: asp.net-mvc-2 silverlight-4.0 entity-framework-4

我想开发一组简单的控件来显示多种数据,并且在普通的silverlight应用程序中很有用,可以在ASP.NET MVC2应用程序中使用。现在我不知道如何链接这些技术,但这不是我现在关注的问题 - 我只是听说它是可能的,我会发现如何做到这一点......

现在我想知道如何在这样的SIlverlight类库中使用我的Model类。我已经在EF4.0中为ASP.NET MVC2应用程序生成了POCO类。一切都很好,但现在我想使用其中的一些类 - 创建silverlight的控件,一些ViewModel类,并使用从我的模型传递的数据填充我的控件,在ASP.MVC的应用程序中使用,通过ViewModel。

所有内容都应该在任何简单的Silverlight应用程序中进行测试,最后我希望能够在silverlight app和ASP.MVC 2网站中使用这个类库...

2 个答案:

答案 0 :(得分:1)

Silverlight它自己的运行时,通常你不能混合普通的.NET程序集和Silverlight程序集。

但是,一种选择是通过将相同的源文件链接到两个编译到不同运行时的项目来共享源代码。

另一种选择是使用WCF RIA Services,其中Visual Studio将在Silverlight项目中编码生成模型类,并且还有用于在层之间共享代码的选项。您还将获得一项服务来操作Silverlight中的对象。该服务可以在EF4.0之上构建,只需很少的代码。

最后,如果满足某些条件,Silverlight 4和.NET 4在某些情况下可以共享程序集。请参阅名为Silverlight 4 Assembly Sharing Problem的堆栈溢出问题。

答案 1 :(得分:0)

您需要做的是使用共享代码。

您可以通过向项目添加现有文件来完成此操作。在添加文件对话框中,按钮上有一个箭头,用于显示添加为链接选项。

这一点是你有两个项目,它们针对不同的CLR,但包含相同的代码和命名空间引用......你可以利用它们来获得适用于两个版本的CLR的代码。

它非常强大。我有一组可以针对两个版本的测试。

当然,您只能使用一组常用功能,但这无论如何都隐含在您的要求中。

您甚至可以通过服务传递对象,并将它们反序列化到另一个CLR中。有点令人惊讶你可以使用symetry

我目前正在使用这个用于项目并且正在实现你想要的东西,经过几个小时的游戏后真的非常无痛。

问候