Предоставление классов C # в библиотеке классов .net 4 приложению Silverlight - PullRequest
3 голосов
/ 02 июня 2011

У меня есть набор классов в библиотеке классов C #, который я купил у сторонней компании.

Я хочу использовать эти классы и создавать свои классы, наследуя их. У меня все это работает над приложением .net 4 wpf.

Я хочу использовать эти классы в своем приложении Silverlight.

Какие варианты у меня есть и какой вариант лучше? Я хочу использовать его таким образом, чтобы я мог обновлять DLL сторонних компаний, поскольку они выпускают свою новую версию каждый месяц.

Просто для повторения несколько пунктов:

У нас есть несколько вариантов. 1. Связать классы (как добавление существующего элемента, но со ссылкой) 2. Создайте интерфейсы и поделитесь ими среди WCF как класс ссылок, и пусть все классы наследуют интерфейс 3. Используйте службу RIA и дайте веб-приложению создать автоматический код, чтобы выставить его на silverlight.

Есть ли другие варианты? а если нет, то какой из них лучше для сценария, с которым я столкнулся?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Стоит отметить, однако, что платформа .NET, поставляемая с Silverlight, отличается от той, что поставляется с полной .NET Framework.

Это означает, что существует небольшая вероятность того, что сторонняя сборка будет совместима с Silverlight, даже если SL использует тот же IL. Если сторонняя сборка ссылается только на mscorlib или System.dll, она может быть скомпилирована как межплатформенная сборка между SL и WPF.

Однако во всех остальных случаях различия между SL и полной платформой .NET не позволят сборке быть совместимой с Silverlight.

Если стороннее программное обеспечение связано с пользовательским интерфейсом или сетью, если оно использует Windows API ... и т. Д., Оно не будет работать в приложении Silverlight.

Это причина, по которой на общую сборку .NET нельзя ссылаться из проекта SL. Однако существуют случаи, когда SL-сборка может использоваться в общем проекте .NET.

Если сборка выполняет вычислительную и асинхронную задачу, вы можете выполнить ее на сервере и отправить результат обратно в приложение Silverlight.

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

Что делает сторонняя библиотека?

1 голос
/ 02 июня 2011

Если у вас нет исходного кода, вы не можете ссылаться на библиотеку классов в своем приложении Silverlight (как вы, вероятно, уже знаете).Невозможно использовать стандартные библиотеки .NET в Silverlight без перекомпиляции, поскольку Silverlight - это другая структура и другая CLR.

Вы можете использовать библиотеку на сервере и создать некоторые службы для доступа к функциональности.

Я не думаю, что есть какой-либо другой способ достичь вашей цели, если только вы не получите исходный код, который вы можете поместить в каталог с именем Shared.Затем он будет скопирован в ваше приложение Silverlight и скомпилирован в Silverlight.

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