среда, 26 сентября 2012 г.

Casablanca или облачный C++

Я уже упоминал о проекте Casablanca в своем отчете о TechEd Europe.
На австралийском TechEd была сессия посвященная этой теме.

Что такое Casablanca и для чего она нужна. Изначально этот проект задумывался как C++ библитека для реализации Azure server-side сервисов. Итогом должен стать Azure SDK for C++ для написания полноценных end-to-end Azure приложений.
Для чего понадобилось писать C++ библиотеку? Ведь уже сейчас можно решать множество задач в Azure используя C#.
Ответ прост, и Microsoft использует его всегда, когда отвечает на вопросы о том, почему они вспомнили о C++:

  • близость к железу, отсюда производительность
  • портируемость кода
  • возможность использовать написанный ранее С++ код (они его называют legacy code, но мы помним, что так называется код без тестов :) )
Особенности реализации Casablanca показывают, что написана она была под влиянием новомодного Node.js
В слайдкасте на 16 минуте можно увидеть пример одного и того же приложения, написанного на Node и на Casablanca: практически 1:1
Почему Node привлекает? Это асинхронные операции, большое количество расширений и библиотек, а также простота реализации. Похожее попытались сделать и в Casablanca.

В библиотеке активно используются новшества C++11 (в первую очередь lambda). Возможно также использование новой библитеки PPL (Parallel Patterns Library)

Кроме этого Casablanca содержит классы для написания REST-сервисов и клиентов к ним, классы для работы c JSON, а также SDK for Azure Storage.
Насколько я понял REST и JSON можно использовать и без Azure (но буду подробнее читать в документации и надо попробовать).

Update: Casablanca официально зарелизили as C++ REST SDK. Пост с примерами. Пример использования этого API для подключения к Facebook.

Сам слайдкаст

Timeline:
до 8 мин:  вводная часть. Что такое Casablanca и зачем нужна
8-14 мин: демо, сервис Hello World :)
12 мин:     хорошо известная проблема с размером precompile header'a. Даже на демах об нее спотыкаются... мда
21-29 мин демо REST сервис на C++, работа с JSON (удобно кстати)

Дальше примеры использования облачных мощностей: сервис конвертации текста в речь, обработка изображений и тп.

ЗЫ если фотографии в одной из демок были сделаны во время сессии, то народа там было не густо :)

Комментариев нет:

Отправить комментарий