Full-stack .NET разработчик с 7-летним опытом работы. Начав с ASP.NET MVC 2 и jQuery, сейчас использую при разработке ASP.NET Core MVC, ES2017 и не чураюсь применять даже bleeding edge технологии, если того требует проект.

Считаю себя технократом, который может за короткий срок разобраться и освоить любой новый инструмент, получив от этого громадное удовольствие. Свободное время посвящаю изучению интересующих меня технологий, которые применяю в pet-проектах, используя языки C#, Kotlin, Python и Ruby. Некоторые их них я выкладываю в OpenSource в своём профиле на GitHub.

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

Сейчас занимаю должность ведущего разработчика (архитектора) в компании Артлоджик (artlogics.ru).
Контакты

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (2)
  • AutoMapper. Мапинг из DTO/ViewModel в Domain.Entity

    Eskat0n
    @Eskat0n
    Психопат девелоперский
    Вот способ, который мне приходилось применять в проектах компании ByndyuSoft и который я настоятельно рекомендую для подобных щекотливых ситуаций.

    1. Создаете публичное свойство в ваших профилях, в которых нужно обращаться к БД и которое будет содержать в себе ссылку на абстрактную фабрику TypeResolver'ов.
    2. Регистрируете все Profile в IoC-контейнере на свой тип (практически все мейнстримовые контейнеры это поддерживают, мы используем Castle.Windsor).
    3. Регистрируете вашу абстрактную фабрику.
    4. Создаете все профили, используя резолвинг через IoC и регистрируете их. Для регистрации профилей рекомендую воспользоваться моей библиотекой NArms.Automapper (есть в NuGet), но вы можете сделать это и вручную.
    5. В профиле просто создаете нужный TypeResolver, используя абстрактную фабрику.

    Если используется Castle.Windsor, то можете прибегнуть к менее гибкому, но тоже имеющего право на жизнь решению с использованием NArms.Windsor. Статический класс IoC т.о. можно инициализировать, допустим в одном из Installer'ов (я завожу под это дело специальный WindsorInstaller). В таком случае вы можете резолвить что угодно через IoC.Resolve<>(). Способ не очень красивый, да и вы получаете т.о. лишнюю зависимость в сборках с профилями (от Castle.Windsor).
    Ответ написан
    2 комментария
  • Есть ли API у zakupki.gov.ru?

    Eskat0n
    @Eskat0n
    Психопат девелоперский
    У нас на zakupki360.ru для этого специальная логика реализована.
    Ответ написан
    2 комментария