.NET和Silverlight之间共享代码的可行性?

ang*_*son 5 .net c# silverlight sharing

刚刚经历了一个小型的实验会议,试图看看将我们的.NET类库或至少部分内容库带入Silverlight所需的工作量,以便我们可以在两个世界之间重用业务逻辑,我是想知道其他人是否有这种事情的经验.

我注意到的事情,在我的头顶:

  • 丢失了很多属性(例如可浏览(错误))
  • 很多接口丢失或存在,但是空(ICloneable被隐藏,缺少ITypedList)
  • 反思差异(一切都可以公开)
  • 一些基类差异(没有组件?)

所以我想知道,我甚至认为这是可行的吗?

我得到了初始代码,但我不得不注释掉很多基本功能,主要是处理列表,因为它们基于ITypedList和一些基类.显然我需要在Silverlight中更改为ObservableCollection,因此需要更改整个基本代码才能应对.

我创建的实际业务测试类与我为.NET制作的实际业务测试类相同,只有一些微小的更改,这些更改在.NET中也很容易使用,就像我在查看之前所做的那样. Silverlight的.换句话说,如果我可以使基类兼容,那么共享业务逻辑看起来是可行的.

就这样我很清楚,我所说的是我基本上有两个项目文件,一个用于.NET,一个用于Silverlight,但实际的C#源代码将是相同的,在两者之间共享.

那么有没有人有这方面的经验?任何提示或指南?

它值得吗?它肯定值得更多关注.

Noo*_*ilk 4

这绝对是可行的。

这是在一个项目上完成的;Silverlight 项目包括 C# 项目,并且有一些#IF语句处理某些事情(例如 log4net 声明),而其他时候只是重新实现一些事情。但总的来说,这是一个巨大的胜利,你绝对应该尝试一下(当然,我们已经成功了)。

- 编辑:

但有一点是,我们的 OR/M (LLBLGen) 没有内置支持通过 Silverlight 发送的“简单”对象;但有人编写了一个插件来处理它,这很有帮助。因此,可能值得考虑您正在使用哪种类型的 DAL,以及它对 Silverlight 的支持程度。