Существуют ли инструменты для облегчения переноса кода .NET на silverlight? - PullRequest
3 голосов
/ 14 ноября 2009

У нас есть некоторый клиентский код .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 :

Несколько слов дальнейших разъяснений:

  1. Код не является кодом пользовательского интерфейса. Это ни WinForms, ни WebForms, ни WPF. Это чистый код бизнес-логики, от которого зависит пользовательский интерфейс на стороне клиента.
  2. Мы основываем нашу бизнес-логику на библиотеке Lhotka CSLA, которая имеет порт SL.
  3. Использование VS для компиляции проекта в SL только сообщает об ошибках компиляции. Он не будет уведомлять меня о недопустимом использовании API, например, при вызове метода, который является SecurityCritical в SL.

Ответы [ 3 ]

1 голос
/ 15 ноября 2009

Вы понимаете, что ваша бизнес-логика не обязательно должна соответствовать Silverlight? Почему бы вам просто не раскрыть свою бизнес-логику через некоторые веб-сервисы (что является относительно тривиальной задачей) и вызвать ее из кода Silverlight? Код Silverlight и веб-сервисы могут даже находиться на одном компьютере, и каждый из них использует свою собственную версию платформы, вам не нужно размещать веб-сервисы на другом компьютере. Поступая таким образом, вы можете создавать красивый тонкий интерфейс Silverlight и выполнять минимальную работу на бизнес-уровне.

(этот ответ заменяет мой предыдущий и отвечает на уточненный вопрос)

0 голосов
/ 14 ноября 2009

Я бы посоветовал вам разделить код на несколько уровней, после чего вы можете заменить уровень пользовательского интерфейса, не переписывая нижние уровни.

0 голосов
/ 14 ноября 2009

Это не тот ответ, который вы захотите услышать, но что не так с Visual Studio - он сообщает вам, где находятся ошибки при попытке компиляции.

Если вы ищете отчет, чтобы определить, сколько времени займет какая-то работа, тогда отчет не скажет вам об этом с какой-либо точностью. Дело не только в том, что вы работаете с урезанной версией фреймворка, в Silverlight все также делается по-другому, например, WinForms не могут быть переведены напрямую, и даже WebForms потребуется разумный объем работы, чтобы стать страницей Silverlight. /form.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...