Продолжая взаимодействие с настоящим сайтом, вы выражаете свое согласие с тем, что ваши пользовательские данные (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь) будут обрабатываться ООО «Тадос» в целях сбора статистических данных о посетителях сайта и функционировании сайта в течение 3 месяцев. В случае, если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.

Нас часто спрашивают, с чего начать, чтобы успешно работать в .NET-стеке. Подготовили список полезных материалов по технологиям, архитектуре и проектированию.

Язык

Советуем освежить знания по C#. Многие считают, что знают язык идеально, но когда дело доходит до использования реальных технологий, спотыкаются то о generic-и, то о рефлексию, то об async/await и task-и (в принципе с TPL проблемы встречаются часто). Этим не стоит пренебрегать — в конечном итоге будет проще работать с необходимыми технологиями, изучать и понимать код и архитектуру.

Минимальная литература по .NET и C#:

  • Pro C# and the .NET Framework, Эндрю Троелсен (чем свежее, тем лучше);
  • Pro .NET Performance: Optimize Your C# Applications, Саша Голдштейн.

Также стоит ознакомиться с идеологией, архитектурой, особенностями .NET Core. В последнее время мы ведем разработку именно под Core, а не под Framework, где это возможно.

Архитектура и код

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

  • Design Patterns, Элизабет Фримен, Эрик Фримен, Кэти Сиерра, Берт Бейтс;
  • Patterns of Enterprise Application Architecture, Мартин Фаулер (или здесь https://martinfowler.com/eaaCatalog/index.html).

Книги по проектированию архитектуры проекта

Для дисциплины при написании кода:

  • Clean Code, Роберт Мартин;
  • Code Complete, Стив Макконнелл.

.NET

Для веб-разработки под .NET вариантов немного — это ASP.NET WebForms / MVC / Web Api и ASP.NET Core.

ASP.NET WebFroms можно даже не смотреть. Стоит ли вкладываться в изучение именно ASP.NET — вопрос. Возможно для начала — да, чтобы погрузиться и пощупать технологию. Тогда достаточно любой обзорной литературы. Можно глянуть здесь https://professorweb.ru/my/ASP_NET/base/level1/base_aspnet_index.php — коротко, просто, но почти обо всем. Для первого знакомства неплохо.

ASP.NET Core более продуман, так как является переосмыслением архитектуры. В основе хорошо продуманный пайплайн из middleware, инверсия зависимостей уже лежит в сердце самой технологии и т. д. Плюсов по сравнению с ASP.NET не счесть, поэтому необходимость изучения последнего является открытым вопросом. Изучать технологию ASP.NET Core — только по официальным докам https://docs.microsoft.com/en-us/aspnet/core/. Это лучшая литература. Плюс всегда есть возможность посмотреть исходники на гитхабе.

Проектирование

При разработки энтерпрайз-приложений мы используем предметно-ориентированное проектирование (DDD). Часть используемых технологий была выбрана вместо других как раз в силу того, что они лучше сочетаются с данным подходом к структурированию и разработке приложений. По DDD обязательно к прочтению:

  • Domain-Driven Design: Tackling Complexity in the Heart of Software, Эрик Эванс;
  • Domain Driven Design Quickly, Флойд Маринеску, Эйбел Аврам (хватит только для обзорного знакомства).

Книга «Предметно-ориентированное проектирование» Эрика Эванса

Работа с данными

Для реализации слоя работы с данными используем NHibernate + Fluent NHibernate (только под Framework, под Core он появится с выходом 2.0) и Dapper (с трудом можно назвать ORM, скорее просто средство для маппинга). Не рекомендуем использовать Entity Framework: он очень плохо вяжется с DDD.

По ORM только официальная документация:

Управление зависимостями

Для полноценной работы необходимо знать, что такое инверсия зависимостей, контроля, IoC-контейнеры. Теории в сети навалом — от википедии до хабра. Из IoC-контейнеров используем Windsor и Autofac. Доки по ним читать официальные:

На что подписаться

Много хороших постов по архитектуре .NET-приложений можно найти в блоге Александра Бындю http://blog.byndyu.ru/. Стоит обратить внимание как минимум на CQRS, Event Sourcing, распределенную архитектуру, Integration Patterns.

Материалы по back-разработке
Средняя оценка 5 Проголосовало 1