Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Константин Васильев «Fody против рутины»

DotNetRu
February 18, 2018

Константин Васильев «Fody против рутины»

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

DotNetRu

February 18, 2018
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. О себе • .NET 4+ лет • SQL • Knockout,

    Angular 1/2 • .NET @ Очень Интересно 2
  2. Fody Средство для манипуляций над IL кодом ваших сборок, встраивается

    в билд-процесс Позволяет упростить некоторые рутинные задачи Ближайший аналог - PostSharp 3
  3. Fody • .NET 4.5.2+ • .NET Core 1.0+ Не поддерживаются

    проекты: • project.json • xproj • .csproj в старом формате 13
  4. Fody • .NET 4.5.2+ • .NET Core 1.0+ Не поддерживаются

    проекты: • project.json • xproj • .csproj в старом формате Не работает функция “Edit and continue” 14
  5. Процесс билда с Fody Fody добавляет дополнительные шаги в пайплайн

    MSBuild. Когда билдится проект, Fody: • Находит файлы сборки и pdb файлы 15
  6. Процесс билда с Fody Fody добавляет дополнительные шаги в пайплайн

    MSBuild. Когда билдится проект, Fody: • Находит файлы сборки и pdb файлы • Парсит их с помощью Mono.Cecil 16
  7. Процесс билда с Fody Fody добавляет дополнительные шаги в пайплайн

    MSBuild. Когда билдится проект, Fody: • Находит файлы сборки и pdb файлы • Парсит их с помощью Mono.Cecil • По порядку выполняет все включённые плагины 17
  8. Процесс билда с Fody Fody добавляет дополнительные шаги в пайплайн

    MSBuild. Когда билдится проект, Fody: • Находит файлы сборки и pdb файлы • Парсит их с помощью Mono.Cecil • По порядку выполняет все включённые плагины • Изменённая сборка сохраняется вместе с обновлённым pdb файлом 18
  9. NullGuard Автоматически добавляет проверки на null Работает для свойств и

    методов (входные и выходные значения) В режиме Debug вместо исключений вызывает Debug.Assert 26
  10. Anotar Добавляет абстракцию над используемым логгером Поддерживает Log4Net, NLog, Serilog,

    Catel, CommonLogging, LibLog, NServiceBus, Splat Предоставляет: • Статичные методы для логгирования • Атрибуты для логгирования необработанных исключений в методе • Статичные свойства для проверки, включено ли логгирование какого-либо уровня 28
  11. Плюсы + Позволяет существенно упростить некоторые рутинные задачи + Легко

    встраивается в проект + Можно писать собственные плагины 46
  12. Минусы - Очень неочевидная вещь - Усложняет процесс дебага -

    Некоторые плагины нужно допиливать - Писать с нуля плагин - не просто 50