Microsoft опубликовала исходный код собственного фреймворка Fluid. Компания использует его в Office 365 для создания облачных документов для совместного редактирования.
Новый инструмент
На GitHub стал доступен код фреймворка Fluid, разработанного Microsoft для собственных продуктов и теперь представленного широкой аудитории. Разработка представляет собой библиотеку TypeScript для совместных веб-приложений в реальном времени. Впервые фреймворк был анонсирован на конференции Build в мае 2019 года. Первые подробности нового продукта Microsoft раскрыла на Build-2020.
Компания позиционирует Fluid как доступный способ разработки нативных многопользовательских приложений. Еще одной задачей фреймворка организация называет встраивание и обмен «живым веб-опытом».
На GitHub исходники опубликованы под лицензией MIT. Сам сервер создан на базе Node.js, и Microsoft предупреждает, что полное тестовое покрытие может не работать в Windows. Фреймворк совместим с другими платформами: JavaScript или React, Angular, Vue. Сейчас библиотека все еще дорабатывается специалистами компании.
Особенности фреймворка
Microsoft уже опробовала фреймоворк в собственных продуктах. Компания использует Fluid в своем офисном пакете Office 365 для редактирования совместных документов, которые лучше масштабируются, чем обычные. Microsoft 365 имеет собственный сервер Fluid и поддерживает создание документов с расширением .fluid. Они предназначены исключительно для работы в облаке – скачать их и редактировать локально невозможно.
Главное преимущество подобного подхода в том, что сервер сохраняет все операции с документом, поэтому пользователь может завершить сеанс в браузере и затем повторно присоединиться к нему и возвратиться к актуальному состоянию. Однако такой принцип работы заставляет разработчика заранее предусмотреть место в базе данных или в файле, где будут храниться данные, сохраненные в конце сеанса.
Fluid позволяет работать с документами нескольким людям в реальном времени, но имеет ряд ограничений: рабочий файл несовместим с другими документами Office, и его невозможно редактировать в автономном режиме. Эти особенности могут затруднить внедрение инструмента в Microsoft 365.
Аналог уже есть
У Microsoft есть аналогичный фреймворк SignalR, тоже предназначенный для работы в облачных системах. Его отличие от Fluid в том, что новая библиотека проще в использовании на сервере и ориентирована на распределение состояния между несколькими клиентами. SignalR подходит для случаев, когда необходима более сложная серверная логика.