У нас есть некоторый клиентский код .NET, который мы хотели бы перенести в Silverlight. Однако текущий код .NET просто не компилируется на платформе Silverlight. Наряду с некоторыми тонкими проблемами, есть много простых проблем, таких как:
- у некоторых исключений меньше конструкторов в SL
- Debug.Fail не существует в SL
- BindingList не существует в SL
- строгие ограничения накладываются на частные размышления
и т.д ...
Некоторые из этих различий могут быть применены к простому коду .NET, чтобы минимизировать различия между базой кода .NET и SL. Как будто я не против вызвать Debug.Assert
с false
вместо Debug.Fail
в моем .NET-коде, если это делает код менее загрязненным #if SILVERLIGHT
. То же самое относится и к замене BindingList
на ObservableCollection
.
У меня есть вопрос, есть ли инструмент, предоставляющий сборку .NET, который может представлять какой-то отчет о совместимости с Silverlight, в котором указываются изменения, которые необходимо внести в базу кода .NET, чтобы максимально приблизить его к Платформа Silverlight?
Спасибо.
EDIT
Инструмент выполняет немного более сложную работу, чем просто компиляция кода на SL и представление ошибок. Это связано с кодом, присутствующим в SL и .NET, но в SL он недоступен для обычного (прозрачного) кода. Вызов этого приведет к исключению на SL.
РЕДАКТИРОВАТЬ 2 :
Несколько слов дальнейших разъяснений:
- Код не является кодом пользовательского интерфейса. Это ни WinForms, ни WebForms, ни WPF. Это чистый код бизнес-логики, от которого зависит пользовательский интерфейс на стороне клиента.
- Мы основываем нашу бизнес-логику на библиотеке Lhotka CSLA, которая имеет порт SL.
- Использование VS для компиляции проекта в SL только сообщает об ошибках компиляции. Он не будет уведомлять меня о недопустимом использовании API, например, при вызове метода, который является SecurityCritical в SL.