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

Эта дорожная карта направлена на то, чтобы дать вам представление о ландшафте. Дорожная карта направит вас, если вам понадобятся разъяснения о том, что нужно изучить дальше, а не побудить вас выбрать, что является шумихим и модным. Это поможет, если бы вы получили некоторое понимание того, почему один инструмент будет лучше подходит для некоторых случаев, чем другой, и помните, что шумиха и модный только иногда означают, что лучше всего подходят для работы.
Если вы любите или используете этот проект, чтобы изучить или запустить свое решение, пожалуйста, дайте ему звезду. Спасибо!
Обратите внимание, что на уровне старшинства это означает:
? Младший : основные концепции
? Medior : передовые концепции
? Старший : экспертные концепции

Скачать PDF -версию.
Ниже вы можете найти минимальную версию, который должен знать каждый юношеский разработчик .NET, с учебными материалами, включенными и кликами в версии PDF.

Скачать PDF -версию.
Перед тем, как вступить в специфику, вам необходимо солидно понять экосистему .NET . Вот несколько, которые вы должны понимать:
В этом разделе мы рассмотрим основной .NET .NET. Мы рассматриваем время выполнения .NET как все, что реализует стандарт ECMA-335 для .NET .
.NET Framework - это структура разработки программного обеспечения для создания и запуска приложений в Windows. .NET Framework состоит из среды выполнения общего языка (CLR), библиотеки классов .NET Framework и рабочих нагрузок приложений (WPF, формы Windows и ASP.NET). CLR является частью общей инфраструктуры, которая запускает код, JIT, делает сбор мусора (C#, VB.NET, F#) и т. Д. Код, который управляет CLR, называется управляемым кодом. Код собирается в общий промежуточный язык (CIL) и хранится в сборках (с расширением .exe или .dll). Когда приложение запускается, CLR берет сборку и использует только что компилятор (JIT) для транспилированного машинного кода в код, который может работать на определенной компьютерной архитектуре.
Вы можете использовать его как для настольного, так и для веб -разработки, но он ограничен разработкой Windows, и он предварительно установился в Windows.
.NET CORE является одним из моментов забега в экосистеме .NET. Он был выпущен в 2016 году. И он открыт. Он не представляет новую версию .NET Framework и не заменит его. Это совершенно независимая версия, созданная для обеспечения кроссплатформенных возможностей для разработки приложений. .NET Core состоит из хоста приложения (dotnet.exe), который запускает CLR и библиотеку. Он имеет общее время выполнения языка (CORECLR) и библиотека класса Core .NET. Он поддерживает различные рабочие нагрузки приложений, такие как Core ASP.NET (MVC и API), консольные приложения и UWP (в настоящее время).
.NET Core может работать на разных платформах: клиент Windows, сервер, IoT, Linux, Ubuntu, FreeBSD, Tizen и Mac OSX, и может быть установлен бок о бок с различными версиями на машину или пользователю.
.NET 5 был выпущен в ноябре 2020 года с целью объединения разработки для приложений для настольных компьютеров, веб -сайтов, облаков, мобильных устройств, игр, IoT и AI. Более ранняя цель настройки состояла в том, чтобы создать единую среду выполнения .NET и фреймворки, кроссплатформенные, интегрирующие лучшие функции .NET Core, .NET Framework, Xamarin и Mono. Однако из -за глобальной пандемии в области здравоохранения объединение было отложено на .NET 6. .NET 5 является общим кодовым базой для .NET CORE, MONO, XAMARIN и будущих реализаций .NET. Кроме того, обновляются имена целевых фреймворков (TFMS), которые выражают какую версию таргетинга .NET .NET, поэтому у нас теперь есть Net5.0. Это для кода, который работает везде. Он объединяет и заменяет имена NetCoreApp и NetStandard и Net5.0-Windows, которые представляют специфичные для ОС вкусы .NET 5, которые включают в себя привязки Net5.0 Plus OS.
.NET 9 - последняя среда выполнения в экосистеме .NET. Он выпущен в ноябре 2024 года. И он объединяет разработку для приложений для настольных компьютеров, веб -сайтов, облаков, мобильных устройств, игр, IoT и AI. .Net 9 состоит из хоста приложения (dotnet.exe), который запускает CLR и библиотеку. Он имеет общее время выполнения языка (CORECLR) и библиотека классов .NET 8. Он также включает в себя ASP.NET Core 9. .NET 9 имеет почти идентичную поддержку платформы как .NET CORE 3.1 для Windows, MacOS и Linux.
.NET 9 - это стандартный выпуск поддержки , поддерживаемый в течение шести месяцев после последующего выпуска STS или LTS.
.Net 8 была долгосрочной поддержкой (LTS) . Эти релизы поддерживаются в течение трех лет после первоначального выпуска.
Различные время выполнения используют разные библиотеки классов, например, .NET Framework использует библиотеку классов .NET Framework, в то время как .NET Core содержит свою библиотеку классов, а также Xamarin с его библиотекой классов. Таким образом, трудно поделиться кодом между различным временем выполнения, поскольку они используют разные API. Решение Microsoft - это стандартная библиотека .NET , выпущенная в 2016 году. Он представляет собой набор (формальных) спецификаций, в которых говорится, какие API вы можете использовать и все время выполнения его реализуют. Это эволюция портативных классовых библиотек (PCL). Конкретные время выполнения реализуют конкретные версии стандарта .NET (реализация конкретных API). Например, .NET Framework 4.8.1 реализует .NET STANDANTION 2.0, и .NET 7 реализует .NET STANDAL 2.1 (ссылка).
Чтобы узнать больше об экосистеме .NET, проверьте это сообщение в блоге.
График выпуска .NET от Microsoft:

C# - это язык программирования, разработанный Microsoft. Это язык для создания чего-либо, от настольных приложений и игр (с использованием Unity) до облачных решений и веб-сервисов. Благодаря сильной поддержке объектно-ориентированного программирования и богатой библиотеки, оно предназначено для того, чтобы быть простым и эффективным.
Последняя версия - C# 13 , выпущенная в ноябре 2024 года.
Проверьте полную временную шкалу C#:

Вам нужно понимать различные языковые функции C# , такие как:

Но также .NET библиотеки и API для:
Ресурсы :
Основное проектирование, чистый код и управление версиями, такие как GIT, позволяет вам писать эффективный, поддерживаемый код, который работает и процветает в командной среде. Это разница между кодером и квалифицированным инженером программного обеспечения .
Здесь вам нужно знать разные принципы, такие как:
Солидные принципы :
Но и:
Ресурсы :
Это кроссплатформенная, высокоэффективная структура, разработанная Microsoft для создания веб-приложений, API и микросервисов . Вы также можете запустить свои приложения в Windows, Linux или MacOS. Он спроектирован для гибкости и масштабируемости с такими функциями, как встроенная инъекция зависимостей и надежная система конфигурации.
Здесь также нужно знать основы веб -развития , например:
Ресурсы :
Если вы хотите построить интерфейс в .net, вам понадобятся эти рамки. Razor - это шаблонный двигатель для создания динамического HTML, в то время как Blazor поднимает его на ступеньку, позволяя вам создавать интерактивные веб -интерфейсы, используя C# вместо JavaScript. Maui -преемник Xamarin, созданный для создания кроссплатформенных мобильных приложений. Windows Presentation Foundation (WPF) - это структура пользовательского интерфейса, которая создает настольные клиентские приложения. Платформа UNO - это кроссплатформенный графический пользовательский интерфейс с открытым исходным кодом, который позволяет Winui и Universal Windows Platform Platform (UWP) - код на основе запуска на iOS, MacOS, Linux, Android и Webassembly.
Ресурсы :
Хороший дизайн базы данных обеспечивает эффективное хранение данных и быстрое извлечение, что облегчает проще в вашем приложении и масштабируется. SQL , язык для взаимодействия с базой данных, дает вам возможность запросить, обновлять и управлять данными, которые вы так тщательно разработали для хранения.
Здесь вам нужно знать:
Ресурсы :
Оборочное отображение (ORM) похоже на переводчик между вашим объектно-ориентированным C# кодом и реляционной базой данных, устраняя утомительную задачу написания SQL-запросов для основных операций CRUD. Используя фреймворки ORM, такие как Entity Framework, вы можете манипулировать данными в качестве объектов в вашем коде, делая их более читаемыми и поддерживаемыми . Это ускоряет разработку, сводит к минимуму ошибки и позволяет сосредоточиться на сложной бизнес -логике, а не на борьбе с синтаксисом базы данных.
Для структуры сущности вам нужно знать следующее:
Ресурсы :
Кэширование похоже на личную кратковременную память вашего приложения, хранение часто доступных данных, поэтому его можно быстро извлечь без доступа к вашей базе данных . Сокращая загрузку базы данных и ускоряя доступ к данным, кэширование дает вашему приложению конкурентное преимущество, которое необходимо для удовлетворения потребностей пользователей для отзывчивости и доступности.
Ресурсы :
Ведение журнала отражает информацию о времени выполнения, ошибки и другие важные данные, которые могут помочь вам быстро идентифицировать и исправить проблемы, что делает ваше приложение более надежным и безопасным. Фреймворки, такие как NLOG или Serilog, плавно интегрируются в .NET, предоставляя вам диагностический инструмент в реальном времени, необходимый для мониторинга здоровья приложений, проблем с устранением неполадок и даже сбора знаний для будущего развития.
Ресурсы :
В .net у нас есть три типа общения: общение в реальном времени, синхронное и асинхронное общение. Технологии связи в реальном времени , такие как SignalR в экосистеме .NET, позволяют эти функции, поддерживая постоянное соединение между сервером и клиентом. Синхронная связь в основном осуществляется с помощью HTTP-клиента, в то время как асинхронная связь осуществляется с помощью различных сообщений и основанных на событиях фреймворков и библиотек. Системы обмена сообщениями действуют как посредник между разными частями вашей системы, что позволяет им общаться, не будучи непосредственно связанными. Обработчики событий , с другой стороны, используются для обработки событий в пределах одного приложения. Они облегчают модель издателя-подписчика, где одна часть приложения может поднять событие, на которое могут отреагировать другие части.
Ресурсы :
Эти услуги выполняют задачи в фоновом режиме, освобождая ваше приложение, чтобы сосредоточиться на взаимодействии пользователей. Будь то обработка данных, автоматические электронные письма или периодические уборки , фоновые сервисы гарантируют, что эти задачи не замедляются или не прерывают пользовательский опыт.
Ресурсы :
Модульные тесты фокусируются на изолированных частях вашего кода, интеграционные тесты обеспечивают хорошо воспроизводят различные детали, а сквозные тесты подтверждают весь путь пользователя в вашем приложении. Вместе они формируют сеть безопасности, рано ловит ошибки, упрощая отладку и делает вашу кодовую базу надежной и поддерживаемой.
Здесь вам нужно знать:
Ресурсы :
Эти инструменты дают представление о производительности, поведении пользователей и частоте ошибок в реальном времени , что позволяет вам решать проблемы, прежде чем они преодолевают полномасштабные проблемы.
Мониторинг фокусируется на здоровье и доступности услуг и систем, часто вызывая оповещения о предопределенных условиях.
Телеметрия собирает, обрабатывает и передает данные из систем, обеспечивая анализ паттернов, тенденций и аномалий.
Ресурсы :
Контейнерные решения инкапсулируют ваше приложение .NET, библиотеки и время выполнения в изолированные контейнеры. Это обеспечивает согласованность в рамках многочисленных средств разработки и производства , решая проблемы зависимости. С такими функциями, как слоистые файловые системы, вы можете легко управлять изображениями контейнеров для ASP.NET, .NET CORE или других сервисов .NET, оптимизации времени сборки и использования ресурсов.
Ресурсы :
Облачные провайдеры предоставляют уровень API для абстрактной инфраструктуры и предоставления ее на основе границ безопасности и выставления счетов. Облако работает на серверах в центрах обработки данных , но абстракции ловко дают появление взаимодействия с одной «платформой» или крупным приложением. Способность быстро обеспечить, настраивать и безопасные ресурсы с помощью облачных провайдеров была ключом к огромному успеху и сложности современных DevOps.
Самыми популярными облачными поставщиками на рынке являются AWS и Azure , а также Google Cloud .
Здесь вы должны знать, как управлять пользователями и администрированием, сетями, виртуальными серверами и т. Д.
Ресурсы :
CI/CD автоматизирует стадии здания, тестирования и развертывания в оптимизированный, устойчивый к ошибкам трубопровод. Это означает более быстрые выбросы, исправления ошибок и больше времени, чтобы сосредоточиться на разработке функций .
Здесь вам нужно знать, как:
Ресурсы :
Некоторые полезные библиотеки .NET. Обратите внимание, что не все библиотеки будут использоваться всеми, это в основном зависит от проекта, над которым вы работаете.
В дополнение к этому вам также нужно знать следующее:
Выступления играют важную роль в приложениях .NET. Здесь вам нужно знать:
Эти инструменты могут помочь вам определить и отлаживать различные узкие места производительности, которые у вас есть в вашем коде. Для этого вы можете использовать другие инструменты, такие как:
Наряду с инструментами, вы должны знать о различных лучших практиках производительности для .NET:
Кэширование (кеш памяти в MEM или Redis)
Оптимизация базы данных (оптимизация запросов, правильная индексация, объединение соединений)
Async Programming (разгрузить все ЦП, обширные или операции ввода -вывода в DB, File Systems, Ext. Systems)
Используйте структуру Entity с умом (используйте энергичную загрузку, прогнозы и оптимизации, такие как скомпилированные запросы)
Управление памятью (используйте типы значений и будьте осторожны с большими графами объектов. Используйте рисунок для подключений или потоков DB. Избегайте бокса/распаковки. Используйте stringBuilder вместо строки для большого количества конкатенаций.)
Кэширование HTTP (используйте ETAGS, Последние модифицированные заголовки)
Минимизировать поездки в круглый
Сети доставки контента (CDN) (Статические активы разгрузки (CSS, JavaScript, изображения) для CDN для более быстрой доставки пользователям)
Сжатие (включите сжатие GZIP или Brotli для ответов HTTP для уменьшения размера передачи данных)
Регистрация и отслеживание (избегайте чрезмерного ведения ведения производства. Используйте распределенную трассировку по микросервисам.)
Параллелизм и параллелизм (используйте параллелизм и многопоточную чткость для задач, связанных с процессором, с использованием параллельного класса или параллельной библиотеки задач (TPL)))
Оптимизация ресурсов (оптимизируйте изображения и активы для Интернета, чтобы сократить время загрузки)
Http2 над SSL (теперь принимайте разумные решения о содержании страницы)
Измерение и монитор производительности (используйте VS Diagnostic Tools, Insights или BenchmarkDotnet)
Пользовательский SPAN <> вместо коллекций (пролеты могут представлять собой смежный раздел памяти; это означает, что мы можем использовать их для работы через массивы)
Безопасность играет важную роль в разработке приложений. Наиболее важными аспектами безопасности в мире .NET являются:
Концепции аутентификации и авторизации :
Концепции криптографии и защиты данных :
Если вы думаете, что дорожная карта может быть улучшена, откройте PR с любыми обновлениями и отправьте какие -либо проблемы. Кроме того, я буду продолжать улучшать это, так что вы также должны снять этот репозиторий.
Доктор Милан Миланович - технический директор 3MD и Microsoft MVP для разработчиков Technologies.