Портал недвижимости Toscano

Промышленность

Недвижимость

Размер организации

Крупные проекты (1000-9999 участников)

Страна/регион

Италия

Технологии

Blazor ASP.NET Core Cloud Artificial Intelligence & ML

Компания

Toscano

Когда компании Gruppo Toscano, одному из ведущих итальянских франчайзеров в сфере недвижимости, потребовалось переосмыслить свой общедоступный портал для миллионов покупателей и продавцов жилья, компания обратилась к своей внутренней команде разработчиков технологий. Компания Toscano Digital, технологическое подразделение группы, разрабатывает и управляет всей цифровой экосистемой для сети, предлагающей услуги в сфере недвижимости, кредитования, ремонта и страхования по всей Италии.

История компании Toscano Digital примечательна масштабом достижений небольшой команды. Имея в своем распоряжении всего пять разработчиков и глубокую приверженность платформе .NET, команда создала высоконагруженный потребительский портал, который в настоящее время обслуживает 4,6 миллиона сессий и обрабатывает 11 миллионов просмотров страниц в год.

Модернизация для миллионов пользователей

Компания Toscano Digital использует .NET с 2014 года. В 2020 году команда сделала ставку на Blazor WebAssembly для второй версии своей критически важной B2B CRM-системы, которой ежедневно пользуются около 1000 сотрудников в сети Gruppo Toscano. Переход от .NET Framework и jQuery к Web API и Blazor WebAssembly оказался очень успешным, обеспечив более быстрое внедрение новых функций и значительно упростив обслуживание.

Но когда пришло время перестраивать общедоступный портал группы, сайт B2C, где миллионы итальянцев ищут жилье, ставки изменились. Новый сайт необходимо было оптимизировать для SEO, поскольку органический поиск является основным источником трафика для объявлений о недвижимости. Приложение должно было быстро загружаться на мобильных устройствах. И ей нужно было справляться с непредсказуемыми всплесками трафика.

Традиционным подходом было бы нанять отдельную команду разработчиков фронтенда, специализирующуюся на React, Next.js или Vue. Компания Toscano Digital рассмотрела эти варианты, но генеральный директор Пьетро Монтелатичи увидел другой путь. "Внедрение фреймворка JavaScript потребовало бы фрагментации навыков нашей команды и создания более сложной системы управления общей бизнес-логикой", — объясняет он. "Для такой небольшой команды, как наша, возможность использовать один и тот же язык как на бэкенде, так и на фронтенде — это непревзойденный множитель производительности".

Команда решила полностью сосредоточиться на Blazor как для внутренней CRM-системы, так и для общедоступного портала, рассчитывая на то, что возможности серверного рендеринга .NET 10 обеспечат SEO-оптимизацию и производительность, необходимые для сайтов с высокой посещаемостью.

Архитектура "нейтрального SSR" для SEO и скорости.

Чтобы удовлетворить требования поисковой оптимизации (SEO) и сохранить высокую интерактивность, которую ожидают пользователи, компания Toscano Digital разработала многоуровневую архитектуру, сочетающую статическую серверную отрисовку с гидратацией WebAssembly:

  • Статический SSR: Используя статический рендеринг на стороне сервера .NET 10, страницы отображаются на сервере и доставляются в виде полностью сформированного HTML, который поисковые системы могут мгновенно индексировать.
  • Кэширование на границе сети: Отображаемый HTML намеренно "нейтральный", без персонализации, специфичной для пользователя, чтобы Cloudflare мог кэшировать его на границе сети для доставки по всему миру менее чем за секунду. Очистка кэша автоматически выполняется с помощью GitHub Actions при каждом развертывании.
  • Гидратация WASM: После загрузки начальной страницы Blazor WebAssembly берет на себя управление интерактивностью и персонализацией. Данные, специфичные для пользователя, такие как сохраненные поисковые запросы и сведения об учетной записи, загружаются через API после первоначальной отрисовки.

Такой подход позволяет Toscano Digital получить лучшее из двух миров: поисковые системы видят полностью отрисованный контент, а пользователи получают плавный, похожий на приложение опыт, как только страница становится интерактивной.

PersistentComponentState: упрощенная передача состояния

Одним из самых сложных аспектов объединения серверного рендеринга с интерактивностью на стороне клиента является передача данных между ними. Когда Blazor WebAssembly перехватывает управление у страницы, отрисовываемой сервером, состояние приложения должно передаваться плавно, без избыточных вызовов API или видимого мерцания.

В .NET 10 Blazor представил атрибут [PersistentState], который значительно упрощает этот процесс. Для компании Toscano Digital это улучшение стало настоящим прорывом.

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

Пьетро Монтелатичи, генеральный директор Toscano Digital

Атрибут [PersistentState] позволил избежать сложного шаблонного кода, который команда ранее писала для ручного управления передачей состояния. По сравнению с их предыдущими подходами, декларативная модель обеспечила более надежный и устойчивый механизм, что значительно упростило поддержку всей архитектуры.

Настройка "последней мили" на мобильных устройствах

После создания базовой архитектуры компания Toscano Digital сосредоточила внимание на повышении производительности мобильных устройств. Результаты для настольных компьютеров оказались впечатляющими: время отрисовки первого контента составило всего 0,6 секунды. Однако общее время блокировки на мобильных устройствах превысило одну секунду, что было вызвано загрузкой среды выполнения WebAssembly и фазой её гидратации.

Команда проделала большую работу по оптимизации пользовательского опыта, экспериментируя со стратегиями компиляции AOT и обрезки ассемблеров. Проведенные ими тесты выявили тонкие компромиссы: хотя предварительная компиляция повысила скорость выполнения, она могла увеличить время первоначального анализа на мобильных устройствах. Работая напрямую с командой разработчиков Blazor в Майкрософт, компания Toscano Digital исследовала передовые стратегии загрузки, такие как отсрочка инициализации WebAssembly до момента, когда потребуется взаимодействие с пользователем, что позволило улучшить воспринимаемую производительность без ущерба для функциональности.

Результаты говорят сами за себя. Благодаря новой архитектуре среднее время ответа сервера сократилось с 200 миллисекунд до всего 30 миллисекунд, что составляет улучшение на 85%.

Настоящая команда полного цикла разработки

С помощью .NET 10 и Blazor мы разрушили барьер между фронтендом и бэкендом, позволив небольшой команде из 5 человек управлять крупномасштабными и сложными продуктами.

Пьетро Монтелатичи, генеральный директор Toscano Digital

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

Это позволило значительно сократить накладные расходы на коммуникацию и ошибки интеграции, те самые препятствия, которые замедляют работу больших, разрозненных команд. Разработка новых функций ускоряется, и команда может оперативно реагировать на потребности бизнеса, не дожидаясь специалистов.

Помимо C#, команда использует возможности .NET, такие как сопоставление с шаблонами для управления сложной логикой маршрутизации URL-адресов и LINQ для обработки данных. Монтелатичи описывает оба этих качества как незаменимые для поддержания чистоты и выразительности кода в большой кодовой базе.

Создано на платформе Azure и GitHub

Инфраструктура Toscano Digital полностью построена на Microsoft Azure, включая App Service, Azure Functions, Azure SQL, Service Bus, Blob Storage, Logic Apps и Microsoft Foundry для функций на базе искусственного интеллекта в их B2B CRM, таких как переписывание описаний объектов недвижимости и предложение стратегий коммуникации для агентов.

Полный жизненный цикл программного обеспечения управляется через GitHub, а GitHub Actions обеспечивают работу конвейеров CI/CD, включая автоматическую очистку кэша Cloudflare, которая поддерживает актуальность кэшированного контента после каждого развертывания.

Результаты в реальных условиях

Новый портал был запущен в начале марта 2026 года, и результаты превзошли ожидания:

  • Время ответа сервера: 200 мс → 30 мс (снижение на 85%)
  • Первая отрисовка Contentful: 0,6 секунды на рабочем столе
  • Новые учетные записи пользователей: Почти 100 000 созданы за первые три недели
  • Обработка трафика: Неожиданные всплески трафика обрабатываются без проблем благодаря сочетанию Azure и SSR.

Проект был успешно представлен в ходе национального роуд-шоу Gruppo Toscano более чем 600 участникам коммерческой сети, подтвердив, что технология .NET готова поддержать амбиции группы в области роста и цифровой трансформации.

Прозрачность, укрепляющая доверие

Среди функций портала компания Toscano Digital больше всего гордится личным кабинетом. Клиенты могут отслеживать каждый этап процесса купли-продажи в режиме реального времени, 24 часа в сутки: статистику просмотров объектов недвижимости, запланированные встречи, полученные заявки и конкретные каналы, используемые для продвижения их объявлений.

Возможности .NET позволяют нам преобразовать сложность рынка недвижимости в удобный, прозрачный и быстрый пользовательский интерфейс.

Пьетро Монтелатичи, генеральный директор Toscano Digital

Полная прозрачность укрепила доверие между агентствами Toscano и их клиентами, превратив инвестиции в технологии в конкурентное преимущество на итальянском рынке недвижимости.

Взгляд в будущее

Путь компании Toscano Digital от одного из первых пользователей Blazor до создания масштабного потребительского портала командой из пяти человек демонстрирует, чего можно достичь, когда небольшая команда придерживается единого технологического стека. Выбрав .NET и Blazor вместо разрозненного подхода с использованием нескольких фреймворков, они превратили ограничение в преимущество: один язык, одна команда и одна архитектура, обслуживающая миллионы пользователей.

Благодаря планам расширения функционала на основе искусственного интеллекта для своей агентской сети и постоянным инвестициям в оптимизацию производительности, Toscano Digital доказывает, что .NET — это не просто технология для бэкэнда. Это полнофункциональная платформа, готовая к выполнению самых сложных пользовательских задач.