是否有任何工具可以轻松将.NET代码移植到Silverlight?

时间:2009-11-14 09:01:27

标签: .net silverlight

我们有一些.NET客户端代码,我们希望将其移植到Silverlight。但是,当前的.NET代码根本无法在Silverlight平台上编译。除了一些微妙的问题,还有许多简单的问题,例如:   - SL中的一些例外构造函数较少   - SL中不存在Debug.Fail   - SL中不存在BindingList   - 私人反思受到严重限制 等...

这些差异中的一些可以应用于纯.NET代码,以最小化.NET和SL代码库之间的差异。就像我不介意在我的.NET代码中使用Debug.Assert而不是false调用Debug.Fail,如果它使代码受#if SILVERLIGHT污染较少。将BindingList替换为ObservableCollection

也是如此

我的问题是有一个工具,给出一个.NET程序集可以提供某种Silverlight兼容性报告,这将指示必须对.NET代码库进行的更改,以使其尽可能接近Silverlight平台?

感谢。

修改

该工具执行稍微复杂的工作,只是编译SL中的代码并显示错误。这与SL和.NET中存在的代码有关,但在SL中,常规(透明)代码无法使用它。调用它会导致SL出现异常。

编辑2

需要进一步澄清几句话:

  1. 代码不是UI代码。它既不是WinForms,也不是WebForms,也不是WPF。它是客户端UI所依赖的纯业务逻辑代码。
  2. 我们的业务逻辑基于Lhotka的CSLA库,它有一个SL端口。
  3. 使用VS在SL中编译项目仅报告编译错误。它不会通知我任何无效的API用法,例如调用SL中的SecurityCritical方法。

3 个答案:

答案 0 :(得分:1)

您是否意识到您的业务逻辑不必与Silverlight兼容?为什么不通过一些Web服务公开您的业务逻辑(这是一项相对简单的任务),并从Silverlight代码中调用它? Silverlight代码和Web服务甚至可以驻留在同一台机器上,每个都使用自己的框架版本,您不必在不同的机器上托管Web服务。以这种方式做事意味着您可以编写一个精简的Silverlight UI,并在业务层上做最少的工作。

(这个答案取代了我之前的答案并回应了澄清的问题)

答案 1 :(得分:0)

这不是您想要听到的答案,但使用Visual Studio有什么问题 - 它会告诉您在尝试编译时错误的位置。

如果您正在寻找一份报告,以便您可以确定某项工作需要多长时间,那么报告就无法准确地告诉您。这不仅仅是你使用框架的缩减版本操作的事实,Silverlight中的事情也有很大不同,例如WinForms无法直接翻译,甚至WebForms也需要合理的工作量才能成为Silverlight页面/形式。

答案 2 :(得分:0)

我建议您将代码拆分为多个层,然后您可以替换UI层而无需重写较低层。