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

Сьогодні багато розробників пишуть код, який повинен виконуватися як Silverlight так і .Net Runtime'мамами. Гарним прикладом є перевірка даних, коли ви перевіряєте їх спочатку на стороні клієнта використовуючи Silverlight, а потім на боці сервера використовуючи .Net. До недавніх пір потрібно було компілювати один і той же код в збірки для різних runtime'мов (Silverlight і .Net). Ця модель працездатна, але не ідеальна!

Ми назвали цю нову можливість «можливістю портування збірок», яка дозволяє портувати вами написаний код між Silverlight і .Net, що дозволяє вам зібрати код в збірку за допомогою інструментів Silverlight, а потім використовувати тільки що зібрану збірку в обох runtime'ax.

Хочу звернути увагу, дана можливість не змінює основні механізми виконання коду в Silverlight і .Net runtime'ax! Якщо ви пишете код, який використовує спільні для двох 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
  • Core
  • ComponentModel.Composition
  • VisualBasic

Приклад у Visual Studio 2010

Створюємо проект

Використовуємо збірку Silverlight в .Net

Хочу ще раз зазначити, що існує безліч типів в .Net, які як і раніше будуть не доступні