- •Назначение и структура платформы .Net (NetFrameWork). Виды net-приложений и их базовые концепции (Console, WinForms, wpf, asp.Net).
- •2. Управляемый и неуправляемый код. Взаимодействие с унаследованным кодом. Структура сборки net - приложения.
- •Назначение, достоинства и недостатки msil. Процесс компиляции и исполнения net – приложения.
- •Назначение и состав общей системы типов cts. Основные используемые типы в Net-приложениях.
- •Отличительные особенности сборки, пространства имен и типов. Подключение библиотечных и дополнительных пространств имен.
- •Освобождение памяти и сборка мусора net–приложений. Стратегия поколений объектов.
- •Конфигурирование net - приложений. Назначение файлов Machine.Config, App.Config, App.Exe.Config
- •Понятие и назначение делегата. Пример использования делегата в ооп на c#.
- •Понятие и назначение события. Примеры использования событий в c#.
- •Основные элементы управления WinForms-приложений. Возможности управления поведением элементов при изменении размеров формы (элементы Anchor и Dock).
- •Виды окон, используемых для приложений WinForms. Состав файлов формы и их назначение.
- •12. Списки, очереди, стеки, словари, их применение и сравнение с массивами. Интерфейс iEnumerable и его назначение
- •13. Обработка и генерация исключений. Создание собственных исключений для приложения.
- •14. Локализация WinForms-приложений. Понятие ресурсов и подчиненной сборки.
- •15. Развертывание net-приложений. Развертывание xcopy и управление встроенными каталогами. Понятие строгого имени и развертывание общих сборок.
- •16. Понятие и назначение домена приложений. Достоинства и недостатки домена по сравнению с потоками и процессами.
- •17. Основные цели, достоинства и недостатки ооп.
- •18. Понятие объекта и задач построения ис с точки зрения объектов. Назначение и структура crc-карточек.
- •1 9. Понятия инкапсуляции и абстракции, их назначение в ооп.
- •20. Назначение и структура языка uml
- •21. Отношение зависимости, ассоциации, агрегации и композиции между классами.
- •24. Базовые принципы программирования dry, kiss, yagni.
- •25. Принцип единственности ответственности и шаблон проектирования Expert.
- •26. Шаблоны проектирования High Cohesion и Low Coupling.
- •27. Шаблон проектирования Creator
- •28. Назначение модульного тестирования. Понятие единицы автономного тестирования.
- •29. Тестирование методом черного и белого ящиков и их применение к модульному тестированию.
- •30. Назначение и целесообразность использования заглушек.
- •31. Назначение подставного объекта и его отличие от заглушки.
- •34. Понятие полиморфизма и его основные виды (классический полиморфизм, перегрузка, параметрический полиморфизм).
- •35. Классический полиморфизм на основе наследования и его применение в базовых принципах проектирования.
- •36. Обоснованность применения наследования или композиции классов. Отрицательное правило наследования.
- •37. Понятие и назначение интерфейса. Отличие реализации интерфейса от наследования. Выбор предпочтения между наследованием и реализацией интерфейса.
- •38. Состав и назначение solid-принципов.
- •39. Понятие шаблона проектирования и структура шаблонов grasp.
- •40. Принцип открытости/закрытости (ocp) и его соответствие шаблонам полиморфизм и защита от изменений.
- •41. Формулировка и назначение принципа подстановки Liskov (lsv).
- •42. Назначение и структура принципа разделения интерфейсов (isp).
- •43. Назначение и структура принципа инверсии зависимостей (dip).
- •44. Формулировка, назначение и примеры использования принципа наименьшего знания (plk).
- •45. Назначение и формулировка шаблона Controller. Основные виды контроллеров и управление сложностью функционирования ис.
- •46. Назначение, формулировка и примеры использования шаблона чистая синтетика.
- •49. Назначение правила разработки тестовых случаев (test case) и тестовых комплектов
- •50. Классификация видов тестирования
13. Обработка и генерация исключений. Создание собственных исключений для приложения.
Есть 3 типа ошибок: 1) программные (ошибка в логике )
2) пользовательские
3) исключения
Существую класс исключений System.Exeption, все исключения наследуются от него.
Для определения своих исключений стоит наследовать их от System.ApplicationException (тоже наследуется от System.Exeption). Это будет означать, что исключение будет вызвано кодом функционирующего приложения. В созданном исключении должны быть определены нужные конструкторы для создания.
Синтаксис:
try {
// какой-то код
throw new SomeException(); // выбрасываем исключение типа SomeException
}
catch (SomeException ex) {
// обработка исключения
} catch (Exception ex) {
// обработка исключения
}
finally {
// блок, который выполняется всегда. Он не обязательный.
}
В случае выбрасывания исключения выполнения блока try заканчивается и программа ищет нужный блок catch по типу исключения. Выполняется первый блок catch который подходит по типу (учитывая наследование). Если подходящий блок catch не найден – программа завершает свою работу.
Блок finally выполняется в любом случае, вне зависимости было ли выброшено исключение или нет. Это необязательный блок.
14. Локализация WinForms-приложений. Понятие ресурсов и подчиненной сборки.
Локализуемые данные добавляются в сборку с помощью файлов .resources, которые в конечном итоге добавляются в сборку как встроенные ресурсы точно также как и остальные файлы.
Эти файлы являются двоичными и редактировать их непосредственно нельзя. Поэтому обычно на этапе разработки создаются файлы .resx, которые затем с помощью Visual Studio или утилиты resgen преобразуются в файлы .resources (которые в свою очередь уже встраиваются в сборку).
Файл .resx можно создать с помощью Visual Studio, добавив в проект элемент типа Resources File (Файл ресурсов). Visual Studio сама создаст корректную структуру файла, а в дальнейшем автоматически преобразует его в файл .resources и встроит в сборку при компиляции.
Также при создании файла .resx Visual Studio автоматически создает класс с тем же именем; этот класс имеет свойства для извлечения каждого элемента. Однако можно работать с данными из файла .resources и напрямую, с помощью класса ResourceManager.
Подчиненные сборки
Локализация данных осуществляется с помощью подчиненных сборок. Подчиненные сборки содержат локализованные файл .resources, переведенные на различные языки. При этом основная сборка должна содержать файл .resources для языка по умолчанию. Когда приложение запускается, платформа .NET выясняет язык текущей ОС, и каждый раз при обращении к классу ResourceManager платформа ищет соответствующую локализованную сборку. Если она найдена и содержит соответствующий ключ ресурса, она будет использована вместо главной сборки, в противном случае будет использована версия из главной сборки. Подчиненная сборка не может содержать исполняемого кода, а только локализованные ресурсы.
Чтобы добавить подчиненную сборку нужно добавить в проект еще один файл .resx, название которого должно содержать код локализации (отделенный точкой), например, welcome.de.resx. При компиляции в Visual Studio будет автоматически создан подкаталог (например, de), а в нем подчиненная сборка (например, MyApp.resources.dll).
Культуры разделяются на собственно культуры и подкультуры. культура представляет конкретный язык, а подкультура — региональный вариант этого языка. Культура обозначается с помощью двухбуквенного кода (например, en, de), а подкультуры — с помощью четырехбуквенного(en-AU, de-AT). В документе RFC 1766 содержится полный список наименований культур, которые применяются по всему миру, в зависимости от языка и страны или региона. Платформа .NET поддерживает концепцию информации о культуре, а строки хранятся в формате Unicode (16 бит), что позволяет писать их на множестве языков.
Обычно приложение состоит из основной исполняемой сборки (.exe) и нескольких связанных библиотечных сборок (.dll). Разрешение сборок — это процесс нахождения сборок, на которые производится ссылка. Оно происходит как на этапе компиляции, так и во время выполнения.