.NET Fest 2018 — двухдневная конференция в Киеве. Личные впечатления разработчика

21 ноября
Петр Ящук, Junior .NET Developer DataArt
.NET Fest 2018 — двухдневная конференция в Киеве. Личные впечатления разработчика
Конференция приоткрыла, что за нововведения ожидают нас в ближайшем будущем.

На трех потоках параллельно выступали известные эксперты, среди которых были Дино Эспозито (Италия), автор книг по ASP.NET, и Дилан Битти (Великобритания). Иногда я ловил себя на мысли, что хочется присутствовать на двух докладах одновременно.

ASP.NET Blazor — the C# Angular or the return of Silverlight?

Дино Эспозито начал свой доклад с причин смерти Silverlight, точнее — с отсутствия определенной причины как таковой. Silverlight был попыткой принести в мир WEB более серьёзный language runtime в рамках браузера, заменив JavaScript. Возможно, одна из таких причин — это стремительное развитие мобильного рынка, который требовал бы поддержки Silverlight на всех популярных платформах, включая Android.

Возможно, этому способствовало бы стремительное развитие мобильного рынка при условии поддержки Silverlight на всех возможных платформах, включая Android. На тот момент это казалось едва ли возможным, поскольку требовало кроссплатформенной инфраструктуры. Сейчас же появился .Net Core и, как отметил  Дино Эспозито, примерно 70 % всех браузеров на десктопах уже поддерживают WebAssemby (хотя на мобильный рынок глобальную поддержку пока не завезли).

ASP.NET Blazor предоставляет возможность разработки приложений на основе концепции UI-компонентов, как в Angular или React. Помимо вполне тривиального варианта разработки client-side UI, доступен вариант разработки server-side Blazor. В этом случае приложение будет выполняться на стороне сервера, а клиент будет получать все изменения через SignalR бинарными пакетами.

На этапе разработки сложно сказать, какое будущее ждет Blazor. Его версию 1.0 планируют представить вместе с .NET Core 3.0.

Слушатели в зале были настроены скептически, но лично мне все это кажется очень перспективным. Возможно, как и Silverlight в свое время.

Машинное обучение для .NET разработчиков с помощью ML.NET

Одним самых инетерсных для меня стал доклад Оли Гавриш из Microsoft, команда которой занимается непосредственно разработкой .NET Core.

Machine learning сейчас вызывает интерес практически у каждого разработчика и стремительно продолжает набирать популярность. Я считаю, что появление такого инструмента как ML.NET было лишь вопросом времени.  ML.NET— расширяемый, кроссплатформенный .NET-фреймворк для машинного обучения с открытым исходным кодом. В отличие от Azure Cognitive Services, ML.NET позволяет полностью подстроиться под конкретную задачу, он бесплатный и не нуждается во внешних ресурсах для работы. Демонстрация построения модели выглядела достаточно просто и не вызвала большого количества вопросов. Весь жизненный цикл математической модели состоит из четырех этапов:  

  • построения математической модели;
  • тренировка модели на подготовленных данных;
  • оценка полученной модели;
  • использование.

Построение модели, в свою очередь, состоит из загрузки данных, их подготовки и выбора подходящего алгоритма тренировки модели. Для тренировки моделей уже доступно несколько алгоритмов обучения «из коробки».

Важно, что ML.NET также может использовать модели, построенные в ONNX-формате. К примеру, разработчики могут конвертировать модели из Chainer или Caffe2 в формат ONNX и затем использовать их в своих приложениях на .NET.

Конференция .NET Fest уже во второй раз собрала .NET-разработчиков со всей Украины: более 700 участников, звезды мирового .NET-сообщества, докладчики из десяти стран мира, а также лучшие украинские эксперты собрались 26-27 октября в Киеве.

Лучший спикер .NET Fest 2017 Денис Резник (Украина) подготовил презентацию на тему «Почему мой запрос тормозит и как это исправить», представители известных мировых компаний также выступили с докладами: Саша Гольдштейн (Google Research, Израиль) дал практические рекомендации о дебаге .NET Core приложений, а Дмитрий Иванов (JetBrains, Россия) рассказал об иммутабельных структурах данных в .NET.