Программирование >>  Программирование с использованием ajax 

1 ... 181 182 183 [ 184 ] 185 186 187 ... 396


Упражнения

Поскольку диалоговые окна FontDialog и ColorDialog работают подобно другим рассмотренным в этой главе диалоговым окнам, их добавление в приложение SimpleEditor - задача несложная.

1. Предоставьте пользователям возможность изменения шрифта, используемого в текстовом поле. Добавьте в главное меню новый пункт меню F&ormat, а в него подменю &Font.... Добавьте обработчик для этого элемента меню. Затем с помощью Windows Forms Designer добавьте в приложение диалоговое окно FontDialog. Реализуйте отображение этого диалогового окна в обработчике элемента меню и установите свойство Font текстового поля в соответствии с выбранным шрифтом.

Необходимо также изменить реализацию метода OnPrintPageO, чтобы он использовал выбранный шрифт для печатного вывода. В предыдущей реализации мы создали новый объект Font в методе DrawString () объекта Graphics. Теперь же используйте шрифт объекта textBoxEdit, обращаясь к его свойству Font. Помните о проблеме расположения шрифта при выборе пользователем большого размера шрифта. Во избежание частичного перекрытия расположенных одна над другой строк измените фиксированное значение, использованное для изменения вертикальной позиции строк. Для достижения этой цели лучше всего применять размер шрифта для изменения шага по вертикали: используйте свойство Height класса Font.

2. Еще одним прекрасным усовершенствованием приложения было бы изменение цвета шрифта. Добавьте меню Format второе подменю: Color.... Добавьте к этому пункту меню обработчик, который открывает диалоговое окно ColorDialog. Если пользователь нажимает кнопку ОК, установите значение свойства ForeColor текстового поля в качестве выбранного цвета диалогового окна ColorDialog.

В методе OnPrintPageO обеспечьте, чтобы выбранный цвет использовался только в том случае, если принтер поддерживает цветную печать. Для проверки, поддерживает ли принтер цветную печать, воспользуйтесь свойством PageSettings .Color аргумента PrintPageEventArgs. Объект кисти с цветом, выбранным для текстового поля, можно создать с помощью следующего кода:

Brush brush = new SolidBrush(textBoxEdit.ForeColor);

Затем эту кисть можно применять в качестве аргумента в методе DrawString () вместо ранее использованной черной кисти.

а PrintPreviewDialog - служит для просмотра печатной страницы, что позволяет пользователям заранее видеть, как она будет выглядеть.

□ FolderBrowserDialog - служит для выбора и создания каталогов.

В этой главе были также описаны основные свойства классов FontDialog и ColorDialog. В приведенных ниже упражнениях вы можете расширить функциональные возможности приложения SimpleEditor, включив в него и эти диалоговые окна.

В следующей главе показано, как Windows-приложения, подобные SimpleEditor, могут быть развернуты в целевых системах с помощью технологии СИскОпсе и программы установки Windows.




Развертывание Windows-приложений

Существует несколько способов развертывания Windows-приложений. Простые приложения можно устанавливать с помощью общей утилиты развертывания хсору, но для установки сотен клиентских приложений этот вид развертывания не подходит. Для такой ситуации существует две возможности: применение развертывания СИскОпсе либо программы установки Microsoft Windows.

При развертывании СИскОпсе инсталляция приложения осуществляется щелчком на ссылке на некоторый Webч:aйт. В ситуациях, когда пользователь должен выбрать каталог для установки приложения или когда требуется изменение каких-либо записей системного реестра, следует применять развертывание с помощью программы установки Windows.

В этой главе освещены оба варианта инсталляции Windows-приложений. В частности, будут рассмотрены следующие вопросы.

□ Основы развертывания.

□ Развертывание СИскОпсе.

□ Типы проектов развертывания и установки Visual Studio.

□ Функциональные средства программы установки Windows.

□ Создание пакетов программы установки Windows с помощью Visual Studio 2008.

Обзор процесса развертывания

Развертывание - это процесс инсталляции приложений в целевых системах. Традиционно такая инсталляция осуществлялась с помощью программы установки. 1ри необходимости инсталляции ста или тысячи клиентских приложений процесс ( тановки может занимать очень много времени. Для облегчения этой задачи систем-мй администратор может создать пакетные сценарии, автоматизирующие выпол-



нение необходимых действий. Однако особенно если логика приложения регулярно изменяется, возможно возникновение проблем, связанных с клиентами, которые не имеют доступа к сети, а также с несовместимостью различных версий библиотек. В результате возникает ситуация так называемого ада DLL (DLL hell).

ЛЭ DLE описывает проблемы, которые возникают, когда каждое из нескольких установленных приложений требует свою версию одной и той же DLL. Если одно приложение устанавливает DLL, которая замещает собой другую версию этой же DLL, приложения, нуждающиеся в замещенной DLL, могут оказаться функционировать.

В связи с этими проблемами многие компании преобразуют свои внутрисетевые приложения в Web-приложения, несмотря на то, что Windows-приложения предлагают интерфейс пользователя с существенно большими возможностями. Web-приложения нужно развернуть только на сервере, а клиент автоматически получает новейший интерфейс пользователя.

В среде .NET ситуация ада DLL предотвращается за счет использования приватных и общедоступных сборок. Приватные сборки копируются с каждым приложением, что полностью исключает возможность возникновения конфликта со сборками из других приложений. Сборки общего использования имеют строгие имена, которые включают номер версии. Несколько версий одной и той же сборки могут сосуществовать в одной системе.

Среда .NET 1.0 поддерживала технологию, получившую название бесконтактного развертывания. В случае применения бесконтактного развертывания пользователи получали возможность автоматически инсталлировать приложение, щелкая на ссылке на Web-странице. Однако бесконтактное развертывание .NET 1.0 было связано с рядом проблем безопасности и не обладало многими функциональными средствами, необходимыми для множества клиентских приложений - что, в общем-то, и понятно, поскольку это была первая версия технологии. Означенные проблемы были решены в технологии развертывания СИскОпсе, реализованной в .NET 2.0.

Подобно бесконтактному развертыванию, развертывание СИскОпсе позволяет устанавливать приложение посредством щелчка на ссылке внутри Web-страницы. Пользователь клиентской системы не нуждается в административных привилегиях, поскольку приложение инсталлируется в каталоге, выделенном данному пользователю. Применение технологии СИскОпсе позволяет устанавливать приложения со сложным интерфейсом пользователя. Приложение инсталлируется на компьютере клиента, поэтому по завершении установки необходимость сохранения соединения с клиентской системой отпадает. Иначе говоря, приложение может использоваться в автономном режиме. Итак, теперь пиктограмма приложения доступна в меню Start (Пуск), проблемы безопасности легче поддаются решению, а приложение может быть легко удалено.

Замечательная особенность технологии СИскОпсе состоит в том, что обновления могут выполняться автоматически при запуске клиентского приложения или в фоновом режиме во время его работы.

Однако развертывание СИскОпсе сопряжено с рядом ограничений: эта технология не может применяться, если компоненты совместного использования требуется установить в глобальном кэше сборок, если приложение нуждается в СОМ-компонентах, которые требуют изменений в системном реестре, или если пользователи должны иметь возможность выбора каталога для инсталляции приложения. В подобных случаях следует использовать программу установки Windows, предлагающую традиционный способ инсталляции Windows-приложений. Однако прежде чем приступить к работе с пакетами программы установки Windows, рассмотрим развертывание СИскОпсе.



1 ... 181 182 183 [ 184 ] 185 186 187 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика