Одновременная поддержка Beta 2 и RC0 (RTW)
Я уже писал о выходе RC0 и о хорошей возможности подготовиться к выходу финальной версии Silverlight - т.н. Ready to Web (RTW). То есть релиз.
Возникает резонный вопрос - вот в день Х выходит RTW. Часть пользователей ставит финальную версию, а часть пользователей все еще использует Beta 2. Последним будет предложено обновится до финальной версии, но ведь не все сразу это делают. Что же делать? Текущие сайты на Beta 2 работать не будут под релиз. Сайты на RC0 работать под релиз будут.
Что ж, существует интересный выход из этой ситуации, если вы считаете, что часть пользователей все равно какое-то время будет оставаться на Beta2. Его в своем блоге изложил Лоренс Мороуни.
Пусть у вас есть две версии приложения:
- Версия на Beta 2 - 'MyB2App.xap'
- Версия на RC0 (совместим с RTW) - 'MyRTWApp.xap'
При внедрении объекта Silverlight на страницу в первый период вы используете следующий код (в это время еще много пользователей используют Beta2):
1: <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="100%" height="100%">
2: <param name="source" value="MyB2App.xap"/>
3: <param name="onerror" value="onSilverlightError" />
4: <param name="background" value="white" />
5:
6: <object data="data:application/x-silverlight," type="application/x-silverlight-2" width="100%" height="100%">
7: <param name="source" value="MyRTWApp.xap"/>
8: <param name="onerror" value="onSilverlightError" />
9: <param name="background" value="white" />
10:
11: <a href="https://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
12: <img src="https://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
13: </a>
14: </object>
15: </object>
Как видно, в этом случае сначала идет объект на Beta 2 (обратите внимание на type = "application/x-silverlight-2-b2" и далее ссылка на MyB2App.xap), а внутри этого объекта используется объект под RTW (application/x-silverlight-2 и MyRTWApp.xap).
Это означает, что если у пользователя установлена Beta 2, то у него запустится версия под нее. Если у пользователя установлен уже RTW, то он пропустит первый объект (в системе нет обработчика типа x-silverlight-2-b2 и затем запустит версию под RTW.
С течением некоторого периода времени все больше пользователей перейдут на RTW. В этом случае можно сделать код наоборот:
1: <object data="data:application/x-silverlight," type="application/x-silverlight-2" width="100%" height="100%">
2: <param name="source" value="MyRTWApp.xap"/>
3: <param name="onerror" value="onSilverlightError" />
4: <param name="background" value="white" />
5: <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="100%" height="100%">
6: <param name="source" value="MyB2App.xap"/>
7: <param name="onerror" value="onSilverlightError" />
8: <param name="background" value="white" />
9: <a href=https://go.microsoft.com/fwlink/?LinkID=<RTW LINK> style="text-decoration: none;">
10: <img src="https://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
11: </a>
12: </object>
13: </object>
Таким образом, пользователи смогу постепенно перейти на финальную версию, при этом ваш сайт будет полностью работоспособен для максимального количества пользователей.
Comments
- Anonymous
October 10, 2008
Я уже писал о выходе RC0 и о хорошей возможности подгото