C# — торт

Пост любви и обожания языка программирования C#.

Ранишные времена (можно пропустить)

Последний раз я на нём кодил где-то в 2008 году. Это была версия 2.0. Там даже LINQ ещё не появился, и вообще вся разработка была исключительно про Windows Forms, а под крос-платформенностью всего .NET Framework понималась чудесная способность запускаться на разных версиях Windows (лол, в этом смысле какой-нибудь C++ MFC тоже был вполне себе крос-платформенным).

Однако язык на фоне всяких ужасов типа MFC и прочего Visual Basic'а был всё равно крутым. Нельзя было обкосячить работу с указателями, дебаговые сообщения были читабельными. Кроме того, доставляла IDE: Visual Studio 2005 выгодно отличалась от своих собратьев. К примеру, чтобы кодить на MFC и ATL, нужно было сидеть в Visual C++, в котором работать было в разы медленнее (например, дизайнить формы в нем было адским адом).

2k21

И вот когда я недавно кодил одно приложение на React, я узнал, что оказывается в .NET есть прямо готовый шаблон приложения С# + React (и даже '+ Redux').

Я в этом во всём покопался, и вот что мне сильно нравится:

  • Очень годный Dependency Injection (этого как-то не хватало в Django).
  • Из коробки работающая документация на Swagger.
  • Годный async/await из коробки + сразу нормальные асинхронные драйвера под Postgres и SQLite.
  • Паттерны Repository/Service.
  • Вообще в принципе C# хорошо укладывается во всякие паттерны.

Также есть приятные мелочи, которые тоже экономят время, но которые я толком ещё не потестировал:

  • Пакеты для аутентификации с помощью OAuth2 - да, это можно делать на любом языке, но сколько вы обычно на это тратите?
  • Неплохие docker-файлы в шаблонах проектов.
  • Можно вызывать F# :)

Полезные материалы для изучения C#

Теперь некоторые материалы, которые мне пригодились (видимо, буду дополнять этот список).

Entity Framework Best Practices

Хороший видос про Entity Framework — который почему-то не показывается внутри блога.

Курс по микросервисам

Наткнулся на 11-часовой курс по микросервисам, решил утащить сюда:

Курс про GraphQL на HotChocolate Framework