Top 60+ .NET Interview Questions and Answers for 2025 Flashcards
Что такое .NET Framework?
.NET — это платформа от Microsoft, предназначенная для создания различных типов приложений с использованием Windows. Она поддерживает различные языки программирования (C#, VB и другие) и предоставляет инструменты для разработки классов, библиотек, API, а также для деплоя и отладки приложений.
Какие компоненты входят в состав .NET?
Некоторые из ключевых компонентов .NET: .NET Class Library, .NET Framework, Language Runtime, Application Domain, Profiling и другие.
Что такое JIT в .NET?
JIT (Just In Time) — это компилятор, который преобразует промежуточный код в нативный код во время выполнения программы.
Что такое MSIL?
MSIL (Microsoft Intermediate Language) — это промежуточный язык, который используется для описания инструкций, таких как обработка памяти и исключений, и может быть использован для инициализации и хранения значений и методов.
Что такое CTS?
CTS (Common Type System) — это набор предопределённых правил, который описывает, как данные и их типы должны быть определены для корректного использования в .NET, обеспечивая совместимость между языками. Также позволяет создавать пользовательские типы данных, следуя этим правилам.
Что такое CLS?
CLS (Common Language Specification) — это стандарт, который гарантирует совместимость между всеми языками, поддерживаемыми в .NET, обеспечивая возможность взаимодействия различных языков.
Что такое CLR в .NET?
CLR (Common Language Runtime) — это основная составляющая .NET, которая отвечает за выполнение приложений. CLR управляет такими аспектами, как управление памятью, безопасность, загрузка библиотек и управление потоками.
В чём разница между управляемым и неуправляемым кодом в .NET?
- Управляемый код: управляется CLR, используется сборщик мусора, требует .NET Framework.
- Неуправляемый код: не управляется, не требует .NET Framework и не использует сборщик мусора.
Как выполняется управляемый код в .NET?
Управляемый код компилируется в промежуточный язык (IL), который затем передается CLR для преобразования в нативный код с помощью JIT-компилятора, после чего этот код выполняется на платформе .NET.
Что такое управление состоянием в .NET?
Управление состоянием — это поддержание и отслеживание состояния объектов на протяжении выполнения приложения. В ASP.NET бывают два типа управления состоянием: клиентское (на стороне клиента) и серверное (на стороне сервера).
В чём разница между объектом и классом в .NET?
Объект — это экземпляр класса. Класс — это шаблон для создания объектов, содержащий описание их свойств и методов.
В чём разница между System.StringBuilder и System.String в .NET?
- StringBuilder: изменяемый (mutable), поддерживает добавление текста.
- String: неизменяемый (immutable), не поддерживает добавление текста.
Что такое LINQ?
LINQ (Language Integrated Query) — это технология, которая позволяет интегрировать запросы к данным прямо в коде на языке программирования, облегчая работу с данными различных источников.
Что такое сборка (Assembly) в .NET?
Сборка (Assembly) — это единица развертывания и выполнения .NET-приложений. Это коллекция логических единиц, таких как исполнимые файлы (.exe) и библиотеки (.dll), необходимых для создания и развертывания приложения.
Какие компоненты входят в сборку .NET?
Основные компоненты сборки: ресурс (связанные файлы), MSIL (промежуточный язык), метаданные (бинарные данные программы), манифест (информация о сборке).
Что такое кэширование?
Кэширование — это процесс временного хранения данных в памяти для быстрого доступа, что значительно ускоряет выполнение приложений. Существует несколько типов кэширования: кэширование данных, страниц и фрагментов.
В чём разница между функцией и хранимой процедурой в .NET?
- Функция: может возвращать только одно значение, не поддерживает обработку исключений через try-catch.
- Хранимая процедура: может возвращать несколько значений, поддерживает try-catch для обработки ошибок.
Какие типы конструкторов существуют в C# .NET?
Основные типы конструкторов в C#: конструктор копирования, конструктор по умолчанию, параметризованный конструктор, приватный конструктор и статический конструктор.
Какие преимущества использования сессий в .NET?
Сессии позволяют хранить данные пользователя на протяжении всего времени работы с приложением, легко внедряются и обеспечивают безопасность. Объекты данных могут храниться как на сервере, так и на клиентской стороне.
Можно ли вручную установить таймаут сессии в .NET?
Да, таймаут сессии можно настроить вручную через изменение настроек в файле web.config.
Что такое упаковка (boxing) и распаковка (unboxing) в .NET?
- Упаковка — это преобразование значимого (value) типа в ссылочный (reference) тип.
- Распаковка — это обратный процесс, когда ссылочный тип снова преобразуется в значимый.
Для чего используется манифест в .NET?
Манифест хранит метаданные сборки, включая версию, идентификацию безопасности, проверку областей и валидацию ссылок на классы.
Для чего используются файлы, отображённые в память (Memory-Mapped Files)?
Позволяют маппить содержимое файла в адресное пространство процесса, что ускоряет доступ к данным и позволяет нескольким процессам совместно использовать данные. Используется MemoryMappedFile.CreateFromFiles().
Что такое CAS в .NET?
CAS (Code Access Security) — это механизм безопасности .NET, который предотвращает несанкционированный доступ к ресурсам, предоставляя коду только ограниченные разрешения.