.NET Interview Questions by https://www.interviewbit.com/ РУССКИЙ Flashcards

1
Q

Как работает фреймворк .NET?

A
  • Приложения на основе .NET Framework, написанные на поддерживающих языках, таких как C#, F# или Visual Basic, компилируются в Common Intermediate Language (CIL).
  • Скомпилированный код хранится в виде файла сборки с расширением .dll или .exe.
  • Когда приложение .NET запускается, Common Language Runtime (CLR) берет файл сборки и преобразует CIL в машинный код с помощью компилятора Just In Time (JIT).
  • Теперь этот машинный код может выполняться на определенной архитектуре компьютера, на котором он запущен.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Расскажите об основных компонентах платформы .NET.

A

Ниже приведены основные компоненты .NET Framework:

Common Language Runtime (CLR):
* Это механизм выполнения, который запускает код и предоставляет службы, упрощающие процесс разработки.
* Службы, предоставляемые CLR, включают управление памятью, сборку мусора, безопасность типов, обработку исключений, безопасность и управление потоками. Это также упрощает проектирование приложений и компонентов, объекты которых взаимодействуют между языками.
* Программы, написанные для .NET Framework, выполняются CLR независимо от языка программирования. Каждая версия .NET Framework имеет CLR.

Framework Class Library (FCL):
* Имеет предопределенные методы и свойства для реализации общих и сложных функций, которые могут использоваться приложениями .NET. Он также предоставит типы для дат, строк, чисел и т. д.
* Эта библиотека классов включает API для подключения к базе данных, чтения и записи файлов, рисования и т. д.

Библиотека базовых классов (BCL):
* Библиотека базовых классов (BCL) имеет огромную коллекцию функций и возможностей библиотек, которые полезны при реализации различных языков программирования, таких как C#, F#, Visual C++ и т. д., в .NET Framework.
* BCL разделена на две части. Это:

  • Библиотека определяемых пользователем классов: она включает сборки.
  • Сборка: сборка .NET считается основным строительным блоком .NET Framework. Сборка в CLI (Common Language Infrastructure) — это логическая единица кода, которая используется для безопасности, развертывания и управления версиями. Сборка может быть определена в двух формах, а именно в виде библиотеки динамической компоновки (.dll) и исполняемых файлов (.exe).
    При компиляции программы .NET будут сгенерированы метаданные с Microsoft Intermediate Language (MSIL), которые будут сохранены в файле Assembly.
  • Библиотека предопределенных классов: содержит пространство имен.
  • Пространство имен: представляет собой набор предопределенных методов и классов, которые присутствуют в .Net Framework. Пространство имен можно добавить в программу .NET с помощью «using system», где using представляет ключевое слово, а system представляет пространство имен.

Система общих типов (CTS):
* CTS определяет стандарт, который будет указывать, какой тип данных и значений может быть определен и управляем в памяти во время выполнения.
* Он гарантирует, что данные программирования, определенные на разных языках, должны взаимодействовать друг с другом для обмена информацией. Например, в VB.NET мы определяем тип данных как целое число, тогда как в C# мы определяем int как тип данных.
* Его можно использовать для предотвращения потери данных при попытке перенести данные из типа на одном языке в его эквивалентный тип на другом языке.

Спецификация общего языка (CLS):
* Спецификация общего языка (CLS) является подмножеством CTS и определяет набор правил и положений, которым должен следовать каждый язык .NET Framework.
* CLS будет поддерживать взаимодействие или межъязыковую интеграцию, что означает, что она предоставляет общую платформу для взаимодействия и обмена информацией. Например, каждый язык программирования (C#, F#, VB .Net и т. д.) в рамках .NET Framework имеет свой собственный синтаксис. Поэтому, когда выполняются операторы, принадлежащие разным языкам, CLS предоставит общую платформу для взаимодействия и обмена информацией.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое EXE и DLL?

A

EXE и DLL — это исполняемые модули сборки.

EXE — это исполняемый файл, который запускает приложение, для которого он разработан. EXE создается при сборке приложения. Поэтому сборки загружаются напрямую при запуске EXE. Однако EXE не может использоваться совместно с другими приложениями.

Библиотека динамической компоновки (DLL) — это библиотека, состоящая из кода, который необходимо скрыть. Код инкапсулирован внутри этой библиотеки. Приложение может состоять из множества DLL, которые могут использоваться совместно с другими программами и приложениями.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое CTS?

A

CTS означает Common Type System (система общих типов). Она следует набору структурированных правил, согласно которым тип данных должен быть объявлен и использован в программном коде. Она используется для описания всех типов данных, которые будут использоваться в приложении.

Мы можем создавать собственные классы и функции, следуя правилам в CTS. Она помогает вызывать тип данных, объявленный в одном языке программирования, другими языками программирования.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Объясните CLS

A

Спецификация общего языка (CLS) помогает разработчикам приложений использовать компоненты, совместимые с разными языками, с определенными правилами, которые поставляются с CLS. Она также помогает повторно использовать код среди всех языков, совместимых с .NET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое JIT?

A

JIT означает Just In Time. Это компилятор, который преобразует промежуточный код в родной язык во время выполнения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

В чем разница между int и Int32?

A

Между int и Int32 нет никакой разницы. Int32 — это тип, предоставляемый классом фреймворка .NET, тогда как int — это псевдоним для Int32 в языке программирования C#.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Объясните различия между типом значения и ссылочным типом.

A

Основные различия между типом значения и ссылочным типом приведены ниже:

  • Тип значения хранит фактические данные непосредственно в области памяти, а ссылочный тип содержит указатель, состоящий из адреса другой области памяти, в которой хранятся фактические данные.
  • Тип значения хранит свое содержимое в стековой памяти, а ссылочный тип хранит свое содержимое в куче.
  • Присвоение переменной типа значения другой переменной напрямую скопирует значение, а присвоение ссылочной переменной другой переменной не копирует значение, вместо этого создается вторая копия ссылки.
  • Предопределенные типы данных, структуры, перечисления являются примерами типов значений. Классы, объекты, массивы, индексаторы, интерфейсы и т. д. являются примерами ссылочных типов.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

В чем разница между управляемым и неуправляемым кодом?

A

Основное различие между управляемым и неуправляемым кодом приведено ниже:

Управляемый код
* Он управляется CLR.
* Для выполнения необходим фреймворк .NET.
* Управление памятью осуществляется посредством сборки мусора.

Неуправляемый код
* Он не управляется CLR.
* Не требует фреймворка .NET для выполнения.
* Среда выполнения заботится об управлении памятью.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Объясните промежуточный язык Microsoft

A

MSIL — это промежуточный язык Microsoft, который предоставляет инструкции для вызова методов, обработки памяти, хранения и инициализации значений, обработки исключений и т. д.

Инструкции, предоставляемые MSIL, не зависят от платформы и генерируются компилятором, зависящим от языка, из исходного кода. JIT-компилятор компилирует MSIL в машинный код на основе требований.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое сборка?

A

Сборка — это файл, который автоматически генерируется компилятором, который состоит из набора типов и ресурсов, которые созданы для совместной работы и формирования логической единицы функциональности. Мы также можем сказать, что сборка — это скомпилированный код и логическая единица кода.

Сборки реализуются в виде исполняемых файлов (.exe) или файлов динамической библиотеки (.dll).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Отличается ли ASP.NET от ASP? Если да, то объясните, чем?

A

Да, ASP.NET и ASP (Active Server Pages) — это разные технологии. Давайте посмотрим, чем они отличаются друг от друга.

  • ASP.NET использует языки .NET, такие как C# и VB.NET, которые компилируются в Microsoft Intermediate Language (MSIL). ASP использует VBScript. Код ASP интерпретируется во время выполнения.
  • ASP.NET, разработанный Microsoft, используется для создания динамических веб-приложений, в то время как ASP — это серверная технология Microsoft, используемая для создания веб-страниц.
  • ASP.NET полностью объектно-ориентированный, но ASP частично объектно-ориентированный.
  • ASP.NET имеет полную поддержку XML для простого обмена данными, тогда как ASP не имеет встроенной поддержки XML.
  • ASP.NET использует технологию ADO.NET для подключения и работы с базами данных. ASP использует технологию ADO.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Объясните ролевую безопасность в .NET

A

Безопасность на основе ролей используется для реализации мер безопасности в .NET на основе ролей, назначенных пользователям в организации. В организации авторизация пользователей выполняется на основе их ролей.

Например, Windows имеет доступ на основе ролей, как администраторы, пользователи и гости.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Объясните различные типы сборки.

A

Сборки делятся на 2 типа. Это:

Частная сборка:

  • Она доступна только приложению.
  • Нам нужно скопировать эту частную сборку отдельно во все папки приложения, где мы хотим использовать эту сборку. Без копирования мы не сможем получить доступ к частной сборке.
  • Она должна быть установлена в установочном каталоге приложения.

Общая или публичная сборка:

  • Она может быть общей для нескольких приложений.
  • Публичная сборка не требует отдельного копирования во все папки приложения. На системном уровне требуется только одна копия публичной сборки, мы можем использовать одну и ту же копию несколькими приложениями.
  • Она устанавливается в глобальном кэше сборок (GAC).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Каков порядок событий в жизненном цикле страницы?

A

Ниже приведены восемь событий, которые происходят в порядке успешного отображения страницы:

  • Page_PreInit
  • Page_Init
  • Page_InitComplete
  • Page_PreLoad
  • Page_Load
  • Page_LoadComplete
  • Page_PreRender
  • Render
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Что такое сборщик мусора?

A

Сборщик мусора освобождает неиспользуемые объекты кода в памяти. Куча памяти разделена на 3 поколения:

  • Поколение 0: содержит короткоживущие объекты.
  • Поколение 1: хранит среднеживущие объекты.
  • Поколение 2: предназначено для долгоживущих объектов.

Сборка мусора относится к проверке объектов в поколениях управляемой кучи, которые больше не используются приложением. Он также выполняет необходимые операции для освобождения их памяти. Сборщик мусора должен выполнить сборку, чтобы освободить часть памяти.

В процессе сборки мусора:

  • Распознается список живых объектов.
  • Обновляются ссылки для сжатых объектов.
  • Пространство памяти, занимаемое мертвыми объектами, собирается повторно. Оставшиеся объекты перемещаются в более старый сегмент.
    Метод System.GC.Collect() используется для выполнения сборки мусора в .NET.
17
Q

Что такое кэширование?

A

Кэширование означает временное хранение данных в памяти, чтобы приложение могло легко получить доступ к данным из памяти, а не искать их в исходном месте. Это увеличивает скорость и эффективность работы приложения.

Существует три типа кэширования:

  • Кэширование страниц
  • Кэширование данных
  • Кэширование фрагментов
18
Q

Можно ли применять темы к приложениям ASP.NET?

A

Да. Изменив следующий код в файле web.config, мы можем применять темы к приложениям ASP.NET:

<configuration>
<system.web>
<pages theme="windows"/>
</system.web>
</configuration>
19
Q

Объясните MVC.

A

MVC означает Model View Controller. Это архитектура для создания приложений .NET. Ниже приведены три основных логических компонента MVC: модель, представление и контроллер.

Модель: они хранят данные и связанную с ними логику. Он обрабатывает хранение объектов и извлечение из баз данных для приложения. Например:
Объект Controller извлекает информацию о сотрудниках из базы данных.
Он обрабатывает данные о сотрудниках и отправляет обратно в базу данных или использует ее для визуализации тех же данных.

Представление: представление обрабатывает часть пользовательского интерфейса приложения. Они получают информацию из моделей для своего отображения. Например, любое представление о сотруднике будет включать множество компонентов, таких как текстовые поля, раскрывающиеся списки и т. д.

Контроллер: они обрабатывают взаимодействие с пользователем, выясняют ответы на пользовательский ввод, а также визуализируют окончательный вывод. Например, контроллер Employee будет обрабатывать все взаимодействия и вводы из представления Employee и обновлять базу данных с помощью модели Employee.

20
Q

Что такое кросс-страничный постинг?

A

Всякий раз, когда мы нажимаем кнопку отправки на веб-странице, данные сохраняются на той же странице. Но если данные хранятся на другой странице и связаны с текущей, то это известно как кросс-страничная публикация. Кросс-страничная публикация достигается с помощью свойства POSTBACKURL.

Чтобы получить значения, которые опубликованы на этой странице, на которую была опубликована страница, можно использовать метод FindControl.

21
Q

Что такое делегат в .NET?

A

Делегат — это объект .NET, который определяет сигнатуру метода и может передавать функцию в качестве параметра.

Делегат всегда указывает на метод, который соответствует его конкретной сигнатуре. Пользователи могут инкапсулировать ссылку на метод в объекте делегата.

Когда мы передаем объект делегата в программу, он вызовет указанный метод. Чтобы создать пользовательское событие в классе, мы можем использовать делегат.

22
Q

Какие средства контроля безопасности доступны в ASP.NET?

A

Ниже приведены пять элементов управления безопасностью, доступных в ASP.NET:

  • <asp: Login> Предоставляет возможность входа, которая позволяет пользователям вводить свои учетные данные с помощью полей идентификатора и пароля.
  • <asp: LoginName> Используется для отображения имени пользователя, который вошел в систему.
  • <asp: LoginView> Предоставляет различные представления в зависимости от выбранного шаблона.
  • <asp: LoginStatus> Используется для проверки того, аутентифицирован ли пользователь.
  • <asp: PasswordRecovery> Отправляет пользователю электронное письмо при сбросе пароля.
23
Q

Что такое упаковка и распаковка в .NET?

A

Упаковка — это процесс прямого преобразования типа значения в ссылочный тип. Упаковка неявная.

Распаковка — это процесс, при котором ссылочный тип преобразуется обратно в тип значения. Распаковка явная.

Ниже приведен пример для демонстрации операций упаковки и распаковки:

int a = 10; // тип значения
object o = a; // упаковка
int b = (int)o; // распаковка
24
Q

Что такое MIME в .NET?

A

MIME означает Multipurpose Internet Mail Extensions (многоцелевые расширения интернет-почты). Это расширение протокола электронной почты, которое позволяет пользователям использовать протокол для легкого обмена файлами по электронной почте.

Серверы вставляют заголовок MIME в начало веб-передачи, чтобы обозначить, что это транзакция MIME.

Затем клиенты используют этот заголовок для выбора подходящего «плеера» для типа данных, на который указывает заголовок. Некоторые из этих плееров встроены в веб-браузер.

25
Q

Каково назначение манифеста в .NET Framework?

A

Манифест хранит метаданные сборки. Он содержит метаданные, которые требуются для многих вещей, как указано ниже:

  • Информация о версии сборки.
  • Проверка области действия сборки.
  • Проверка ссылок на классы.
  • Идентификация безопасности.
26
Q

Объясните различные типы файлов cookie, доступные в ASP.NET?

A

В ASP.NET доступны два типа файлов cookie. Это:

  • Сеансовый файл cookie: он хранится на клиентской машине в течение одного сеанса и действителен до тех пор, пока пользователь не выйдет из системы.
  • Постоянный файл cookie: он хранится на пользовательской машине в течение указанного периода времени для его истечения. Это может быть час, день, месяц или никогда.
27
Q

Что означает CAS в .NET?

A

Безопасность доступа к коду (CAS) необходима для предотвращения несанкционированного доступа к программам и ресурсам во время выполнения. Она предназначена для решения проблем, возникающих при получении кода из внешних источников, которые могут содержать ошибки и уязвимости, делающие систему пользователя уязвимой.

CAS предоставляет ограниченный доступ к коду для выполнения только определенных операций вместо предоставления всех в определенный момент времени. CAS создает часть собственной архитектуры безопасности .NET.

28
Q

Что представляет собой раздел appSettings в файле web.config?

A

Мы можем использовать блок appSettings в файле web.config, если мы хотим задать пользовательские значения для всего приложения. Пример кода, приведенный ниже, будет использовать ConnectionString для подключения к базе данных во всем проекте:

<em>
<configuration>
<appSettings>
<add key= "ConnectionString" value="server=local; pwd=password; database=default" />
</appSettings>
</configuration>
</em>
29
Q

В чем разница между абстрактным классом и интерфейсом?

A

Основные различия между абстрактным классом и интерфейсом перечислены ниже:

Абстрактный класс

  • Используется для объявления свойств, событий, методов и полей.
  • Предоставляет частичную реализацию функциональности, которая должна быть реализована путем наследования классов.
  • Поддерживаются различные виды модификаторов доступа, такие как private, public, protected и т. д.
  • Может содержать статические члены.
  • Невозможно достичь множественного наследования.

Интерфейс

  • Поля не могут быть объявлены с помощью интерфейсов.
  • Используется для объявления поведения реализующего класса.
  • Поддерживается только модификатор public.
  • Не содержит статических членов.
  • Достигается множественное наследование.
30
Q

Какие типы памяти поддерживаются в .NET Framework?

A

В .NET присутствуют два типа памяти. Это:

Стек: Стек — это тип хранимого значения, который отслеживает каждый исполняемый поток и его местоположение. Он используется для статического выделения памяти.

Куча: Куча — это тип хранимой ссылки, который отслеживает более точные объекты или данные. Он используется для динамического выделения памяти.

31
Q

Объясните локализацию и глобализацию.

A

Локализация — это процесс настройки нашего приложения для работы в соответствии с текущей культурой и регионом.

Глобализация — это процесс проектирования приложения таким образом, чтобы его могли использовать пользователи со всего мира, поддерживая несколько языков.

32
Q

Какие параметры управляют поведением пула соединений?

A

Есть 4 параметра, которые управляют поведением пула подключений. Это:

  • Время ожидания подключения
  • Мин. размер пула
  • Макс. размер пула
  • Пул
33
Q

Что такое MDI и SDI?

A

MDI (Multiple Document Interface): MDI позволяет открывать несколько окон, у него будет одно родительское окно и столько же дочерних окон. Компоненты являются общими из родительского окна, например, панель инструментов, панель меню и т. д.

SDI (Single Document Interface): SDI открывает каждый документ в отдельном окне. Каждое окно имеет свои собственные компоненты, например, панель инструментов, панель меню и т. д. Поэтому он не ограничен родительским окном.

34
Q

Объясните различные части Сборки.

A

Различные части сборки:

  • Манифест — каждая статическая или динамическая сборка содержит набор данных, который содержит сведения о том, как элементы в сборке связаны друг с другом. Манифест сборки состоит из полных метаданных, необходимых для указания требований к версии и идентификатора безопасности сборки, а также метаданных, необходимых для определения области действия сборки и разрешения ссылок на классы и ресурсы.
    Манифест сборки будет храниться либо в отдельном файле PE (Portable Executable), который содержит только информацию о манифесте сборки, либо в файле PE (.exe или .dll) с кодом MSIL (Microsoft Intermediate Language).
  • Метаданные типа — метаданные предоставляют вам дополнительную информацию, такую как типы, имена типов, имена методов и т. д. о содержимом сборки. Метаданные будут автоматически сгенерированы компиляторами из исходных файлов, и компилятор встроит эти метаданные в целевые выходные файлы, такие как .exe, .dll или .netmodule (в случае многомодульной сборки).
  • MSIL — Microsoft Intermediate Language (MSIL) — это код, реализующий типы. Он включает инструкции для загрузки, хранения, инициализации и вызова методов для объектов. Наряду с этим он также включает инструкции для потока управления, прямого доступа к памяти, арифметических и логических операций, обработки исключений и т. д. Он генерируется компилятором с использованием одного или нескольких файлов исходного кода. Во время выполнения компилятор JIT (Just In Time) среды выполнения CLR (Common Language Runtime) преобразует код MSIL в машинный код для операционной системы.
  • Ресурсы — Ресурсы могут быть списком связанных файлов, таких как файлы .bmp или .jpg. Эти ресурсы являются статическими, что означает, что они не изменяются во время выполнения. Ресурсы не являются исполняемыми элементами.