Information

Created: 12.07.2010 | Level: specialist | Access: free
Practical Application Programming in C# in VS.NET 2005 Environment В курсе представлен материал, построенный на основе лабораторных работ по проектированию оконных приложений в среде Visual Studio 2005, изучаемых на протяжении ряда лет студентами автора. На учебных примерах сочетание справочных сведений и пошаговых инструкций охватывают наиболее важные аспекты применения современных технологий программирования семейства .NET. Освоение курса предполагает затраты определенных усилий на выполнение упражнений практической направленности.
Каждая глава курса посвящена примерам разработки учебного приложения или пользовательского компонента на фундаменте библиотек WindowsForms, OpenGL, управляемого DirectX, ASP.NET, ADO.NET. Материал преимущественно опирается на язык C# и его поддержку в .NET Framework версии 2.0, которые остаются совместимыми и в новых версиях. При подготовке курса был использован обширный список современной литературы и личный опыт автора. Широкий спектр рассматриваемых вопросов призван сформировать у обучаемого устойчивые навыки и кругозор, необходимые для успешной работы не только в текущей, но и в более поздних выпусках среды VS.NET. Курс пригоден как для самостоятельного, так и для группового обучения студентов.

План занятий

LessonTitle <<Date
-
Самостоятельная работа 1
25 minutes
Простое приложение на нескольких языках программирования
В лекции рассматривается простое консольное приложение, разработанное на классах нескольких языков: C++, C#, Visual Basic.
Contents
    -
    Самостоятельная работа 2
    24 minutes
    Установка простого приложения ASP.NET на C#
    Установка IIS. Создание web-страницы на ASP.NET.
    Contents
      -
      Самостоятельная работа 1
      36 minutes
      -
      Самостоятельная работа 3
      2 hours 38 minutes
      Управление HTML-элементами в ASP.NET
      Элементы управления HTML и WEB: HTMLAnchor, HTMLButton, HTMLImage, HTMLInputButton, HTMLInputCheckBox, HTMLInputFile, HTMLInputHidden, HTMLInputImage, HTMLInputRadioButton, HTMLInputText, HTMLSelect, HTMLTable, HTMLTableRow, HTMLTableCell, HTMLTextArea. Программирование тегов класса HtmlGenericControl. Визуальный способ проектирования страницы представления. Подготовка HTML-кода в редакторе Dreamweaver. Программирование функциональности страницы ASP.NET.
      Contents
        -
        Самостоятельная работа 4
        2 hours 59 minutes
        Управление Web-элементами в ASP.NET
        Распознавание браузера. Сравнение html-элементов и Web-элементов. Web-элементы и их программирование. Этапы взаимодействия броузера и сервера в ASP.NET. Модель событий Web-форм. Обработка страницы. Web-элементы управления Label, TextBox,Button, HyperLink, CheckBox, CheckBoxList, RadioButton, RadioButtonList, DropDownList, ListBox. Обмен списков данными. Привязка Web-элементов управления к базе данных. Web-элемент AdRotator для управления рекламными баннерами.
        Contents
          -
          Самостоятельная работа 2
          1 hour 3 minutes
          -
          Самостоятельная работа 5
          2 hours 2 minutes
          Элементы управления Data в приложениях на C#
          В лекции рассматривается типовая учебная база данных Northwind. Пространство имен BCL. Подключение к данным связанного списка. Управление составом данных, отображаемых в связанном списке. Просмотр отдельных текстовых полей по выбранному элементу списка. Редактирование и обновление данных, добавление и удаление записей с использованием связанных элементов управления. Обработка ошибок с помощью связанных элементов управления.
          Contents
            -
            Самостоятельная работа 6
            52 minutes
            Элементы управления DataGrid и ComboBox в приложениях ADO.NET на C#
            Связывание данных с элементами управления DataGrid и ComboBox. Повышение степени детализации представления данных в элементе управления DataGrid. Элементы интерфейса пользователя.
            Contents
              -
              Самостоятельная работа 7
              1 hour 22 minutes
              Создание объектов базы данных SQL Server средствами оболочки VS.NET 2003
              Создание базы данных: создание таблиц и полей, создание индексов, назначение связей между таблицами. Установка ограничений и значений, применяемых по умолчанию. Создание представлений и хранимых процедур.
              Contents
                -
                Самостоятельная работа 3
                42 minutes
                -
                Самостоятельная работа 8
                59 minutes
                Просмотр данных средствами ADO.NET с привязкой на этапе выполнения
                Выборка данных с использованием объекта DataReader. Выборка данных из базы данных SQL Server с применением объекта DataTable. Поиск записей с помощью объекта DataRow. Отбор и сортировка записей с помощью объекта DataView.
                Contents
                  -
                  Самостоятельная работа 9
                  1 hour 23 minutes
                  Редактирование данных в среде ADO.NET
                  Свойства и методы объектов DataAdapter, DataSet. Редактирование данных средствами DataSet. Добавление и удаление строк в наборе данных средствами среды ADO.NET. Выполнение параметризованных хранимых процедур в среде ADO.NET. Динамическое создание и выполнение пакетных заданий по обновлению данных в среде ADO.NET.
                  Contents
                    -
                    Самостоятельная работа 4
                    36 minutes
                    -
                    Самостоятельная работа 10
                    2 hours 15 minutes
                    Введение в DirectX
                    Библиотека классов DirectX. Установка Microsoft ® DirectX ® 9.0 SDK Update (Summer 2003). Пространство имен Microsoft.DirectX.Direct3D. Создание устройства. Рисование плоского и трехмерного треугольника. Задание положения треугольника в мировых координатах. Создание перспективы. Добавление камеры. Отключение потребности в освещении сцены. Вращение треугольника вокруг координатной оси. Вращение треугольника вокруг произвольной оси. Обработка события изменения размеров окна. Создание освещения сцены. Хранение треугольника в вершинном буфере.
                    Contents
                      -
                      Самостоятельная работа 11
                      26 minutes
                      Выбор подходящего устройства в DirectX
                      В лекции рассматривается работа адаптеров устройств в DirectX. Свопинг-связки и рендеры. Форматы вторичных буферов и дисплеев. Проверка возможностей устройства.
                      Contents
                        -
                        Самостоятельная работа 5
                        36 minutes
                        -
                        Самостоятельная работа 12
                        1 hour 10 minutes
                        Рендеринг вращающихся кубов в DirectX
                        В лекции приводятся примеры рисования графических примитивов. Создание вращающегося куба. Добавление функциональности остановки вращения. Текстурирование сторон вращающегося куба.
                        Contents
                          -
                          Самостоятельная работа 13
                          1 hour 15 minutes
                          Более совершенные технологии рендеринга в DirectX
                          В лекции рассматривается использование примитивов, отличных от треугольников. Рендеринг различных типов примитивов. Использование индексных буферов. Создание нескольких вращающихся кубов с применением буфера глубины.
                          Contents
                            -
                            Самостоятельная работа 14
                            1 hour 10 minutes
                            Использование Mesh-объектов в DirectX
                            Создание Mesh-объекта. Добавление материалов и освещения. Использование более реалистичного освещения. Загрузка Mesh-объектов из внешних файлов.
                            Contents
                              -
                              Самостоятельная работа 6
                              33 minutes
                              -
                              Самостоятельная работа 15
                              1 hour 39 minutes
                              Вывод текста в клиентскую область формы
                              Применение секционных скобок для удобства редактирования. Создание заготовок для дочерних форм. Использование библиотеки FCL. Получение информации о системе. Разделение текстовых строк. Разбивка текста на колонки. Создание своего класса со свойствами "только для чтения". Организация прокрутки с помощью элемента Panel. Механизм работы автопрокрутки. Прокрутка без использования элементов управления. Отслеживание изменений в выводимой информации. Оптимизация работы функции прорисовки недействительной области.
                              Contents
                                -
                                Самостоятельная работа 16
                                1 hour 39 minutes
                                Рисование графических примитивов средствами GDI+
                                В лекции рассматриваются два вида компьютерной графики: векторная и растровая графика. Способы создания объекта Graphics. Рисование прямых линий. Использование некоторых возможностей печати документа. Разделение кода вывода на экран и печать. Рисование ломаных линий и домика ломаными линиями. Применение функции DrawLines() для рисования графиков. Параметрические уравнения и рисование кривых. Рисование эллипса специализированным методом, спирали, прямоугольников, дуг. Рисование прямоугольника с закругленными углами и секторов. Улучшенное рисование секторов. Заливка прямоугольников, эллипсов и секторов.
                                Contents
                                  -
                                  Самостоятельная работа 17
                                  3 hours 2 minutes
                                  Программирование простой игры в DirectX
                                  Программирование движка игры. Создание устройства в главном классе. Установка камеры и освещения сцены. Добавление кода запуска рендеринга. Добавление кода создания дороги. Фильтрация текстуры дороги. Имитация движения дороги. Создание автомобиля. Добавление к проекту нового класса Car. Добавление свойств в класс Car. Создание объекта Car в движке игры. Клавиатурное управление автомобилем. Добавление препятствий. Генерация одного препятствия в конструкторе класса. Другие заготовки для создания препятствий. Добавление вращений к препятствиям. Оформление атрибутики игры. Разработка табло результатов. Добавление текстовых надписей и запись лучших результатов в системный реестр.
                                  Contents
                                    -
                                    Самостоятельная работа 18
                                    2 hours 19 minutes
                                    Нестандартные формы и стандартные диалоги
                                    Создание непрямоугольной формы. Страницы свойств и стандарные диалоги. Свойства компонента TabControl. Разработка вкладок "Обзор" и MessageBox. Параметры метода Show(). Разработка итерфейса вкладки MessageBox. Программирование вкладки MessageBox. Базовый класс FileDialog. Разработка вкладки OpenFileDialog, SaveFileDialog. Распределение кода по отдельным файлам. Разработка вкладки ColorDialog. Добавление иконок к формам через файл ресурсов.
                                    Contents
                                      -
                                      Самостоятельная работа 7
                                      36 minutes
                                      -
                                      Самостоятельная работа 19
                                      1 hour 3 minutes
                                      Простая программа на OpenGL
                                      Первая программа OpenGL. Создание заготовки приложения OpenGL. Создание простого графического окна. Разбор кода Simple. Рисование прямоугольника внутри окна (GLRect). Масштабирование рисунка под размеры окна. Анимация прямоугольника с помощью OpenGL и GLUT (Bounce). Библиотечная функция таймера. Двойная буферизация.
                                      Contents
                                        -
                                        Самостоятельная работа 20
                                        2 hours 26 minutes
                                        Геометрические примитивы в OpenGL
                                        Поддержка меню в GLUT. Установка отсекающего объема (куба) для рисования сцены. Рисование точек (Points). Задание размера точки (PointsZ). Рисование линий в трехмерном пространстве (Lines). Ломаные и замкнутые линии. Управление шириной линий (LinesW). Фактура линий (LinesStipple). Рисование многоугольников в трехмерном пространстве. Рисование треугольников. Обход вершин. Ленты и вееры треугольников. Рисование конуса (Triangle). Удаление скрытых поверхностей. Отбор (culling). Каркасный режим и режим с заливкой. Фактура многоугольников (PolygonStipple). Каркасный режим: отсечение внутренних граней (Star).
                                        Contents
                                          -
                                          Самостоятельная работа 21
                                          2 hours 29 minutes
                                          Непрограммируемый конвейер в OpenGL
                                          В лекции рассматривается непрогроммируемый геометрический конвейер OpenGL. Системы координат. Команды управления текущими матрицами преобразования. Модельные и проекционные преобразования. Стеки матриц. Построение модели атома в ортогональной проекции (Atom). Модель полого бруска в ортогональной проекции (Ortho). Модель полого бруска в перспективной проекции (Perspect). Построение модели атома в перспективной проекции (Atom Perspect). Моделирование системы с относительными вращениями (Solar). Прямая загрузка матриц преобразований (Transform). Прямая загрузка матриц преобразований (SphereWorld).
                                          Contents
                                            -
                                            Самостоятельная работа 8
                                            36 minutes
                                            -
                                            Самостоятельная работа 22
                                            4 hours 20 minutes
                                            Свет и материалы в OpenGL
                                            Глаз человека и оптические системы. Куб цвета (ColorCube). Свет и материя. Модель освещения. Модель самолета без использования освещения (Jet). Рисование освещенной сферы (LightSphere). Материал и его свойства. Задание свойств материала. Первый способ задания нескольких материалов (MultiMaterial). Группы атрибутов. Второй способ задания нескольких материалов (ColorSphere). Источники света и их свойства. Модель самолета с нулевым освещением (JetNight). Модель самолета с равномерным освещением (JetLight). Модель самолета с зеркальным отражением (JetShiny). Кристалл и прожектор (CrystalAndSpot). Модель самолета и его тени (JetShadow). Освещенный мир сфер (SphereWorld).
                                            Contents
                                              -
                                              Самостоятельная работа 23
                                              7 minutes
                                              Смешивание, туман, сглаживание, отклонение в OpenGL
                                              В лекции рассматривается пример работы со смешиванием.
                                              Contents
                                                -
                                                Самостоятельная работа 9
                                                36 minutes
                                                -
                                                Самостоятельная работа 24
                                                1 hour 42 minutes
                                                Пользовательские компоненты
                                                Рассматриваются этапы разработки компонентов. Выбор базового класса компонента. Создание визуального компонента FirstComponent. Пробное тестирование компонента. Развертывание свойств вложенного объекта компонента. Установка значений свойств компонента по умолчанию. Создание невизуального компонента Planets. Создание невизуального компонента-будильника AlarmClock (тревожные часы) с собственным событием. Добавление в компонент пользовательского события стандартным способом. Тестирование компонента AlarmClock. Добавление в компонент пользовательского события расширенным способом.
                                                Contents
                                                  -
                                                  Самостоятельная работа 25
                                                  3 hours 2 minutes
                                                  Пользовательский интерфейс Windows Forms для C#
                                                  В данной лабораторной работе рассматриваются некоторые воможности интегрированной среды разработки программного обеспечения (IDE - Integrated Development Environment) Visual Studio.NET 2005. Установка пароля на главное окно приложения. Добавление списка для запуска упражнений. Смайлики. Краткое описание части компонентов панели Toolbox. Простой калькулятор. Применение коллекций для предотвращения повторных запусков формы. Встраивание COM-объекта "Windows Media Player" в свое приложение. Добавление к форме других элементов управления.
                                                  Contents
                                                    -
                                                    Самостоятельная работа 26
                                                    1 hour 43 minutes
                                                    Пользовательские элементы управления
                                                    Графический интерфейс пользователя (GUI - Graphics User Interface). Построение элемента управления BeepButton. Переопределение наследуемого от Control виртуального метода диспетчеризации события Click. Проектирование диалогового окна сообщений MyDialogBox. Тестирование пользовательских элементов BeepButton и MyDialogBox. Проектирование музыкальной кнопки SoundButton. Создание компонента блока музыкальных кнопок SoundButtonBox. Подготовка файлов звука к проигрыванию компонентом SoundButtonBox. Тестирование компонента SoundButtonBox. Рисование круглой кнопки.
                                                    Contents
                                                      -
                                                      Самостоятельная работа 27
                                                      2 hours 5 minutes
                                                      Разработка комбинированного компонента
                                                      В данной лабораторной работе приведены упражнения по созданию собственных пользовательских комопонентов. Добавление объектов всплывающей подсказки. Таблица цветов структуры Color. Разработка кнопки ClickmaticButton. Наполнение класса ClickmaticButton функциональностью генерации щелчков мыши. Тестирование генерирующей кнопки ClickmaticButton. Разработка кнопки в стиле полос прокрутки. Тестирование скроллирующей кнопки ArrowButton. Комбинирование элементов в единый компонент NumericScan. Использование компонента NumericScan для управления текстом. Динамическое создание панели управления текстом. Динамическое создание панели представления текста.
                                                      Contents
                                                        -
                                                        Самостоятельная работа 10
                                                        36 minutes
                                                        -
                                                        Самостоятельная работа 28
                                                        2 hours 45 minutes
                                                        Стандартные меню приложений
                                                        В лекции приводятся примеры работы с тремя новыми классами для организации пользовательского интерфейса управления приложением. Простое меню. Меню с флажками. Декларативное создание меню. Программирование меню. Меню с изображениями. Декларативная часть создания меню. Добавление пиктограмм к объектам команд. Загрузка рисунков через локальный файл ресурсов. Назначение рисункам свойств внедряемых ресурсов. Присоединение рисунка к свойству Image элемента меню через стандартный файл глобальных ресурсов проекта. Размещение рисунка в пользовательском файле глобальных ресурсов. Загрузка пиктограммы из файла рисунка во время выполнения. Динамическое присоединение пиктограмм к элементам меню. Создание элементов меню программным способом. Программирование узлов меню верхнего уровня. Программирование команд. Использование списка изображений для хранения пиктограмм меню. Создание файла ресурсов программным способом. Контекстное меню. Создание контекстного меню динамическим способом. Создание линейки контекстных меню декларативным способом.
                                                        Contents
                                                          -
                                                          Самостоятельная работа 29
                                                          8 minutes
                                                          Панели инструментов и строка состояния
                                                          В данной лекции рассматриваются панели инструментов и строка состояния.
                                                          Contents
                                                            -
                                                            Самостоятельная работа 11
                                                            36 minutes
                                                            -
                                                            Самостоятельная работа 30
                                                            55 minutes
                                                            Web-службы
                                                            В данной лекции рассматриваются панели инструментов и строка состояния.
                                                            Contents
                                                              -
                                                              Самостоятельная работа 31
                                                              4 hours 37 minutes
                                                              Стилевое оформление страниц
                                                              В лабораторной работе приведены примеры стилевого оформления сайта. Каскадные таблицы стилей. Внутренние стили inline. Встроенные стили embedded. Внешние стили linked. Управление внешними стилями средствами оболочки. Стилевое оформление страниц. Темы. Простое стилевое оформление страницы с помощью темы. Приоритеты тем и CSS. Именованные оформления элементов управления в теме. Оформления сложных элементов управления. Стилевое оформление рисунков. Комбинирование темы и внешних CSS. Применение общей темы в конфигурационном файле. Переключение тем по выбору пользователя. Мастер-страницы. Применение усложненной мастер-страницы. Создание контекстных страниц для мастер-страницы. Наполнение содержимым контекстных страниц. Управление элементами мастер-страницы из контекстной страницы. Программное переключение мастер-страниц. Многослойное подключение мастер-страниц. Подключение мастер-страницы через конфигурационный файл.
                                                              Contents
                                                                -
                                                                Самостоятельная работа 12
                                                                39 minutes
                                                                -
                                                                Самостоятельная работа 32
                                                                2 hours 26 minutes
                                                                Пользовательские элементы управления
                                                                Пользовательские элементы управления (user control). Специальные серверные элементы. Создание простого пользовательского элемента управления. Регистрация пользовательского элемента на странице. Программирование пользовательского элемента. Порядок генерации событий инициализации. Применение вспомогательных классов при создании сложных пользовательских элементов управления. Доступ из кода Web-страницы к составным компонентам пользовательского элемента управления. Динамическое создание пользовательского элемента управления. Управление динамической загрузкой многих пользовательских элементов управления (портальные каркасы).
                                                                Contents
                                                                  -
                                                                  Самостоятельная работа 33
                                                                  1 hour 17 minutes
                                                                  Навигация по сайту
                                                                  Навигация с использованием карты сайта. Определение карты сайта. Декларативная привязка к карте сайта. Использование мастер-страниц для размещения ссылок. Программное управление картой сайта. Навигация с использованием фреймов.
                                                                  Contents
                                                                    -
                                                                    Самостоятельная работа 34
                                                                    1 hour 42 minutes
                                                                    Многокадровые элементы управления
                                                                    Элемент управления MultiView. Управление работой вкладок. Добавление к MultiView функций навигации. Элемент управления Wizard. Программирование событий элемента управления Wizard. Стили элемента Wizard. Шаблоны элемента Wizard.
                                                                    Contents
                                                                      -
                                                                      Самостоятельная работа 13
                                                                      36 minutes
                                                                      -
                                                                      Самостоятельная работа 35
                                                                      3 hours 1 minute
                                                                      Управление состоянием страниц на клиенте
                                                                      Управление состоянием страниц на клиенте. Состояние вида. Программирование словаря ViewState страницы. Программирование ViewState страницы с применением объекта Hashtable. Восстановление состояния вида элемента списка через коллекцию запроса. Шифрование информации в состоянии вида. Скрытые поля. Строки запроса. Межстраничная обратная отсылка данных. Cookie-наборы. Проверка поддержки механизма cookies клиентом. Сохранение данных в состоянии сеанса. Использование механизма сессий. Хранение данных в состоянии приложения. Хранение данных в статических переменных приложения.
                                                                      Contents
                                                                        -
                                                                        Самостоятельная работа 36
                                                                        1 hour 58 minutes
                                                                        Интерфейс времени проектирования для компонента
                                                                        Разработка компонента с развитым интерфейсом времени проектирования. Простейший интерфейс времени проектирования. Атрибуты как средство дополнительной настройки компонента. Добавление к компоненту пиктограммы, класса дизайнера, смарт-тега. Усовершенствование смарт-тега компонента. Управление контекстным меню этапа проектирования компонента. Исключение свойств и событий из панели Properties. Свойства режима проектирования. Вывод дополнительной надписи на компоненте. Управление действием по умолчанию графического редактора. Прямая обработка очереди сообщений Windows.
                                                                        Contents
                                                                          -
                                                                          Самостоятельная работа 37
                                                                          2 hours 52 minutes
                                                                          Безопасность: аутентификация с помощью форм
                                                                          Основные задачи по защите сайта. Сертификаты. Аутентификация форм. Настройка режима аутентификации форм. Хранение удостоверений в конфигурационном файле. Управление доступом анонимных пользователей. Программное добавление пользователей в конфигурационный файл. Создание страницы регистрации. Хеширование паролей в конфигурационном файле. Закрепление за броузером постоянной аутентификации форм. Создание хранилища удостоверений. Добавление в хранилище БД новых пользователей через утилиту WAT. Страница регистрации при использовании Membership. Административные страницы управления аутентификацией с использованием API Membership. Административная страница создания пользователей в БД. Административная страница удаления пользователей из БД. Административная страница извлечения списков пользователей из БД. Административная страница обновления пользователей в БД. Элементы управления вкладки Login. Административная страница регистрации на базе элемента управления Login.
                                                                          Contents
                                                                            -
                                                                            Самостоятельная работа 14
                                                                            36 minutes
                                                                            -
                                                                            5 hours
                                                                            -