.NET Разработчик
6.52K subscribers
442 photos
3 videos
14 files
2.12K links
Дневник сертифицированного .NET разработчика. Заметки, советы, новости из мира .NET и C#.

Для связи: @SBenzenko

Поддержать канал:
- https://boosty.to/netdeveloperdiary
- https://patreon.com/user?u=52551826
- https://pay.cloudtips.ru/p/70df3b3b
Download Telegram
День пятьсот двадцатый. #DotNetAZ
Dotnet A-Z. 1
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

АОТ - ahead-of-time компилятор.
Подобно JIT-компилятору, этот компилятор также переводит IL в машинный код. Но в отличие от JIT-компиляции, AOT-компиляция происходит перед выполнением приложения и обычно выполняется на другом компьютере. Поскольку цепочки инструментов AOT не компилируются во время выполнения, им не нужно минимизировать время, затрачиваемое на компиляцию. Это означает, что они могут тратить больше времени на оптимизацию. Т.к. контекстом AOT-компиляции является всё приложение, компилятор AOT также выполняет межмодульное связывание и анализ всей программы, что означает переход по всем ссылкам и создания одного исполняемого файла.

ASP.NET
Платформа разработки веб-приложений, в состав которой входит: веб-сервисы, программная инфраструктура и модель программирования. Исходная реализация ASP.NET входит в состав платформы .NET Framework.
Иногда ASP.NET - это общий термин, который относится к обеим реализациям ASP.NET в .NET Framework и .NET Core. Значение, которое этот термин несёт в конкретном случае, определяется контекстом.

ASP.NET Core
Кроссплатформенная, высокопроизводительная реализация ASP.NET с открытым исходным кодом, построенная на .NET Core.

Assembly (сборка)
Сборка - это логическая группировка одного или нескольких управляемых модулей или файлов ресурсов. Это самая маленькая единица с точки зрения многократного использования, безопасности и управления версиями. Управляемые модули сборки могут быть файлами dll или exe в зависимости от типа проекта. Файл с исходным кодом, написанном на любом языке поддерживаемым .NET, с помощью соответствующего компилятора, компилируется в сборку. Сборка может включать в себя типы, такие как интерфейсы, классы, структуры, перечисления и делегаты.

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День пятьсот двадцать шестой. #DotNetAZ
Dotnet A-Z. 2
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

CLR (Common Language Runtime) - Общеязыковая Среда Исполнения
Обычно относится к среде исполнения .NET Framework. Основной функцией CLR является преобразование управляемого кода в машинный код и последующее выполнение программы. Также CLR является виртуальной машиной, которая не только выполняет приложения, но также генерирует и компилирует код на лету с использованием JIT-компилятора. Подробнее…

CoreCLR
Общеязыковая Среда Исполнения .NET Core. Построена на той же кодовой базе, что и в .Net Framework. Изначально CoreCLR была средой исполнения Silverlight и предназначалась для работы на нескольких платформах, в частности в Windows и OS X. Теперь CoreCLR является частью .NET Core и представляет собой упрощённую версию CLR. Это кросс-платформенная среда исполнения, теперь включающая поддержку многих дистрибутивов Linux.

CoreFx - Библиотека базовых классов .NET Core (*Fx обозначает фреймворк)
Набор библиотек, которые включают пространства имён System и подмножество типов пространства имён Microsoft. BCL - это низкоуровневая инфраструктура общего назначения, на которой основаны прикладные инфраструктуры более высокого уровня, такие как ASP.NET Core. Исходный код .NET Core BCL содержится в репозитории среды исполнения .NET Core. Тем не менее, большинство .NET Core API также доступны в .NET Framework, поэтому вы можете рассматривать CoreFX как ответвление .NET Framework BCL.

CoreRT - Среда Исполнения .NET Core
В отличие от CLR/CoreCLR, CoreRT не является виртуальной машиной, что означает, что она не включает в себя средства для генерации и запуска кода, потому что не содержит JIT. Однако она включает в себя GC и возможности идентификации типа во время выполнения (RTTI) и рефлексии. Система типов CoreRT разработана таким образом, что метаданные для рефлексии не требуются. Отсутствие необходимости в метаданных позволяет иметь цепочку инструментов AOT, которая может отсекать лишние метаданные и (что более важно) идентифицировать код, который приложение не использует. CoreRT пока находится в разработке.

cross-platform - кросс-платформенность
Возможность разработки и запуска приложения в нескольких различных операционных системах, таких как Linux, Windows и iOS, без необходимости переписывать его специально под каждую из них. Это позволяет повторно использовать код и обеспечивать согласованность между приложениями на разных платформах.

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День пятьсот тридцать восьмой. #DotNetAZ
Dotnet A-Z. 3
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

Ecosystem (Экосистема)
Всё ПО среды исполнения, средства разработки и ресурсы сообщества, которые используются для создания и запуска приложений для данной технологии. Термин «экосистема .NET» отличается от аналогичных терминов, таких как «стек .NET», т.к. включает сторонние приложения и библиотеки.

Framework (Фреймворк)
В общем случае - это комплексная коллекция API, которая облегчает разработку и развёртывание приложений, основанных на конкретной технологии. В этом смысле ASP.NET Core или Windows Forms являются примерами фреймворков приложений. Слово «фреймворк» имеет более конкретное значение в следующих терминах:
- .NET Framework - Реализация .NET, которая работает только в Windows.
- целевой фреймворк – Конкретная коллекция API, на которую опирается приложение или библиотека .NET.
- TFM (Моникер целевого фреймворка) – Стандартизированный токен имени фреймворка (например, net462 для .NET Framework версии 4.6.2).
В существующей документации Майкрософт термин «фреймворк» используется как для обозначения .NET Framework, так и иногда может относиться к другой реализации .NET. Например, .NET Core может называться фреймворком в некоторых статьях.

GC (Garbage collector – Сборщик мусора)
Сборщик мусора - это реализация автоматического управления памятью. GC освобождает память, занятую объектами, которые больше не используются.
Подробнее…

IL (Intermediate language - Промежуточный язык)
Языки высокого уровня, такие как C#, в .NET компилируются в аппаратно-независимый набор команд, который называется промежуточным языком (IL), иногда MSIL (Microsoft IL) или CIL (Common IL).
Подробнее…

JIT (Just-in-time компилятор)
Подобно AOT, этот компилятор переводит IL в машинный код, который понимает процессор. Но в отличие от AOT, JIT-компиляция происходит по требованию и выполняется на той же машине, на которой должен выполняться код. Поскольку JIT-компиляция происходит во время выполнения приложения, время компиляции является частью времени выполнения. Таким образом, JIT-компиляторы должны находить баланс между временем, потраченным на оптимизацию кода, и выигрышем, который эта оптимизация даёт. Преимуществом JIT-компилятора является то, что он знает конфигурацию оборудования, на котором выполняется код, поэтому может применять соответствующие процессорные оптимизации, что освобождает разработчиков от необходимости поставлять различные реализации кода для разных машин.
Подробнее…

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День пятьсот сорок третий. #DotNetAZ
Dotnet A-Z. 4
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

implementation of .NET (реализация .NET)
Реализация .NET включает в себя:
- Одну или несколько сред исполнения: CLR, CoreCLR, CoreRT.
- Библиотеку классов, которая реализует версию .NET Standard и может включать дополнительные API: .NET Framework Base Class Library, .NET Core Base Class Library.
- Необязательно: один или несколько фреймворков приложений: ASP.NET, Windows Forms и WPF включены в .NET Framework.
- Необязательно: инструменты разработки. Некоторые инструменты разработки используются несколькими реализациями.
Примеры реализаций .NET:
- .NET Framework – Реализация .NET, которая работает только в Windows.
- .NET Core – Кроссплатформенная, высокопроизводительная реализация .NET с открытым исходным кодом.
- Universal Windows Platform (UWP) – Реализация .NET, которая используется для создания современных приложений с сенсорным управлением и для ПО Интернета вещей (IoT).

Library (библиотека)
Коллекция API, которая может быть вызвана из приложений или других библиотек. Библиотека .NET состоит из одной или нескольких сборок.
Термины библиотека и фреймворк часто используются взаимозаменяемо.

Metapackage (метапакет)
Пакет NuGet, это пакет, который не содержит сборок, но содержит список зависимостей. Используется для лёгкого добавления заданного набора библиотек в проект, т.к. достаточно установить только метапакет и все его зависимости будут автоматически загружены и подключены.
Например, метапакет Microsoft.AspNetCore.App предоставляет набор API по умолчанию для создания приложения ASP.NET Core.

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День пятьсот пятьдесят пятый. #DotNetAZ
Dotnet A-Z. 5
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

Mono
Mono - это кроссплатформенная реализация .NET с открытым исходным кодом, которая в основном используется, когда требуется небольшая среда выполнения. Это среда выполнения, которая поддерживает приложения Xamarin на Android, Mac, iOS, tvOS и watchOS и ориентирована в первую очередь на приложения, чувствительные к размеру исполняемого файла.
Mono поддерживает все опубликованные в настоящее время версии .NET Standard. Исторически Mono реализовывал более крупный API .NET Framework и эмулировал некоторые из самых популярных возможностей Unix. Иногда он используется для запуска приложений .NET, которые полагаются на эти возможности в Unix. Mono обычно используется совместно с JIT-компилятором, но он также имеет полноценный AOT-компилятор, который используется например в iOS.
Документация Mono

.NET
Общий термин для .NET Standard и всех реализаций .NET. Термин всегда пишется всеми заглавными буквами.
Документация .NET

.NET Core
Кросс-платформенная, высокопроизводительная реализация .NET с открытым исходным кодом. Включает в себя Core Common Language Runtime (CoreCLR), Core AOT Runtime (CoreRT, находится в разработке), библиотеку базовых классов Core BCL и набор средств разработки Core SDK.
Документация .NET Core

.NET Core CLI (Интерфейс Командной Строки)
Кросс-платформенный набор инструментов для разработки приложений .NET Core.
Обзор .NET Core CLI

.NET Core SDK (Набор Средств Разработки)
Набор библиотек и инструментов, позволяющих разработчикам создавать приложения и библиотеки .NET Core. Включает .NET Core CLI для создания приложений, библиотеки .NET Core и среду выполнения для создания и запуска приложений, а также исполняемый файл dotnet (dotnet.exe), который выполняет команды CLI и запускает приложения.
Обзор .NET Core SDK

.NET Framework
Реализация .NET, работающая только в Windows. Включает общеязыковую среду выполнения (CLR), библиотеку базовых классов и библиотеки фреймворков приложений, такие как ASP.NET, Windows Forms и WPF.
Документация .NET Framework

.NET Native
Цепочка инструментов AOT-компиляции. Компиляция происходит на машине разработчика аналогично тому, как работают компилятор и компоновщик в C++. Компилятор удаляет неиспользуемый код и тратит больше времени на оптимизацию. Он извлекает код из библиотек и объединяет их в исполняемый файл. В результате получается один модуль, представляющий всё приложение.
UWP была первой платформой приложений, поддерживаемой .NET Native. Теперь поддерживается создание нативных консольных приложений для Windows, macOS и Linux.

.NET Standard
Формальная спецификация API .NET, доступных в каждой реализации .NET. Спецификацию .NET Standard в документации иногда называют библиотекой. Но поскольку библиотека включает в себя реализации API, а не только спецификации (интерфейсы), называть .NET Standard «библиотекой» неправильно.
Документация .NET Standard

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День пятьсот шестьдесят второй. #DotNetAZ
Dotnet A-Z. 6
В этой серии постов рассмотрим наиболее распространённые понятия в .NET в алфавитном порядке.

package (пакет)
Пакет NuGet или просто пакет - это файл архива с одной или несколькими сборками и дополнительными метаданными, такими как имя автора и описание.
Файл архива имеет расширение .nupkg и может содержать ресурсы, такие как файлы .dll и .xml, предназначенные для использования в определённых целевых платформах и версиях. При установке в приложении или библиотеке соответствующие ресурсы выбираются на основе целевой платформы приложения или библиотеки.

platform (платформа)
Операционная система и оборудование, на котором она работает, например Windows, macOS, Linux, iOS и Android. Например: «.NET Core - это кроссплатформенная реализация .NET».
В документации .NET часто используется вариант «платформа .NET» для обозначения реализации .NET или стека .NET. Это создаёт путаницу с основным значением термина (ОС/оборудование), поэтому планируется исключить этот вариант использования из документации.

runtime (среда выполнения)
Среда выполнения управляемой программы. ОС является частью среды выполнения, но не частью среды выполнения .NET. Примеры сред выполнения .NET:
- Общеязыковая среда выполнения (CLR)
- Общеязыковая среда выполнения Core (CoreCLR)
- .NET Native (для UWP)
- Среда выполнения Mono
В документации иногда термин «среда выполнения» используется для обозначения реализации .NET. В этом случае под «средой выполнения .NET» следует понимать «реализацию .NET». Это несоответствие планируется устранить.

stack (стек)
Набор технологий программирования, которые используются совместно для создания и запуска приложений. Понятие «стек .NET» может означать как определённую реализацию .NET, так и .NET Standard и все реализации .NET в целом.

target framework (целевая платформа)
Набор API, на которые опирается приложение или библиотека .NET. Приложение или библиотека может быть нацелено на версию .NET Standard (например, .NET Standard 2.0), либо на версию конкретной реализации .NET. В последнем случае приложение получает доступ к набору API в этой конкретной реализации. Например, приложение, ориентированное на Xamarin.iOS, получает доступ к предоставляемым Xamarin оболочкам API для iOS.
Для некоторых целевых платформ (например, .NET Framework) доступные API-интерфейсы определяются сборками, установленными в системе, которые могут включать API-интерфейсы платформы приложений (например, ASP.NET или WinForms). Для целевых платформ на основе пакетов (таких как .NET Standard и .NET Core) API-интерфейсы платформы определяются пакетами, установленными в приложении или библиотеке. В этом случае целевая платформа неявно определяет метапакет, который содержит ссылки на все пакеты, составляющие платформу.

Источник: https://docs.microsoft.com/en-us/dotnet/standard/glossary
День 1191.
Подборка тегов, используемых в постах на канале, чтобы облегчить поиск. Не могу гарантировать, что все 1190 постов идеально и корректно помечены тегами, но всё-таки, эта подборка должна помочь.

Общие
Эти посты на совершенно разные темы, помечены этими тегами только с целью различать общую направленность поста.

#ЗаметкиНаПолях – технические посты. Краткие описания теории, особенности языка C# и платформы .NET, примеры кода, и т.п.

#Шпаргалка - примеры кода, команды для утилит и т.п.

#Юмор – шутки, комиксы и просто весёлые тексты или ссылки на видео.

#Оффтоп – всё прочее.


Специализированные
Эти теги более тематические, выделяют основную тему поста.

#Карьера – советы по повышению продуктивности, карьерному росту, прохождению собеседований и т.п.

#Книги – обзоры книг, которые (чаще всего) я лично прочитал, либо ещё нет, но советую прочитать.

#Курсы – обзоры и ссылки на онлайн курсы.

#МоиИнструменты – различные программы, утилиты и расширения IDE, которые я использую в работе.

#ЧтоНовенького – новости из мира .NET.


Узкоспециализированные
Эти теги относятся к определённой узкой теме.

#AsyncTips – серия постов из книги Стивена Клири “Конкурентность в C#”
#AsyncAwaitFAQ – серия постов “Самые Частые Ошибки при Работе с async/await.”

#BestPractices – советы по лучшим практикам, паттернам разработки.

#DesignPatterns – всё о паттернах проектирования, SOLID, IDEALS и т.п.

#DotNetAZ – серия постов с описанием терминов из мира .NET.

#GC – серия постов “Топ Вопросов о Памяти в .NET.” от Конрада Кокосы.

#MoreEffectiveCSharp – серия постов из книги Билла Вагнера “More Effective C#”.

#Testing – всё о тестировании кода.

#TipsAndTricks – советы и трюки, в основном по функционалу Visual Studio.

#Quiz - опросы в виде викторины.

#97Вещей – серия постов из книги “97 Вещей, Которые Должен Знать Каждый Программист”.

#ВопросыНаСобеседовании – тег говорит сам за себя, самые часто задаваемые вопросы на собеседовании по C#, ASP.NET и .NET.
#ЗадачиНаСобеседовании – похоже на вопросы, но здесь больше приводятся практические задачи. Чаще всего это 2 поста: собственно задача и ответ с разбором.

#КакСтатьСеньором – серия постов «Как Стать Сеньором» с советами о продвижении по карьерной лестнице.

Помимо этого, можно просто воспользоваться поиском по постам и попробовать найти то, что вам нужно.
1👍60👎1