image

Microsoft опубликовала исходный код фреймворка Fluid на Github. Фреймворк представляет собой библиотеку Typescript для совместных веб-приложений в реальном времени. Fluid анонсировали на конференции Build в мае 2019 года, а первые детали показали на Build-2020.

В рекламном ролике, посвященном Fluid, фреймворк преподносят как простой способ создания «нативных многопользовательских приложений» и как способ встраивания и обмена «живым веб-опытом». Операции осуществляются в клиентской среде TypeScript, которая управляет так называемыми «распределенными структурами данных». Связь с клиентами осуществляется через WebSockets.


Microsoft использует эту платформу в своей службе 365 для создания совместных документов, которые масштабируются лучше, чем традиционные в Office. Microsoft 365 имеет собственный сервер Fluid и тип документа .fluid. В отличие от других документов Office, они находятся исключительно в облаке. Скачать файлы и работать с ними локально не получится.

Компания разъяснила плюсы и минусы этого механизма. Поскольку на сервере хранятся все операции, браузер может закрыть сеанс, повторно присоединиться к нему и вернуться к актуальному состоянию; но для данных, которые будут сохраняться после сеанса, разработчику потребуется где-то хранить операции, в базе данных или файле.

Разница между Fluid и SignalR, платформой .NET на WebSockets, состоит в том, что первая более легка в использовании на сервере и ориентирована на «распределение состояния между несколькими клиентами». Когда требуется больше логики на сервере, лучше подходит SignalR.

Код опубликован на GitHub под лицензией MIT. Сервер работает на Node, и Microsoft отметила, что полное тестовое покрытие может не работать в Windows. В компании заявили, что фреймворк работает с любой выбранной платформой, будь это JavaScript или React, Angular, Vue. Над кодом еще ведется работа.

Новый фреймворк представляет собой интерес, но его реальная ценность для Microsoft остается неясной. Так, он позволяет совместно редактировать документы в реальном времени, но при этом ограничения, такие как несовместимость с существующими документами Office и невозможность работать в автономном режиме, станут реальной проблемой при внедрении инструмента в Microsoft 365.
См. также: «9 главных анонсов конференции Microsoft Build 2020»