MUG Dnipro: стандарты, библиотеки, API

MUG Dnipro: стандарты, библиотеки, API
О C# 7.0, построении успешных API и .NET Standard говорили на MUG Dnipro.

Открыл встречу Игорь Фесенко, Application Architect в SoftServe и Microsoft Most Valuable Professional, познакомив слушателей с новинками в C# 7.0. Основные новшества C# 7.0 призваны облегчить работу при написании нового кода, упростить существующий код, повысить производительность. C# как современный язык включает в себя новый подходы, например, очень популярные возможности из функциональных языков:кортежи, сопоставления с шаблоном (pattern matching).

Во время доклада разобрали основные фичи в C# 7.0:

  • Numeric literal syntax improvements: возможность добавлять «_» в качестве разделителя в числовые литералы для улучшения читабельности.
  • out variables (+ discards): позволяют объявить «out параметры» внутри строки как аргументы метода, в котором они используются.
  • More expression-bodied members в C# 7.0: теперь поддерживает сеттеры, геттеры, конструкторы и финализаторы.
  • throw expressions: можно использовать throw в конструкциях кода, которые ранее были недопустимы, потому что throw был оператором.
  • Generalized async return types: теперь методы, объявленные с помощью модификатора async, могут возвращать типы-структуры в дополнение к Task и Task <T>.
  • Local functions: возможность объявить функции внутри других функций, чтобы ограничить их область видимости.
  • returns ref locals and returns: избегает копирования значений и убирает ненужные операции разыменования.
  • Tuples (+ deconstruction): теперь можно создавать легкие, анонимные типы, содержащие несколько общих полей, с полной поддержкой улучшенных подсказок синтаксиса.
  • Pattern matching: проверка, что выражение имеет определенную «форму».

Каждую фичу разобрали детально на примерах кода с проектов.

Итоги доклада: C # — современный язык, который берет хорошие вещи из других языков программирование иподает пример. Процесс разработки открытый, и в нем может участвовать каждый: предлагать изменения, помогать, обсуждать фичи и наблюдать, как это работает.

Примеры кода: https://github.com/Ky7m/DemoCode/tree/master/CSharp7
Презентация: https://docs.com/fesenko/7307/what-is-new-in-c-7

Андрей Чебукин, сооснователь The Secret Circle Solutions и преподаватель КА ШАГ, рассказал, что такое API, какие API успешны и как их сделать. Успешные API легки в использовании и могут оцениваться метрикамиTTFSC (Time to first successful call) и TTFHW (Time to first hello world). Они понятны, не позволяют использовать себя неправильно, не ломаются при обновлении. Затем говорили о Swagger (Open API): его определении, сертификациях, редакторах swagger, подходах разработки. Обсудили библиотеку Swashbuckle и увидели, как она работает, в демо-презентации.

В конце доклада Андрей показал и рассказал, что такое ASP.NET API Versioning и как подружить ASP.NET API Versioning и Swagger. Также добавил, что есть шаблон https://github.com/ASP-NET-MVC-Boilerplate/Templates для .NET New, который позволяет это сразу сконфигурировать.

Презентация: https://www.slideshare.net/fwdays/api-73628250

Завершил встречу Илья Лубенец (.NET-разработчик, Developex) докладом о .NET Standard. NET Standard 2.0 — унификация .NET для следующих веток: .NET Framework, .NET Core и Xamarin — т. е. набор API, который будет реализован всеми платформами. И сразу —значительное изменение: .NET Standard заменит библиотеки PCL. Хотя для разработчиков суть останется прежней, реализация будет другой.

В .NET Standard будут API, которые обязательно необходимо реализовать всем платформам, и будут API, реализация которых не обязательна — опциональные. Не обязательные будут доступны в виде отдельных пакетов NuGet. .NET Standard, хоть и заменяет PCL, все еще поддерживает работу с ними. Из библиотеки .NET Standard вы сможете делать ссылку на другую библиотеку .NET Standard или на библиотеку PCL.

Далее обговорили разницу между .NET Standard 1.6 и .NET Standard 2.0: увеличилось количество API на 142 % и возможность внутри .NET Standard библиотеки использовать .NET Framework-библиотеки.

В .NET Standard 2.0 добавились следующие API:

  • XML
  • Serialization
  • Data
  • Networking
  • IO
  • Threanding
  • Core

Докладчик продемонстрировал полезные инструменты для использования .NET Standard 2.0 и объяснил, как работает .NET Standard 2.0 изнутри.

Фотоотчет: https://www.flickr.com/photos/outsourcing/albums/72157681094965321