Share via


Появилась возможность совместного использования сборок .Net 4 и Silverlight 4

dot-net-Logo[1] SilverlightLogo2_2[1]

Сегодня многие разработчики пишут код, который должен выполняться как Silverlight так и .Net Runtime’мами. Хорошим примером является проверка данных, когда вы проверяете их сначала на стороне клиента используя Silverlight, а затем на стороне сервера используя .Net. До недавних пор нужно было компилировать один и тот же код в сборки для разных runtime’мов(Silverlight и .Net). Эта модель работоспособна, но не идеальна!   

Мы назвали эту новую возможность “возможностью портируемости сборок”, которая позволяет портировать вами написанный код между Silverlight и .Net, что позволяет вам собрать код в сборку с помощью инструментов Silverlight, а затем использовать только что собранную сборку в обоих runtime’ах.

Хочу обратить внимание, данная возможность не меняет основные механизмы исполнения кода в Silverlight и .Net runtime’ах! Если вы пишите код, который использует общие для двух runtime’мов API, то вы можете использовать один и тот же набор сборок для написания приложений. Но как же узнать какие из API общие? 

Мы установили 5 ключевых сборок, которые портируемы между Silverlight и .Net. (Silverlight UI конечно же не является портируемым – существуют принципиальные различия между механизмами Silverlight UI и WPF.)

Как обычно, мы стояли перед большим выбором какой сценарий выбрать. В итоге было принято решение позволить портировать сборки из Silverlight в .Net, а не наоборот. Мотивацией для такого решения послужил факт того, что Silverlight реализует подмножество сборок .Net и становится очевидно, что сборки использующее это подмножество будут работать и в .Net.

Другим серьезным вопросом был вопрос выбора сборок, которые будут безопасно работать и в Silverlight и в .Net. Мы рассмотрели большинство сценариев, где может пригодиться портируемость и решили начать с самых основных. Как результат, для .Net 4 и Silverlight 4 мы выбрали только набор низко-уровневых сборок, которые, мы думаем, позволят сделать вам различные интересные сценарии. 

Для SL 4 и .NET 4, мы сделали общедоступными:

  • Mscorlib
  • System
  • System.Core
  • System.ComponentModel.Composition
  • Microsoft.VisualBasic !

Пример в Visual Studio 2010

Создаем проект

untitled

Используем сборку Silverlight в .Net

image_thumb_2[1]

image_thumb[1]

image_thumb_1[1]

Хочу еще раз отметить, что существует множество типов в .Net, которые по-прежнему будут не доступны