
- •Назначение и структура платформы .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. Классификация видов тестирования
Понятие и назначение события. Примеры использования событий в c#.
Событие представляет собой автоматическое уведомление о том, что произошло некоторое действие. События действуют по следующему принципу: объект, проявляющий интерес к событию, регистрирует обработчик этого события. Когда же событие происходит, вызываются все зарегистрированные обработчики этого события. Обработчики событий обычно представлены делегатами.
События являются членами класса и объявляются с помощью ключевого слова event. Чаще всего для этой цели используется следующая форма:
event делегат_события имя_события;
где делегат_события обозначает имя делегата, используемого для поддержки события, а имя_события — конкретный объект объявляемого события.
Пример:
Объявление класса события:
delegate void UI ();
class MyEvent
{
public event UI UserEvent; // Объявляем событие
public void OnUserEvent() // Используем метод для запуска события
{
UserEvent();
}
}
где-то в коде:
MyEvent evt = new MyEvent();
evt.UserEvent += SomeFunction; // Добавляем обработчик события (добавляя какой-то метод)
evt.OnUserEvent(); // Запустим событие. В результате выполнится SomeFunction
Пример событий: клик по кнопке, изменения текста в TextBox, движение мышки и т.д.
Основные элементы управления WinForms-приложений. Возможности управления поведением элементов при изменении размеров формы (элементы Anchor и Dock).
Элементы управления:
Button – кнопка
TextBox – поле для ввода текста
CheckBox
RadioButton
Label - надпись
ImageBox
ToolStrip – нижняя полоса состояния
DataGridView – просмотр таблиц
Свойство Dock:
Данное свойство позволяет привязать элемент управления к одной из сторон родительского контрола, в котором располагается, либо полностью заполнить всё свободное пространство. Даже если просто перевести с английского, то Dock - это пристань, причал, док. Т.е. вы как бы причаливаете своим контроллом к одной из сторон родителя грубо говоря. Свойство Dock может принимать одной из шести значений перечисления DockStyle:
None (нет привязки, значение по умолчанию)
Fill (элемент управления заполняет свободное пространство)
Left (“прижимаемся” к левому краю)
Right (к правому краю)
Bottom (к низу)
Top (к верху)
Свойство Anchor:
Свойство Anchor предназначено для закрепления краев вашего компонента к краям родительского элемента, при этом изменяя размер родителя, расстояние между указанными краями остается константой (постоянным). С англ. языка Anchor - это якорь. Условно говоря, вы кидаете якорь от края дочернего контрола к краю родителя. У компонентов четыре стороны, поэтому может быть максимум 4 якоря.
Виды окон, используемых для приложений WinForms. Состав файлов формы и их назначение.
Типы окон:
Метод ShowDialog() отображает модальное окно (диалоговое окно). Модальные окна не позволяют пользователю получать доступ к родительскому окну, блокируя возможность использования в нем мыши и возможность ввода в нем каких-то данных до тех пор, пока модальное окно не будет закрыто. Вдобавок метод ShowDialog() не осуществляет возврат до тех пор, пока модальное окно не будет закрыто, так что выполнение любого находящегося после него кода на время откладывается. (Однако это не означает, что в данное время не может выполняться никакой другой код — например, при наличии запущенного таймера обработчик его событий все равно будет работать.) Модальные окна идеально подходят для предоставления пользователю приглашения сделать выбор, прежде чем выполнение операции сможет быть продолжено.
Метод Show() отображает немодальное окно, которое не блокирует доступ пользователя ни к каким другим окнам. Более того, метод Show() производит возврат управления сразу после отображения окна, благодаря чему следующие за ним в коде операторы выполняются незамедлительно. Можно создавать и показывать сразу несколько немодальных окон, и пользователь может взаимодействовать со всеми ними одновременно.
Окна так же могут быть стандартной и нестандартной формы.
Файлы форм:
Файл главного класса формы
Имеет расширение .cs. Хранит частичный (partial) класс формы. содержит код или программную логику формы. Пишется программистом.
Файл оформления формы
Form.Designer.cs. Автоматически генерируется IDE. Здесь объявляется частичный (partial) класс формы, которая имеет два метода: Dispose(), который выполняет роль деструктора объекта, и InitializeComponent(), который устанавливает начальные значения свойств формы. При добавлении элементов управления, например, кнопок, их описание также добавляется в этот файл.
Файл ресурсов формы
Form.resx . Автоматически генерируется IDE. Хранит ресурсы формы. Как правило, ресурсы используются для создания однообразных форм сразу для нескольких языковых культур.