我们有一些.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 :
需要进一步澄清几句话:
答案 0 :(得分:1)
您是否意识到您的业务逻辑不必与Silverlight兼容?为什么不通过一些Web服务公开您的业务逻辑(这是一项相对简单的任务),并从Silverlight代码中调用它? Silverlight代码和Web服务甚至可以驻留在同一台机器上,每个都使用自己的框架版本,您不必在不同的机器上托管Web服务。以这种方式做事意味着您可以编写一个精简的Silverlight UI,并在业务层上做最少的工作。
(这个答案取代了我之前的答案并回应了澄清的问题)
答案 1 :(得分:0)
这不是您想要听到的答案,但使用Visual Studio有什么问题 - 它会告诉您在尝试编译时错误的位置。
如果您正在寻找一份报告,以便您可以确定某项工作需要多长时间,那么报告就无法准确地告诉您。这不仅仅是你使用框架的缩减版本操作的事实,Silverlight中的事情也有很大不同,例如WinForms无法直接翻译,甚至WebForms也需要合理的工作量才能成为Silverlight页面/形式。
答案 2 :(得分:0)
我建议您将代码拆分为多个层,然后您可以替换UI层而无需重写较低层。