我们有一些.NET客户端代码,我们希望将其移植到Silverlight。然而,当前的.NET代码在Silverlight平台上根本无法编译。除了一些微妙的问题外,还存在许多简单的问题,例如:
- 在SL中,某些异常构造函数较少
- SL中不存在Debug.Fail
- 在SL中不存在BindingList
- 对私有反射施加了严格限制
这些差异中的一些可以应用于普通的.NET代码,以最小化.NET和SL代码库之间的差异。例如,如果调用Debug.Assert时使用false而不是Debug.Fail可以使我的.NET代码不会被污染为#if SILVERLIGHT。同样,将BindingList替换为ObservableCollection也是如此。
我的问题是是否有一种工具,可以在给定.NET程序集的情况下,呈现某种Silverlight兼容性报告,指出必须对.NET代码库进行哪些更改,以使其尽可能接近Silverlight平台?
谢谢。
编辑:
该工具执行的工作略微复杂,不仅要在SL中编译代码并显示错误。这与存在于SL和.NET中的代码有关,但在SL中对常规(透明)代码不可用。在SL上调用它会导致异常。
进一步澄清几点: 1. 代码不是UI代码。它既不是WinForms,也不是WebForms或WPF。它是纯粹的业务逻辑代码,客户端UI依赖于它。 2. 我们的业务逻辑基于Lhotka的CSLA库,该库有一个SL版本。 3. 使用VS仅在SL中编译项目只报告编译错误。它不会通知我任何无效的API使用,例如调用在SL中为SecurityCritical的方法。
这些差异中的一些可以应用于普通的.NET代码,以最小化.NET和SL代码库之间的差异。例如,如果调用Debug.Assert时使用false而不是Debug.Fail可以使我的.NET代码不会被污染为#if SILVERLIGHT。同样,将BindingList替换为ObservableCollection也是如此。
我的问题是是否有一种工具,可以在给定.NET程序集的情况下,呈现某种Silverlight兼容性报告,指出必须对.NET代码库进行哪些更改,以使其尽可能接近Silverlight平台?
谢谢。
编辑:
该工具执行的工作略微复杂,不仅要在SL中编译代码并显示错误。这与存在于SL和.NET中的代码有关,但在SL中对常规(透明)代码不可用。在SL上调用它会导致异常。
进一步澄清几点: 1. 代码不是UI代码。它既不是WinForms,也不是WebForms或WPF。它是纯粹的业务逻辑代码,客户端UI依赖于它。 2. 我们的业务逻辑基于Lhotka的CSLA库,该库有一个SL版本。 3. 使用VS仅在SL中编译项目只报告编译错误。它不会通知我任何无效的API使用,例如调用在SL中为SecurityCritical的方法。