Около года назад мы начали работу над Evernote для Windows Phone 7. Тогда нашей первоочередной задачей было заставить наш SDK, использующий C#, работать с Silverlight, чтобы получить возможность доступа к Evernote API. Наш API построен на Apache Thrift, а генератор кода Thrift для C# используют синхронный HTTP-стек на .NET. Silverlight, между тем, поддерживает только асинхронную сетевую модель. Поэтому Дамиану Мэйерсу, нашему главному разработчику клиента для Windows Phone 7, пришлось какое-то время подумать над тем, как же заставить все это работать. В результате он внес изменения (подробно описав их у себя в блоге), которые позволили генератору кода C# и Thrift поддерживать обе сетевые модели. Этот код вы можете найти в нашем SDK для C#.
И вот год спустя мы вновь работаем над JavaScript-приложениями для Windows 8 Metro, которым необходимо обеспечить доступ к Evernote API из managed-кода C#. Вновь сталкиваемся с несовместимостью Thrift с, на сей раз, API .NET для Metro-приложений. Сегодня мы решили поделиться с вами способом решения этой проблемы.
Читать полностью »