- •Об’єктно-орієнтоване програмування
- •Содержание
- •Тема 1. Понития ооа, ооПр и ооп Лекция 1. Объектная модель и принципы ее организации
- •1. Понития ооа, ооПр и ооп и их отличия от подходов структурного проектирования
- •2. Основные понятия ооп
- •Тема 2. Основы программирования на языке с# .Net Лекция 2. Введение в программирование на с# .Net
- •1. Роль платформы .Net
- •2. Первая программа на c# и основные приемы работы в системе ms Visual Studio
- •3. Структура программы
- •4. Собственные пространства имен
- •Лекция 3. Система типов данных языка с#
- •1. Система типов данных языка с#
- •2. Преобразование типов
- •Лекция 4. Выражения и операторы языка с#
- •1. Выражения
- •2. Операторы
- •2.1. Операторы ввода и вывода
- •2.2. Операторы ветвления
- •2.3. Операторы цикла
- •2.3. Оператор безусловного перехода
- •Лекция 5. Массивы
- •1. Основные понятия
- •2. Одномерные массивы
- •3. Многомерные массивы
- •4. Класс Array
- •5. Класс Random
- •Лекция 6. Структуры и перечисления
- •1. Структуры
- •3. Перечисления
- •Лекция 7. Символы и строки
- •1. Символы char
- •2. Неизменяемые строки string
- •3. Изменяемые строки
- •Лекция 8. Файловая система
- •1. Основные сведения
- •2. Работа с каталогами
- •2.1. Абстрактный класс FileSystemInfo
- •2.2. Класс DirectoryInfo
- •2.3. Класс Directory
- •3. Работа с файлами
- •3.1. Класс Filelnfo
- •3.2. Класс File
- •Тема 3. Принципы парадигмы объектно-ориентированного программирования Лекция 9. Пронципы объектно-ориентированного программирования
- •1. Основные понятия
- •2. Роль инкапсуляции
- •3. Роль наследования
- •4. Роль полиморфизма
- •Лекция 10-11. Классы и объекты
- •1. Основные понятия
- •2. Функциональные элементы класса
- •2.1. Данные: поля и константы
- •2.2. Методы
- •2.3. Конструкторы
- •2.4. Деструкторы
- •2.5. Свойства
- •2.6. Индексаторы
- •3. «Один класс – один файл»
- •Лекция 12-13. Класы коллекций
- •1. Основные понятия
- •2. Класс Stack
- •3. Класс Queue
- •4. Класс ArrayList
- •Тема 4. Инкапсуляция и скрытие информации Лекция 14. Инкапсуляция как средство структурирования систем
- •1. Основные понятия
- •2. Основная концепция инкапсуляции
- •Тема 5. Перегрузка операторов и функций Лекция 15. Модификатор доступа переменных и функций
- •1. Основные понятия
- •2. Примеры использования модификаторов доступа
- •Лекция 16. Перегрузка операторов и функций
- •1. Операции класса
- •2. Унарные операции
- •3. Бинарные операции
- •4. Операции преобразования типов
- •Implicit operator целевой_тип (параметр) //неявное преобразование
- •Тема 6. Наследование и полное использование кода Лекция 17. Основы наследования
- •1. Иерархия классов
- •2. Основы наследования
- •3. Использование защищенного доступа
- •Лекция 18. Вызов базового конструктора
- •1. Наследование конструкторов
- •2. Вызов базового конструктора
- •Тема 7. Многоуровневое наследование. Конфликт имен и потоков классов Лекция 19-20. Многоуровневое наследование и его недостатки
- •1. Многоуровневая иерархия
- •2. Переменные базового класса и производного класса
- •3. Виртуальные методы
- •4. Абстрактные методы и классы
- •Лекция 21. Классы потоков вводв и вывода
- •1. Основные понятия
- •2. Стандартный поток ввода
- •3. Стандартный поток вывода
- •4. Стандартный поток вывода сообщений об ошибках
- •5. Программа StdStreams
- •Лекция 22. Классы потоков для работы с файлами, памятью и сетью
- •1. Класс BufferedStream
- •2. Класс FileStream
- •3. Класс MemoryStream
- •4. Класс NetworkStream
- •5. Класс CryptoStream
- •1. Основы полиморфизма
- •Тема 8. Полиморфизм и виртуальные функции Лекция 23. Основы полиморфизма и преимущества его использования
- •2. Преимущества использования полиморфизма
- •Лекция 24. Динамическое связывание виртуальных методов
- •1. Виртуальные методы
- •2. Вызов базового метода
- •Тема 9. Интерфейсы Лекция 25. Интерфейсы
- •1. Основные понятия
- •2. Пример опредиления интерфейса и работы с ним
- •Лекция 26. Стандартные интерфейсы .Net
- •1. Стандартный интерфейс iComparable
- •2. Перегрузка операций отношения с помощью метода CompareTo
- •3. Стандартные интерфейсы iEnumerable и iEnumerator
- •Тема 10. Объектно-ориентированное программирование Windows-приложений на основе WindowsForms Лекция 27-28. Библиотеки классов реализации функциональных возможностей Windows
- •1. Формы
- •6. Компиляция программы
- •7. События в Windows-приложениях
- •7.1. События мыши
- •Лекция 29. Разработка графических интерфейсов пользователя
- •1. Общтие сведения
- •2. Группы элементов управления
- •Лекция 30-31. Работа с даннями
- •1. Что такое реляционная база данных?
- •2. Модель объектов ado.Net
- •3. Подготовка ado.Net к работе в приложении
- •Лекция 32. Создание пакетов установки
- •1. Общие сведения
- •2. Создание пакетов установки
- •3.Создание простого пакета установки без библиотеки .Net Framework
Лекция 32. Создание пакетов установки
План:
Общие сведения
Создание пакетов установки
Создание простого пакета установки без библиотеки .NET Framework
1. Общие сведения
Для установки на компьютер большинства программ достаточно просто вставить компакт диск с программой в дисковод и, следуя несложным инструкциям, скопировать ее на жесткий диск. В результате мы получаем возможность запускать программу одним из нескольких способов — щелкая на ярлыке на Рабочем столе, выбирая ее группу в меню Пуск или просто дважды щелкая на файле, расширение которого связано с этой программой. Мы не задумываемся, из каких частей состоит программа, как они взаимодействуют, а некоторые пользователи даже не представляют, где эти части находятся. В этой лекции мы научимся создавать дистрибутивы, или пакеты установки, предоставляющие возможность распространять программы с минимумом усилий со стороны конечного пользователя.
2. Создание пакетов установки
Установка программы представляет собой копирование сборок и файлов, необходимых для работы приложения, в определенную папку на компьютере пользователя. При этом также происходит интеграция приложения в операционную систему Windows — добавление иконок на рабочий стол, в меню "Пуск", в контекстное меню правой кнопки мыши. Для слежения за лицензионным использованием программы или сохранением пользовательских настроек приложения следует предусмотреть возможность автоматического внесения изменений в реестр при установке. Если размер программы достаточно велик, файлы подлежат также архивации, и тогда установка программы сопровождается ее извлечением из архива. Первое знакомство пользователя с вашим приложением начинается именно с установки, и поэтому даже если сама программа очень хорошая, но ее трудно устанавливать, большинство пользователей откажутся от ее использования. Установка приложения должна отвечать следующим критериям:
Запуск программы установки происходит один раз.
Программа установки имеет название Setup.exe или Install.exe, и ее легко найти среди файлов установки.
Если программа распространяется на CD, то вставка диска в привод приводит к автоматическому запуску установки либо к появлению заставки, на которой при переходе по гиперссылке начинается установка.
Каждый шаг установки предполагает оптимальный вариант по умолчанию.
Информация, показанная при установке, необходима и достаточна, и обращение к файлу Readme не является обязательным.
Одна программа установки работает на всех поддерживаемых приложением версиях операционной системы.
Практически все крупные пакеты, такие как Microsoft Office или Adobe Photoshop, отвечают этим требованиям.
Распространение приложений, написанных на языке C#, одном из языков платформы .NET, обладает важной особенностью: для работы программы необходимо наличие установленной в операционной системе библиотеки .NET Framework. Достаточно однократного включения в пакет установки этой библиотеки для последующей установки самих приложений платформы .NET в чистом виде, т. е. только файлов, созданных непосредственно вами. Проблема в том, что размер библиотеки .NET Framework и дополнительных утилит может достигать 50-70 Мб, что является одной из причин затруднительного распространения приложений через Интернет. На сегодняшний день .NET Framework 1.1 встроен только в операционную систему Windows 2003 Server family. Однако через несколько лет, с выходом и массовым распространением Windows Longhorn можно ожидать частичного решения этой проблемы — новая версия операционной системы будет содержать в себе библиотеку .NET Framework.
Существует несколько способов переноса готового приложения на компьютер пользователя.
Так называемая установка XCOPY – это простое копирование папки с приложением. Программа будет работать, если на компьютере установлен .NET Framework и ключи реестра не используются. Приложение может содержать только частные и подписанные строгим именем сборки. При подобной установке не происходит автоматической генерации иконок на рабочем столе или меню "Пуск". Для удаления приложения достаточно просто удалить его папку. Этот способ установки неприменим для распространения коммерческих приложений.
Среда Visual Studio .NET предоставляет возможность создания пакетов дистрибутивов, позволяющих пользователю с минимумом усилий устанавливать приложение на свой компьютер. Получаемый в результате файл Windows Installer 2.0 позволяет установить, изменить или удалить приложение с компьютера пользователя. С помощью Windows Installer можно также управлять глобальным КЭШем сборок.
Для распространения одной сборки используются файлы-кабинеты (.cab – files.). Cab-файл должен иметь то же самое имя, что и сборка, находящаяся в нем. Например, если cab-файл содержит сборку Assembly.dll, то он должен называться Assembly.cab. После того как вы создадите cab-файл, его можно будет загрузить используемым приложением, указав его адрес в теге codeBase файла конфигурации.
Итак, существует три вида распространения сборок и приложений. С установкой XCOPY вы сталкивались при использовании готовых приложений с диска, прилагаемого к книге, — копировали их на свой компьютер и запускали exe-файл из папки bin\Debug. Распространение одной сборки — задача, встречаемая при создании патчей (дополнений) к программам и технически выполняемая достаточно просто. Наибольший интерес представляет создание полных пакетов установки, к рассмотрению которого мы и приступим.
