Автоматизированное рабочее место библиотекаря
Основные элементы среды разработки Visual Studio Integrated Development Environment (IDE - интегрированная среда разработки) C# при создании на языке C# приложений с графически интерфейсом. Способы построения панели инструментов и контекстного меню.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.05.2013 |
Размер файла | 5,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
· элемент управления календарь 1, задав свойство name = dateTimePickerBirthday, а свойство Format = Short ;
· элемент управления календарь 2, задав свойство name = dateTimePickerFirstDate, а свойство Format = Short.
Рис. 12.1 Прототип модифицированной формы FormEmployee
Шаг 2. Для привязки элементов управления календарем dateTimePickerBirthday и dateTimePickerFirstDate к DataSetEmployee в методFormEmployee_Load необходимо добавить следующий код:
dateTimePickerBirthday.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dsEmployee, "Employee.Birthday"));
dateTimePickerFirstDate.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dsEmployee, "Employee.FirstDate"));
Шаг 3. Отредактируйте метод DisplayReadOnly с учетом добавления на форму новых элементов управления dateTimePickerBirthday иdateTimePickerFirstDate.
Шаг 4. Проведите компиляцию и тестирование приложения. В результате выполнения программы экранная форма должна иметь вид, аналогичный, представленному на рисунке 12.2.
Рис. 12.2 Модифицированная экранная форма приложения "Учет сотрудников"
Формирование однотипного представления информации
Для детального представления информации о сотруднике в разработанной форме используются элементы управления textBox, comboBox иdateTimePicker. В режиме "только для чтения" элементы управления отображают информацию по-разному (рисунок 12.2). Так для элементов управления comboBox и dateTimePicker текст отображается более блекло, по сравнению с элементами управления textBox. С целью унификации отображения информации для конечного пользователя проведем модификацию формы FormEmployee.
Шаг.5. Изменим отображение должности сотрудника. Для этого добавим к форме элемент управления textBox (свойство name = textBoxJobRole) и расположим его на форме так, что бы он закрывал имеющийся на форме элемент управления comboBoxJobRole (рисунок 12.3).
Рис. 12.3 Экранная форма с добавленным элементом textBoxJobRole
Шаг.6. Добавленный элемент управления textBoxJobRole должен отображаться на форме в режиме "только для чтения" и содержать информацию о должности сотрудника. Введем изменения в метод DisplayReadOnly для управления режимом отображения элементом управления textBoxJobRole (см. лабораторную работу 7).
Шаг.7. Должность сотрудника в разработанной программе отображается элементом управления comboBoxJobRole, который связан сDateSet - dsEmployee. Синхронизацию отображения информации на элементах управления comboBoxJobRole и textBoxJobRoleосуществим через событие "изменение выбранного индекса в списке" - SelectedIndexChanged элемента управления comboBoxJobRole. Листинг обработчика данного события имеет следующий вид.
private void comboBoxJobRole_SelectedIndexChanged(object sender, EventArgs e)
{
textBoxJobRole.Text = comboBoxJobRole.Text;
}
Шаг.8. Откомпилируйте программу и протестируйте правильность отображения информации в элементе управления textBoxJobRole.
Шаг.9. В режимах редактирования и создания новой записи, если вводится новое значение должности, должен отображаться элемент управления comboBoxJobRole, но только на момент ввода данных. При этом необходимо обеспечить возможность ввода должности из списка имеющихся в справочнике системы должностей. Это необходимо обеспечить при переходе курсора в поле ввода должности сотрудника. Для реализации такого режима сформируем событие Click элемента управления textBoxJobRole. Для события Click добавим в текст программы метод обработчика события:
private void textBoxJobRole_Click(object sender, EventArgs e)
{ if (!textBoxJobRole.ReadOnly)
{ textBoxJobRole.Visible = false;
comboBoxJobRole.Visible = true;
comboBoxJobRole.Focus(); }
}
Шаг.10. После ввода должности сотрудника из списка comboBoxJobRole и перехода к другому элементу управления формы необходимо на форме опять вывести элемент textBoxJobRole. Данные действия выполним по события Leave (покинуть) для элемента comboBoxJobRole. Обработчик события Leave имеет следующий вид:
private void comboBoxJobRole_Leave(object sender, EventArgs e)
{
textBoxJobRole.Visible = true;
comboBoxJobRole.Visible = false;
}
Шаг.11. Откомпилируйте программу и протестируйте правильность отображения информации в элементах управления textBoxJobRole иcomboBoxJobRole.
Шаг.12. Аналогичные изменения сделайте для отображения информации по статусу и уровню доступа сотрудника. Для этого добавьте на форму FormEmployee элементы управления textBoxStatus и textBoxAccess.
Шаг.13. При изменении отображения информации о времени приема сотрудника на работу необходимо добавить элемент управленияtextBoxBirthday и выполнить действия, аналогичные проведенным ранее для отображения информации по должности сотрудника за одним исключением. Элемент управления dateTimePickerBirthday содержит информацию о дате и времени, а в элементе textBoxBirthdayнеобходимо отображать только дату в текстовом формате. Формирование текстовой даты для элемента управления textBoxBirthday можно осуществить используя свойства Day, Month и Year объекта класса DateTime. С учетом вышеизложенного, листинг обработчика события "изменение значения величины Дата-Время" - ValueChanged будет иметь следующий вид:
private void dateTimePickerBirthday_ValueChanged(object sender, EventArgs e)
{
DateTime dt = dateTimePickerBirthday.Value;
textBoxBirthday.Text = " " + dt.Day + "." + dt.Month + "." + dt.Year;
}
Шаг.14. Откомпилируйте программу и протестируйте работу приложения. В режиме просмотра экранная форма должна иметь вид, аналогичный, приведенному на рисунке 12.4.
Рис. 12.4 Экранная форма в режиме просмотра
При редактировании даты приема сотрудника на работу экранная форма должна иметь вид, аналогичный, приведенному на рисунке 12.5.
Рис. 12.5 Экранная форма в режиме редактирования
13. Лабораторная работа: Интеграция отчетов в Windows-приложения
Цель работы: Освоить технологию интегрирования и просмотра отчетов из Windows -приложений, а также настройки отчетов на этапе выполнения с использованием развитой объектной модели.
Общие сведения
Планирование приложения. Интеграция отчетов представляет собой простой способ добавления значимости приложению, она может стать важной услугой, предоставляемой вашим приложением. Прежде чем приступить к внедрению технологии .NET Crystal Reports в среду разрабатываемого Windows -приложения, нужно четко спланировать свои действия.
Прежде всего, необходимо располагать отчетом (или набором отчетов), с которым приложение будет работать. Необходимо составить план, как эти отчеты будут доставляться пользователям и в каких формах они должны быть представлены. В рамках среды Crystal Reports.NET реализован модуль просмотра с развитыми функциональными возможностями, который может быть вставлен в Windows -форму и использоваться для просмотра отчетов. Для каждого модуля просмотра разработана подробная объектная модель, позволяющая задавать источники отчетов, внешний вид самих модулей просмотра и устанавливать действия в ответ на различные события. Большинство приложений может использовать единственную Windows -форму, содержащую модуль просмотра Crystal Report Viewer, и просто передавать ему такие свойства, как источник данных для отчета и параметры настройки модуля просмотра. Подобная возможность позволяет творчески подходить к решению задачи выбора параметров настройки, которые в полной мере учитывают требования конечных пользователей. Параметры настройки модуля просмотра и предпочтения пользователя (или групп пользователей) можно хранить в специальной таблице или в XML -файле и во время просмотра отчета просто их активизировать.
Кроме того, можно задавать специальные формулы выбора записей для различных групп пользователей, предоставляя им доступ только к данным, которые относятся к сфере их интересов. Есть возможность также строить специализированные пользовательские интерфейсы, позволяющие пользователям задавать и сохранять параметры настройки для применения в будущем, в том числе предпочтения, связанные с печатью и экспортом, например, часто используемые адреса электронной почты.
В конечном итоге в основе интеграции отчетов должны лежать пользовательские требования, однако то, как все возможности будут реализованы в программном продукте, - это предмет забот разработчика.
Создание отчета
В лабораторной работе будет использоваться одна форма для демонстрации различных особенностей интеграции отчета с Winsdows -приложением.
Выбор корректной объектной модели. Для случая Windows -приложений на выбор предоставляются две различные объектные модели, в зависимости от конкретных потребностей. Первая из них, объектная модель модуля просмотра Windows -форм Crystal Reports Windows Forms Viewer (CrystalDecisions.Windows.Forms), содержит все функциональные средства, необходимые для просмотра отчета в модуле Crystal Reports Windows Forms Viewer. В их число входят средства, позволяющие устанавливать регистрационную информацию базы данных, передавать параметры и формулы выбора записей, управлять внешним видом модуля просмотра и осуществлять просмотр отчетов, включая отчеты, доступные через Web -службы формирования XML -отчетов (XML Report Web Services ).
Используя эту объектную модель, можно удовлетворить большинство базовых требований встраивания отчетов в приложения, однако возможности управления самим отчетом отсутствуют. Это значит, что нельзя изменить формулу выбора записей для подчиненных отчетов, которые отображаются в рамках главного отчета, равно как и нельзя получить доступ к модифицируемым элементам отчета, подобным группам и полям сортировки и формул.
Для достижения полного контроля над отчетом и содержащимися в нем объектами и средствами следует отдать предпочтение объектной модели машины Crystal Reports Engine (CrystalDecisions.CrystalReports.Engine). Использование Crystal Reports Engine позволяет должным образом изменять даже наименьшие элементы отчета.
Важно отметить, что объектная модель машины Crystal Reports Engine не является автономной - она не имеет встроенных средств просмотра отчетов, и для собственно просмотра полагается на услуги модуля Crystal Reports Windows Forms Viewer.
Компания Crystal Decisions рекомендует использовать эти две объектные модели так, чтобы области их действия не перекрывались, и не применять свойства и методы обеих моделей одновременно. Например, если в рамках отчета устанавливается значение некоторого поля параметров через объектную модель Crystal Reports Engine, то не следует пытаться присваивать значение другому полю параметров с использованием объектной моделиCrystal Reports Windows Forms Viewer. Необходимо выбирать одну объектную модель, учитывающую все требования, и придерживаться этой модели на протяжении всего процесса разработки отчета.
Пространство имен CrystalDecisions.Windows.Forms состоит из некоторого числа классов, которые обеспечивают реализацию функциональных возможностей, специфических для просмотра отчетов.
Для добавления нового отчета в приложение необходимо выбрать из меню команду Project | Add New Item(Проект | Добавить НОВЫЙ элемент) и Crystal Report из списка доступных шаблонов (рисунок 13.1).
Рис. 13.1 Окно добавления в проект отчета
Введите CryReportEmployee.rpt в поле имени и щелкните кнопкой мыши на Add (Добавить), чтобы включить новый отчет в проектируемое приложение. Создается специальная вкладка для этого отчета, которая во время построения отчета позволяет обращаться к интегрированному конструктору отчетов Project Designer и открывается окно галереи отчетов Crystal Report Gallery (рисунок 13.2).
В данном окне будем использовать помощник построения отчетов Reports Wizard (радиокнопка Using the Report Wizard в группе переключателей Create a New Crystal Report Document -Создать новый документ Crystal Reports). Из доступных экспертов выберем Standard (Стандартный отчет), который является наиболее общим. Данный эксперт позволяет строить колоночные отчеты, которые обладают такими функциональными возможностями, как группирование, сортировка, суммирование. Этот эксперт позволяет включать в отчет диаграммы, использовать заданное множество предопределенных стилей, фильтров для записей, он содержит такие современные аналитические средства, как TopN, BottomN (например, отчеты типа "Первые 10" или "Последние 10").
Рис. 13.2 Диалоговое окно галереи Crystal Report Gallery
Для вызова эксперта стандартных отчетов необходимо выбрать в списке Choose an Expert (Выберите эксперт) элемент Standard (Стандартный отчет) в окне Crystal Report Gallery (рисунок 13.2) и щелкнуть на кнопке "ОК".
Далее открывается окно Data помощника Standard Report Creation Wizard. (рисунок 13.3)
Рис. 13.3 Диалоговое окно эксперта стандартных отчетов
Выберите таблицы Empoyee и JobRole (рисунок 13.4).
Рис. 13.4 Диалоговое окно эксперта стандартных отчетов с добавленными таблицами
При вставке в отчет несколько таблиц, в окне Standard Report Creation Wizard появляется вкладка Link (Связи), которая позволяет задать (просмотреть) способ объединения этих таблиц или представлений (рисунок 13.5).
Рис. 13.5 Вкладка Link диалогового окна помощника стандартных отчетов
Далее необходимо выбрать в таблицах поля, которые будут отображаться в создаваемом отчете. Необходимо перейдите на вкладку Fields (Поля) и с помощью кнопки "Далее" сформировать в списке Fields to Display список полей, включаемых в отчет (рисунок 13.6). Для этого нужно выбрать то или иное поле, выделив его в левом списке, а затем при помощи кнопки со стрелками переместить его в список, находящийся справа.
Поле отображается в списке с использованием нотации TableName.FieldName (ИмяТаблицы.ИмяПоля), и если требуется просмотреть содержимое или тип некоторого поля, можно воспользоваться кнопкой Browse Data(Просмотр) для вывода содержимого этого поля. Кроме того, доступна также кнопка Find Field (Найти), с помощью которой можно найти заданное поле в длинных списках полей.
Рис. 13.6 Выбранные поля для включения в отчет
В разрабатываемый в настоящий момент отчет мы помещаем следующие поля.
· EmployeeSurName (фамилия сотрудника);
· EmployeeName (имя сотрудника);
· EmployeePatronymic (отчество сотрудника);
· EmployeeRoleName (должность сотрудника);
· EmployeeStatus (статус сотрудника);
· EmployeeAccess (уровень доступа сотрудника);
· NetName (сетевое имя);
· Birthday (дата рождения);
· FirstDate (дата приема на работу).
Вместе с каждым полем в отчет добавляется и соответствующий заголовок, который помещается в заголовок страницы. В текстовом поле, помеченном как Column Heading (Заголовок столбца), можно изменить заголовок, установленный по умолчанию (обычно это имя поля), либо же можно отредактировать все заголовки позже, в окне конструктора отчетов.
Последний шаг помощника Standard Report Creation Wizard предполагает выбор конкретного стиля разрабатываемого отчета на вкладке Report Style (рисунок 13.7).
Рис. 13.7 Диалоговое окно Report Style помощника Standard Report Creation Wizard со списком доступных стилей отчета
Завершающий шаг работы в эксперте Standard Expert заключается в выполнении щелчка на кнопке Готово, в результате чего проектируемый отчет открывается в конструкторе Report Designer, который является частью интегрированной среды разработки Visual Studio .NET (рисунок 13.8).
Рис. 13.8 Окно конструктора Report Designer
Полученный отчет необходимо сохранить, щелкнув кнопкой мыши на пиктограмме Save (Сохранить) или Save All(Сохранить все) в среде Visual Studio .NET.
Отредактируйте шапку отчета в соответствии с рисунком 13.9.
Рис. 13.9 Окно конструктора с отредактированным отчетом
Интеграция отчета и Windows-приложения
Создайте в проекте новую форму и дайте ей имя FormReport. СвойствуText данной формы присвойте значение "Отчет". Для предварительного просмотра построенного отчета к форме потребуется добавить модуль просмотра Crystal Reports Viewer, в котором в качестве источника отчета ( Report Source ) следует указать проектируемый отчет.
Откройте файл формы FormReport.cs в режиме конструктора. Выберите форму и назначьте свойству Title (Заголовок) в окне свойств значение "Отчет".
Перетащите на форму элемент CrystalReportViewer из разделаCrystalReport окна инструментов Toolbox - (рисунок 13.10).
Рис. 13.10 Окно Toolbox c элементом CrystalReportViewer
Измените значение свойства привязки Dock (Стыковка) на Fill (Заполнить), чтобы модуль просмотра отчетовCrystalReportViewer заполнил всю страницу (рисунок 13.11). Можно также определить поля вокруг пристыкованного модуля просмотра, соответствующим образом установив набор свойств в группе DockPadding(Заполнение стыковки), в результате чего вокруг модуля просмотра появится заданное обрамление в виде пустого пространства.
Привязка созданного отчета к модулю просмотра отчетов осуществляется путем добавления к формеFormReport.cs компонента ReportDocument. Встраиваемые в приложение отчеты могут быть нетипизированные и строго типизированные.
Рис. 13.11 Внешний вид формы с модулем просмотра отчетов
Рис. 13.12 Окно Toolbox c элементом ReportDocument
В результате этих действий будет выведено диалоговое окно (рисунок 13.13), с выпадающим списком всех доступных отчетов, которые были добавлены в приложение. Необходимо выбрать отчет CryRepEmployee, что приведет к созданию документа строго типизированного отчета.
Рис. 13.13 Создание строго типизированного отчета с использованием окна выбора вида компонента ReportDocument
Подготовительные работы по созданию модуля отчета в проекте на этом закончены.
Теперь необходимо вызвать отчет при загрузке формы FormReport.
Для этого необходимо в классе FormReport объявить и создать объекты классов DataSetEmployee, EmployeeTableAdapter, JobTitleTableAdapter и создать метод EmployeeFill для заполнения данными объектDataSet из базы данных (см. лабораторную работу 9).
Далее необходимо при загрузке формы FormReport заполнить данными DataSet, задать источник данных для объекта crystalReportEmployee1 класса ReportDocument и источник отчета для объекта crystalReportViewer1класса CrystalReportViewer. Код метода FormReport_Load приведен ниже.
private void FormReport_Load(object sender, EventArgs e)
{
EmployeeFill();
crystalReportEmployee1.SetDataSource(dsEmployee);
crystalReportViewer1.Refresh();
crystalReportViewer1.ReportSource = crystalReportEmployee1;
}
После запуска созданного приложения на выполнение и загрузки формы модуль просмотра Crystal Report Viewerформирует и отображает отчет, указанный в свойстве ReportSource.
Для подключения формы FormReport к приложению в меню формы FormEmployee необходимо к пункту меню"Отчет" добавить подпункт "По всем сотрудникам", которому присваивается имя reportToolStripMenuItem2 (рисунок 13.14).
Рис. 13.14 Добавление подпункта меню "По всем сотрудникам" формы FormEmployee
В текст программы класса FormEmployee.cs необходимо добавить код обработчика события, возникающего при выборе подпункта меню "По всем сотрудникам". По данному пункту меню должен быть создан объект класса FormReport и выведено окно на экран дисплея.
После трансляции и запуска программы на выполнение при выборе пункта меню Отчет | По всем сотрудникам будет сформирован отчет "Список сотрудников" аналогичный, приведенному на рисунке 13.15.
Рис. 13.15 Отчет "Список сотрудников"
14. Лабораторная работа: Манипулирование строками соединений с источником данных
Цель работы: Освоить технологию создания соединения приложения с источником данных, используя конфигурационный файл.
Общие сведения
Для получения доступа к базе данных необходимо задать параметры соединения. Строка соединения хранится в конфигурационном файле app.config. Для разработанного приложения конфигурационный файл имеет следующий вид:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Employee"
connectionString="Data Source=MYHOME-8834E210;Initial Catalog=Employee;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
В строке соединения ( connectionStrings ) задается имя соединения ( name ), в нашем случае - "Employee", собственно строка соединения ( connectionString ), в нашем случае - "Data Source=MYHOME-8834E210;Initial Catalog=Employee;Integrated Security=True" и поставщик для клиента базы данных ( providerName ), в нашем случае - "System.Data.SqlClient".
В строке соединения используются следующие параметры:
· Data Source - имя сервера базы данных, с которым устанавливается соединение;
· Initial Catalog - имя (экземпляр) базы данных, с которым устанавливается соединение;
· Integrated Security - параметр, определяющий режим аутентификации ( true - соответствует Windows Aunthentication ) для установления соединения с базой данных.
При разработке приложения в процессе создания класса DataSet строка соединения была автоматически сгенерирована в коде класса DataSetEmployee. Такой способ задания соединения с базой данных является целесообразным на этапах разработки и тестирования функциональности приложения. При развертывании приложении у заказчика такой способ хранения строки соединения с базой данных является неэффективным, так как требует перекомпиляции приложения. Более целесообразным является программное считывание информации о параметрах соединения с базой данных из конфигурационного файла.
Манипулирование строками соединений
Для задания строки соединения создадим метод GetDatabaseConnection, который возвращает экземпляр классаSqlConnection.
private SqlConnection GetDatabaseConnection(string name)
{
SqlConnection conn = null;
ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[name];
if (setting != null)
try
{
conn = new SqlConnection(setting.ConnectionString);
/// Проверка соединения с сервером базы данных
conn.Open();
conn.Close();
}
catch (SqlException ex)
{
MessageBox.Show("Прерывание при соединении с базой данных:\n\n
Проверьте строку соединения в конфигурационном файле", "Предупреждение!",
MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
conn = null;
}
else
{
MessageBox.Show("Отсутствует соединение с базой данных
\n\n Проверьте имя строки соединения в конфигурационном файле",
"Предупреждение!", MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1);
}
return conn;
}
В данном коде используются классы ConnectionStringSettings и ConfigurationManager из пространства именSystem.Configuration. Данное пространство имен необходимо подключить к проекту. Для этого в главном меню выберите пункт Project / Add Reference (рисунок 14.1) или в окне Solution Explorer щелкните правой кнопкой мыши на пункте Reference (рисунок 14.2).
Рис. 14.1 Выбор режима добавления ссылки на новое пространство имен из главного меню
Рис. 14.2 Выбор режима добавления ссылки на новое пространство имен из контекстного меню
В окне Add Reference выберите пространство имен System.Configuration и, нажав кнопку OK, добавьте ссылку в проекте на него (рисунок 14.3).
Рис. 14.3 Окно Add Reference добавления ссылок в проект
Кроме того, необходимо в файле FormEmployee.cs добавить спецификацию пространства имен System.Configuration (рисунок 14.4).
Рис. 14.4 Спецификация пространства имен System.Configuration в файле FormEmployee.cs
В методе GetDatabaseConnection вначале объявляется экземпляр conn класса SqlConnection. Далее читается раздел именованной строки соединения (с этой целью используется класс ConnectionStringSettings) из конфигурационного файла. Экземпляру setting присваивается значение строки соединения с помощью свойства ConnectionStrings статического класса ConfigurationManager.
Для корректной работы приложения необходимо проверить правильность полученной информации из конфигурационного файла. При проверке сначала анализируется сформирована ли какая-нибудь строка соединения if (setting != null), а затем - корректность сформированной строки
try
{ conn = new SqlConnection(setting.ConnectionString);
conn.Open();
conn.Close();}
catch (SqlException ex)
{ MessageBox.Show("Прерывание при соединении с базой данных:\n\n
Проверьте строку соединения в конфигурационном файле", "Предупреждение!",
MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
conn = null;}
После добавления в код класса FormEmployee метода GetDatabaseConnection необходимо провести модификацию приложения. Во-первых, в коде класса FormEmployee необходимо объявить экземпляр conn класса SqlConnection. Во-вторых, требуется модификация конструктора класса.
public FormEmployee()
{
InitializeComponent();
bmEmployee = this.BindingContext[dsEmployee, "Employee"];
bmEmployee.PositionChanged +=new EventHandler(BindingManagerBase_PositionChanged);
conn = GetDatabaseConnection("Employee");
if (conn == null)
{ Application.Exit(); }
else {
daEmployee.Connection = conn;
daJobTitle.Connection = conn; }
}
В приведенном коде добавленные строки выделены. Модификация конструктора класса FormEmployee приводит к тому, что экземпляр соединения с базой данных conn задается с помощью метода GetDatabaseConnection. Затем полученное соединение передается свойству Connection адаптеров daEmployee и daJobTitle. Если экземпляр соединения с базой данных conn не сформирован, то работа приложения завершается.
При выполнении приложения, если не найдена в конфигурационном файле именованная строка соединения, то выдается предупреждение, приведенное на рисунке 14.5, а в случае неправильной строки соединения выдается предупреждение, приведенное на рисунке 14.6.
Рис. 14.5 Предупреждение об отсутствии именованная строка соединения
Рис. 14.6 Предупреждение об ошибке в строке соединения
15. Лабораторная работа: Развертывание приложения
Цель работы: Освоить технологию создания инсталляционных программ Windows-приложений для развертывания созданного приложения.
Общие сведения
После того, как исходный код приложения откомпилирован и завершено тестирование необходимо создать инсталляционный файл для развертывания приложения на компьютере пользователя.
Visual Studio 2005 позволяет создавать инсталляционные программы для приложений. Для этого предусмотрено шесть типов проектов инсталяторов:
· Setup Project - используется для инсталляции клиентских приложений, приложений среднего слоя, а также приложений, запускаемых как службы Windows;
· Web Setup Project - используется для инсталляции Web-ориентированных приложений;
· Merge Module Project - создает модули слияния (merge modules), которые могут быть использованы с другими приложениями, основанными на технологии Windows Installer;
· САВ Project - создает cab-файлы для распространения с применением старых технологий развертывания;
· Setup wizard - помощник в создании проекта развертывания;
· Smart Device САВ Project - САВ-проект для PocketPC, Smartphone и других СЕ-приложений.
Windows Installer - это служба, управляющая инсталляцией, обновлением, восстановлением и удалением приложений в большинстве операционных систем семейства Windows. Эта служба является частью Windows ME,Windows 2000 и Windows XP, а также доступна для Windows 95, Windows 98 и Windows NT 4.0. Текущая версияWidows Installer - 2.0.
Windows Installer ведет базу данных инсталлированных приложений. Когда приложение должно быть деинсталлировано, с помощью этой базы можно легко найти и удалить настройки реестра, которые были добавлены, файлы, которые были скопированы на жесткий диск, а также пиктограммы рабочего стола и менюStart (Пуск). Если определенный файл все еще используется другим приложением, то инсталлятор оставит его на диске, так что использующее его приложение не разрушится. База данных также обеспечивает возможность восстановления. Если настройки реестра или DLL -библиотеки, ассоциированные с приложением, были повреждены или непреднамеренно удалены, инсталляцию можно восстановить. Во время восстановления инсталлятор читает в своей базе информацию о последней инсталляции и повторяет ее.
Проекты развертывания в Visual Studio 2005 дают возможность создавать пакеты для Windows Installer. Проекты развертывания предоставляют доступ к большей части того, что необходимо сделать, чтобы инсталлировать определенное приложение.
Создание инсталлятора
При разработке приложения использовалась отладочная версия проекта (Debug), в которой присутствовал дополнительный код для отладки. Инсталлятор приложения должен создаваться для серийного выпуска приложения (Release). Для создания серийного выпуска откроем проект приложения и в окне свойств проекта для пункта построителя (Built) изменим свойство конфигурации (Configuration ) на Active (Release) (рисунок 15.1). Далее необходимо провести компиляцию и тестирование приложения.
Рис. 15.1 Установка свойства проекта "Серийный выпуск"
Для развертывания проекта приложения Project_К4И_01 создадим отдельный проект развертывания SetupEmployee (рисунок 15.2).
Рис. 15.2 Создание проекта развертывания
В результате откроется окно создаваемого проекта инсталляции приложения (рисунок 15.3).
Рис. 15.3 Окно проекта развертывания
Если в окне Solution Explorer щелкнуть на проекте, то в окне Properties (Свойства) отобразится список свойств (рисунок 15.4).
Рис. 15.4 Свойства проекта развертывания
Эти свойства будут отображаться во время инсталляции приложения. Некоторые из них также будут отображаться в приложении панели управления Add/Remove Programs (Установка и удаление программ). Поскольку большинство из этих свойств видимы пользователю в процессе инсталляции (или когда он посмотрит на инсталляцию в окне Add/Remove Programs), их правильная установка придаст приложению профессиональный вид. Список этих свойств весьма важен, если планируется коммерческая поставка приложения. В таблице 15.1 приведены свойства и значения, которые необходимо ввести при создании проекта инсталляции.
Таблица 15.1. Свойства и значения для проекта установки
Свойства проекта |
Описание |
|
AddRemove, ProgramsIcon |
Пиктограмма, появляющаяся в диалоговом окне Add/Remove Programs (Установка и удаление программ). |
|
Author |
Автор приложения. Обычно это свойство совпадает с производителем ( Manufacturer ). Отображается на странице Summary (Сводка) диалогового окна Properties (Свойства) пакета msi, а также в поле Contact (Контакт) страницы SupportInfo диалогового окнаAdd/Remove Programs. |
|
Discription |
Поле текста свободного стиля, описывающее приложение или инсталлированные компоненты. Эта информация отображается на странице Summary диалогового окнаProperties пакета msi, а также в поле Contact страницы SupportInfo диалогового окнаAdd/Remove Programs. |
|
DetectNewer, InstalledVersion |
Булевское значение. Если установлено в true, проверяет, не установлена ли уже на машине более новая версия приложения. Если это так, процесс инсталляции останавливается. |
|
InstallAllUsers |
Булевское значение. Установка в true означает необходимость инсталляции для всех пользователей компьютера. Установка в false обеспечивает доступ к приложению только текущему пользователю. |
|
Keywords |
Ключевые слова, которые могут быть использованы для поиска msi -файла на целевом компьютере. Эта информация отображается на странице Summary диалогового окнаProperties пакета msi. |
|
Localization |
Локальная настройка, используемая для строковых ресурсов и установок реестра. Влияет на пользовательский интерфейс инсталлятора. |
|
Manufacturer |
Наименование компании-производителя приложения или компонента. Обычно это та же информация, что указана и в свойстве Author. Отображается на странице Summaryдиалогового окна Properties пакета msi, а также в поле Publisher (Издатель) страницыSupportInfo в диалоговом окне Add/Remove Programs. Используется как часть пути инсталляции по умолчанию для данного приложения. |
|
ManufacturerURL |
URL Web -сайта, связанного с инсталлируемым приложением или компонентом. |
|
PostBuildEvent |
Команда, исполняемая после окончания процесса построения. |
|
PreBuildEvent |
Команда, исполняемая перед началом процесса построения. |
|
ProductCode |
Строковый идентификатор GUID, уникальный для данного приложения или компонента.Windows Installer использует это свойство, чтобы идентифицировать приложение для последующих обновлений или инсталляций. |
|
ProductName |
Имя приложения. Используется для описания приложения в диалоговом окне Add/Remove Programs, а также как часть пути инсталляции по умолчанию данного приложения: С: \Program Files\Manuf acturer\ProductName |
|
Remove Previous, Versions |
Булевское значение. Если установлено в true, то проверяет наличие на компьютере предыдущей версии приложения. Если она есть, то старая версия деинсталлируется перед тем, как начать инсталляцию новой. Это свойство использует Productcode и UpgradeCodeдля определения того, должна ли выполняться деинсталляция. UpgradeCode должен быть тем же, ProductCode - должен отличаться. |
|
RunPostBuildEvent |
Когда должно запускаться событие PostBuildEvent. Варианты: при успешном построении проекта либо всегда. |
|
SearchPath |
Строка, представляющая путь поиска зависимых сборок, файлов или модулей слияния. Используется, когда инсталляционный пакет собран на машине разработчика. |
|
Subject |
Дополнительная информация относительно приложения. Эта информация отображается на странице Summary диалогового окна Properties пакета msi. |
|
SupportPhone |
Телефонный номер службы поддержки приложения или компонента Эта информация отображается в поле Support Information (Информация о поддержке) страницы SupportInfoдиалогового окна Add/Remove Programs. |
|
SupportURL |
URL службы поддержки приложения или компонента. Эта информация отображается в полеSupport Information страницы SupportInfo диалового окна Add/Remove Programs. |
|
TargetPlatform |
Поддержка 32-разрядной или 64-разрядной версий Windows. |
|
Title |
Заголовок инсталлятора. Отображается на странице Summary диалогового окна Propertiesпакета msi. |
|
UpgradeCode |
Строковый GUID, представляющий идентификатор различных версий одного и того же приложения. UpgradeCode не должен меняться для разных версий или разных языковых версий приложения. Используется DetectNewerInstalledVersion иRemovePreviousVersion. |
|
Version |
Номер версии инсталлятора, cab -файла или модуля слияния. |
Для добавления сборок (в данном примере единственная сборка, которую необходимо добавить - основная исполняемая программа ( Project_K4И_01.exe ) необходимо щелкнуть правой кнопкой мышки на проекте вSolution Explorer, либо выбрать команду меню Project/Add (Проект/Добавить), которая имеет четыре опции:
· Project Output - выходные данные проекта;
· File (Файл) - используется для добавления текстового файла readme или любого другого файла, не являющегося частью процесса сборки;
· Merge Module (Модуль слияния) - модуль слияния, созданный отдельно;
· Assembly (Сборка) - эту опцию следует использовать для выбора сборки, являющейся частью инсталляции.
В нашем случае выберем Assembly (рисунок 15.5).
Рис. 15.5. Добавление сборки в проект развертывания
Появится диалоговое окно Component Selector (Выбор компонентов). Пролистаем до папки \bin\releaseсозданного ранее приложения и выберем - Project_K4И_01.exe, затем щелкнем на кнопке ОК (рисунок 15.6).
Рис. 15.6 Выбор приложения проекта развертывания
После этого увидим Project_K4И_01.exe в Solution Explorer проекта развертывания. В разделе Detected Dependencies (Обнаруженные зависимости) увидим, что Visual Studio опросил Project_K4И_01.exe на предмет сборок, которых он зависит - в данном случае Microsoft .NET Framework включен автоматически (рисунок 15.7).
Рис. 15.7 Окно проекта развертывания c добавленной сборкой
В общем случае, если приложение состоит из нескольких сборок необходимо продолжать этот процесс до тех пор, пока все сборки приложения не будут зарегистрированы в Solution Explorer для проекта развертывания.
Далее необходимо определить, где должны быть развернуты сборки. По умолчанию Visual Studio 2005отображается редактор File System (Редактор файловой системы), вид которого приведен на рисунке 15.8.
Рис. 15.8 Редактор файловой системы
Этот редактор разделен на две панели. Левая показывает иерархическую структуру файловой системы целевой машины, а правая панель отображает детальное представление выбранной папки. Имена папок могут отличаться от того, что можно было ожидать, но следует помнить, что это - целевая машина; например, папка с меткойUser's Program Menu (Меню Программы пользователя) отображается на C:\Documents и Settings\User Name\Start Menu\Programs целевого клиента.
На данном этапе можно добавить другие папки - как специальные, так и произвольные. Чтобы добавить специальную папку, нужно убедиться, что на левой панели выделена опция File System on Target Machine (Файловая система на целевой машине), и подменю Action (Действие) главного меню (рисунок 15.9).
Для случая, рассматриваемого в лабораторной работе, добавим папкуEmployee в папку приложения Application Folder (внутреннее вложение).
Рис. 15.9 Окно добавления специальной папки
Для этого выберем папку Application Folder (Папка приложения) в панели редактора и затем выберем менюAction. На этот раз обратимся к пункту Add Добавить), который позволит создать новую папку. Переименуем ее, присвоив имя Employee. Перетащим файлы из папки Application Folder в папку Employee (рисунок 15.10).
Рис. 15.10 Окно проекта развертывания
Добавим ярлык приложения на рабочий стол пользователя. Для создания ярлыка на рабочем столе, необходимо обратиться к папке Application Folder. На правой панели редактора выберите приложение, перейдите к менюAction и выберите пункт Create Shortcut (Новый ярлык), чтобы создать ярлык приложения (рисунок 15.11).
Рис. 15.11 Окно создания ярлыка приложения
После создания ярлыка переименуйте его, задав имя EmployeeDesktop, и перетащите его в папку User's Desktop (рисунок 15.12).
Рис. 15.12 Окно создания ярлыка приложения на рабочем столе
Созданному ярлыку необходимо придать индивидуальный вид с помощью иконки. Для этого добавим файл любой иконки в проект (рисунок 15.13).
В результате в проект добавится файл с расширением .ico, который можно переименовать, напримерEmployeeImage.ico (рисунок 15.14), и открыв в редакторе изменить графическое представление (рисунок 15.15).
Рис. 15.13 Добавление файла иконки в проект
Рис. 15.14. Проект с файлом иконки
Рис. 15.15 Редактирование иконки
Теперь необходимо связать с ярлыком на рабочем столе созданную нами иконку. Для этого необходимо задать свойство Icon для ярлыка рабочего стола (рисунок 15.16).
Рис. 15.16 Окно задания иконки ярлыка приложения
Процесс задания иконки сопровождается выбором файла (рисунок 15.17) и подтверждением выбранной иконки (рисунок 15.18).
Рис. 15.17 Окно выбора файла иконки
Рис. 15.18 Окно задания иконки
Теперь при инсталляции приложения его ярлык появится на рабочем столе. Точно так же выглядит процесс создания ярлыка в Start.
В инсталляционный проект необходимо добавить конфигурационный файл Project_K4И_01.exe.config для обеспечения возможности настройки подключения к базе данных пользователя без перекомпиляции проекта (рисунок 15.19).
Рис. 15.19 Подключение к проекту конфигурационного файла
После подключения конфигурационного файла окно Solution Explorer будет иметь вид, аналогичный, приведенному на рисунке 15.20.
Рис. 15.20 Окончательное окно Solution Explorer инсталляционного прокета
Прежде чем собирать проект развертывания, может понадобиться проверить некоторые свойства проекта. Если выбрать команду меню Project/Properties (Проект/Свойства) для проекта SetupEmployee, то отобразится диалоговое окно Property Pages (Страницы свойств) (рисунок 15.21).
Рис. 15.21 Окно свойств проекта развертывания
Эти свойства, специфичные для текущей конфигурации. После выбора конфигурации в выпадающем списке Configuration (Конфигурация) можно изменить свойства, перечисленные в таблице 15.2.
После установки свойств проекта можно собирать проект развертывания и создавать инсталляционный пакет приложения SetupEmployee. После построения проекта можно протестировать инсталляцию, щелкнув правой кнопкой мыши по имени проекта в Solution Explorer. Это открывает доступ к командам контекстного Install(Инсталляция) и Uninstail (Деинсталляция) (рисунок 15.22). Если все сделано верно, то приложениеProject_K4И_01.exe может быть инсталлировано и деинсталлированно.
Таблица 15.2. Свойства в диалоговом окне Property Pages
Свойство |
Описание |
|
Output file name |
Имя файла msi или msm, генерируемого при компиляции проекта. |
|
Package files |
Это свойство позволяет специфицировать, как пакуются файлы. Доступны следующие варианты: · как свободные несжатые файлы. Все файлы развертывания сохраняются-в том же каталоге, что и файл .msi ; · в установочном файле. Файлы пакуются в файл .msi (установка по yмолчанию); · в кабинетных файлах. Файлы помещаются в один или более cab -файлов в одном каталоге. При этом выборе становится доступна опция CAB size |
|
Prerequisites URL |
Позволяет специфицировать, где находится необходимое программное обеспечение - такое как.NET Framework или Windows Installer 2.0. Щелчок на кнопке Settings (Настройка) отобразит диалог, позволяющий включить следующие технологии: · Windows Installer ; · .NET Framework ; · Microsoft Visual J# .NET Redistributable Package 2.0 ; · SQL Server 2005 Express Edition ; · Microsoft Data Access Components 2.8. Имеется также возможность указать необходимое программное обеспечение, которое можно загрузить с указанных URL -адресов либо из того места, откуда выполняется основная инсталляция. |
|
Compression |
Специфицирует тип сжатия включенных файлов. Выбор такой: · Optimized for speed (Оптимизация по скорости). Файлы больше по размеру, но быстрее инсталляция (установлено по умолчанию); · Optimized for size (Оптимизация по размеру). Маленькие файлы, но ленная инсталляция; · None (Без сжатия). Без сжатия. |
|
CAS size |
Это свойство доступно, когда установка Package files установлена в In cabinet files (В кабинетных файлах). Неограниченный ( Unlimited ) размер создает единственный кабинетный файл; настраиваемый ( Custom ) позволяет установить максимальный размер каждого кабинетного файла. |
|
Authenticode signature |
Когда включено, то выход проекта развертывания подписывается с использованиемAuthenticode ; по умолчанию отключено. |
|
Certificate file |
Сертификат, используемый для подписи. |
|
Private key file |
Секретный ключ, содержащий цифровой ключ шифрования подписанных файлов. |
|
Timestamp server URL |
URL -адрес сервера временных меток. Используется также для подписи кодом Authenticode. |
Рис. 15.22 Тестирование инсталляционного проекта
При инсталляции приложения Project_K4И_01.exe на рабочем столе должен появиться ярлык EmployeeDesktop, с помощью которого можно запустить приложение (рисунок 15.23).
Рис. 15.23 Рабочий стол с ярлыком приложения
После запуска приложения ярлык появляется и в главном меню (рисунок 15.24).
Рис. 15.24 Главное меню с ярлыком приложения
Для инсталляции приложения Project_K4И_01.exe на клиентском компьютере необходимы два созданных в проекте файла setup.exe и SetupEmployee.msi.
Размещено на Allbest.ru
...Подобные документы
Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.
методичка [2,1 M], добавлен 11.09.2014Основные алгоритмические структуры. Запись алгоритма в словесной форме, в виде блок-схемы. Система команд исполнителя. Язык высокого уровня. Создание программы и её отладка. Интегрированные среды разработки: Integrated Development Environment, IDE.
лекция [61,7 K], добавлен 09.10.2013Интегрированная среда разработки Delphi и элементы, входящие в ее состав. Математическая модель, алгоритм решения и его свойства. Описание операторов, процедур, функций и методов. Создание приложений по аналитической геометрии и теоретической механике.
курсовая работа [1,8 M], добавлен 26.05.2010Редактор Visual Basic в интерпретации Microsoft - интегрированная среда проектирования (IDE). Средства и инструменты, необходимые программисту для разработки и создания приложений. Характеристика основных возможностей редактора. Запись и запуск макроса.
презентация [531,2 K], добавлен 26.10.2011Средства интегрированной среды Microsoft Visual Studio, предоставляемые программисту для реализации программ на языке С++. Особенности стиля написания программ. Типовые приемы и методы создания и отладки программ. Листинги программ и их тестирование.
лабораторная работа [814,3 K], добавлен 26.05.2013Средства разработки, ориентированные на конкретные СУБД. Наиболее известные приложения на основе Eclipse Platform. Проект NetBeans IDE, его возможности. KDevelop — свободная интегрированная среда разработки для UNIX-подобных операционных систем.
реферат [107,5 K], добавлен 14.04.2014Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.
курсовая работа [571,9 K], добавлен 14.07.2012Языки среды программирования Visual Studio. Стартовая страница интегрированной среды разработки. Окно New Project. Вкладка разработки формы. Перемещение и изменение размера кнопки. Прибавление программного кода к кнопке. Запуск и сохранение проекта.
презентация [1,4 M], добавлен 29.04.2014Введение в Microsoft Visual Studio. Диалоговое окно "Восстановленные файлы" интегрированной среды разработки. Веб-обозреватель интегрированной среды разработки. Диалоговое окно "Проверка подлинности прокси-сервера". Сохранение и восстановление файлов.
реферат [22,0 K], добавлен 29.05.2013Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Требования к MS Office 2007. Набор средств разработки Visual Studio Tools for Office как альтернатива VBA. Разработка СУБД на базе MS Access. Разработка надстройки "Электронные компоненты" для PowerPoint на языке C# в среде MS Visual Studio 2010.
дипломная работа [5,2 M], добавлен 03.05.2013Элементы объектно-ориентированного программирования. Среда Visual Studio: улучшения интегрированной среды разработки и увеличение ее производительности. Проектирование архитектуры программы и ее интерфейса. Использование двухуровневой системы приложения.
курсовая работа [516,8 K], добавлен 09.08.2015Визуальная среда моделирования в масштабе реального времени, типичные проблемы разработки робототехнических систем. Описание среды Apartment Environment, перемещение камеры по осям координат. Описание системы координат и алгоритма перемещения объектов.
контрольная работа [2,1 M], добавлен 20.09.2010Особенности разработки автоматизированного рабочего места (АРМ) на базе профессиональных персональных компьютеров с архитектурой IBM PC. Разработка АРМ заместителя директора по воспитательной работе в колледже. Выбор системы управления базой данных.
курсовая работа [2,2 M], добавлен 18.12.2015Разработка базы данных, содержащей сведения о студентах, их успеваемости и предпочтениях. Создание таблиц, пользовательских форм, запросов, отчетов, строки меню, панели инструментов, контекстного меню в Access. Настройка параметров запуска приложения.
контрольная работа [682,4 K], добавлен 08.05.2015Компьютерная поддержка деятельности фирмы. Организация бизнеса в сети Интернет. Компания "Intway World Corporation" и ее деятельность. Среды разработки приложения. Графическая среда разработки, язык программирования. Рабочее меню и окна программы.
дипломная работа [867,1 K], добавлен 03.07.2015Виды и принципы компьютерного моделирования. Среда моделирования Microsoft Robotic Studio. Моделирование пространства и объектов рабочей области с помощью визуальной среды Visual Simulation Environment. Создание программы управления мобильным роботом.
дипломная работа [5,0 M], добавлен 15.06.2014Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Принципы визуального программирования. Создание программы, генерирующей звук через определенные промежутки времени. Visual Basic как средство разработки прототипов программы, для разработки приложений баз данных и компонентного способа создания программ.
лабораторная работа [1,1 M], добавлен 10.12.2014Обзор рынка мобильных приложений, социальных сетей, аналогов. Обзор инструментов разработки: Android Studio, Microsoft visual С# 2012, PostgreeSQL, API Открытых данных Вологодской области, API Социальных сетей. Программный код, разработка интерфейса.
дипломная работа [2,6 M], добавлен 10.07.2017