WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 |   ...   | 5 | 6 ||

«Exam 70-310 and 70-320 XML Web Services and Server Components WITH VISUAL BASIC AND VISUAL Exam 70-306 and 70-316 DEVELOPING APPLICATIONS WITH VISUAL BASIC AND VISUAL Press Сертификационный ...»

-- [ Страница 7 ] --

Например, можно разрешить пользователю сохранить данные и штатно завершить работу приложения либо продолжить работу без запрошенного ресурса. Так или иначе, требуется предусмотреть обработку любых исключений, которые только можно предвидеть.

Резюме • Существует два основных типа кода: защита, основанная на ролях, ис пользует аутентификацию пользователей и их а защита по правам досту па к коду предотвращает несанкционированный доступ к системным ресурсам.

• Возможности доступа к коду и системным ресурсам контролируют объекты решений. В каждом из них реализован интерфейс предоставляющий базовый набор функций.

• Авторизация на основе ролей проверяет роль и имя пользователя, представлен ного текущим объектом Principal. Применение встроенных механизмов аутенти фикации Windows позволяет сверять этот объект с объектом Для этого необходимо установить для текущего домена приложения соответствующую политику участника безопасности Возможности доступа к системным ресурсам контролирует объект разрешения доступа к коду. Такой объект способен представить полный доступ к связанной с ним категории ресурсов либо к заданному подмножеству ресурсов данного типа.

Запрос разрешений осуществляется императивно либо декларативно. Деклара тивную защиту реализуют добавлением к классам и методам атрибутов разреше ний с заданными действиями защиты. Императивную защиту реализуют через соответствующие методы объекта разрешения, который представляет объект уча стника безопасности (при использовании защиты, основанной на ролях) или объект разрешения на доступ к системному ресурсу (при использовании защиты по правам доступа к коду).

Декларативная защита позволяет запрашивать разрешения для сборки в Для этого применяются соответствующие флаги, объявленные внутри директи вы Assembly 428 и защита сборок Практикум 9. Конфигурирование и защита приложения Задача этого практикума — усовершенствовать приложение, созданное в практикуме 8. Вы добавите к нему код, который позволит назначать туру через файл, затем дополните приложение систе мой безопасности, основанной на чтобы защитить его от несанк ционированного доступа. В завершение вы организуете в приложении за по правам доступа к коду, чтобы запретить печать данных. Решение задач этого практикума вы найдете в каталоге \Labs\Ch09\Solution на прилагаемом к книге компакт-диске.

Прежде всего Для выполнения этого практикума вам потребуются результаты практикума 8 (го товое решение этого практикума вы можете взять с прилагаемого к книге компакт диска). Чтобы успешно все упражнения, необходимо быть членом груп пы администраторов Windows на компьютере, на котором вы будете работать.

практикума - около Упражнение Создание конфигурационного файла Сейчас вы создадите конфигурационный файл для приложения и добави те к нему код, читающий из него значение текущей культуры и устанавли вающий соответствующие значения для свойств и Прежде чем приступать к этому упражнению, загрузите в Visual Studio решение, созданное в практикуме 8.

конфигурационного файла В Solution Explorer щелкните правой кнопкой Language и выберите ко манду Delete. В ответ на вопрос щелкните — из проекта.

В Solution Explorer правой кнопкой форму выберите команду View Code — откроется окно кода этой формы.

3. Найдите конструктор и удалите из него следующие строки:

Visual Basic Dim aForm As New Visual aForm 4. Добавьте к приложению конфигурационный файл. В зависимости от языка про граммирования это делается по-разному.

Visual 1. В меню Project выберите Add New Item.

2. В окне Add New Item щелкните Application Configuration File — к проекту будет добавлен новый конфигурационный файл.

Visual C# 1. В меню Project выберите Add New Item.

2. В окне Add New Item щелкните Text File — к приложению тек стовый файл. Новый файл открывается в текстовом редакторе.

3. В Solution Explorer щелкните правой кнопкой созданный текстовый файл и выберите команду Rename, чтобы переименовать его в App.config. Откройте это файл в текстовом редакторе и добавьте в него XML-код:

?> В Solution Explorer дважды файл App.config. Система спросит, нуж но ли закрыть файл, — щелкните кнопку Yes (Да). На экране файл App.config в редакторе Добавьте к элементу файла App.config /> В окне Solution Explorer щелкните правой кнопкой форму и ко манду View Code — код этой формы откроется в редакторе.

Добавьте в конструктор Forml код, который будет читать значения из конфигу рационного файла и назначать их свойствам Current Culture и UlCulture.

Visual Basic Dim Reader As New New = New _ Visual C# reader new = new 430 защита сборок = new st.

typeof 8. Нажмите F8, чтобы протестировать приложение. Когда откроется Forml, тите внимание, что пользовательский интерфейс отображается на языке, а в списке для выбора валюты присутствует знак евро.

Упражнение 2. Защита приложения Сейчас вы добавите к приложению код, необходимый для его защиты. Для проверки роли текущего пользователя вы примените императивную щиту, а защиты доступа к принтеру — декларативную.

Как защитить приложение В Solution Explorer щелкните правой кнопкой Forml и выберите View Code код формы Form] откроется в Добавьте к конструктору формы Forml код, ограничивающий круг имею щих доступ к приложению, членами встроенной группы Windows Administrators:

Basic Dim myPerm As myPerm. DemandO Catch se As ("You do not have permission to run this End End Try Visual C# pal Policy myPerm myPerm. DemandO;

se) 3. Найдите метод и добавьте к нему следующий атрибут. Он необхо дим, чтобы только доверенный код смог выводить данные на принтер:

Visual Basic (System. Security, Demand, 4. Добавьте к методу обработку исключений, которые могут возник нуть при попытке на печать:

Visual Try Catch do have permission to End Visual C#.

5. Нажмите F5, чтобы протестировать приложение — оно должно работать нор мально.

Примечание Если вы не входите в группу Administrators, приложение работать не будет. В этом случае задайте роль, соответствующую встроенной группе Windows, членом которой вы являетесь. Если при попытке печати возникает исключение безопасности, настройте для сборки приложения соответствующую политику безопасности самостоятельно или попросить об этом системного ад министратора.

В строке, где создается объект Principal Permission, замените на любую роль, которая не существует в Windows (например, на Нажмите F4, чтобы скомпоновать и запустить приложение, Приложение отвергнет запрошенное вами разрешение и завершится неудачей.

В программе на Visual Basic приложение просто завершится, а программа на Visual C# генерирует необработанное исключение, которое генерируется по вторно. Верните роли значение (BUILTIN\Administrators).

В атрибуте разрешения замените действие Demand на Deny. На жмите F5, чтобы и запустить приложение. Попробуйте что-ни будь напечатать.

Программа отказывает в предоставлении запрошенного разрешения и уведом ляет о этом пользователя. Верните исходное значение флагу действия защиты и перекомпилируйте приложение.

В меню File выберите команду Save чтобы сохранить свою работу.

Закрепление материала Приведенные ниже вопросы помогут вам лучше усвоить основные темы данной главы. Если вы не сумеете ответить на вопрос, повторите матери ал занятия. Ответы для самопроверки — в приложении и ответы» в конце книги.

Как подписать сборку с помощью строгого имени и чего это нужно?

2. Расскажите, как извлечь ресурсы во время выполнения.

3. Как во время выполнения извлечь информацию из конфигурационно го файла? А как записать в него нужные данные во время разработки?

4. Вы создали решение, которое должно быть доступным только членам групп Developers и Administrators локального компьютера. Как зовать такую схему безопасности?

5. Кратко перечислите различия между декларативной и императивной моделями при использовании защиты по правам доступа к коду.

Развертывание Занятие Планирование развертывания приложения Занятие 2. Конфигурирование проекта установочной программы В этой главе В этой главе рассказано, как планировать и выполнять развертывание приложений через локальную сеть, Интернет, а также со съемных носителей. Кроме вы узнаете, как создать проект установочной программы для своего приложения и применить ее для развертывания на локальном компьютере.

Прежде всего Для изучения материалов этой главы вам изучить главы 434 Глава Занятие Планирование развертывания приложения Чтобы приложение по достоинству, оно прежде всего должно оказаться на компьютерах своей целевой аудитории. Microsoft Visual Studio поддерживает самые разные способы развертывания проектов: от простейшего с использованием команды XCOPY до самого сложного и гибкого с применением программы Micro soft Windows Installer. На этом занятии вы научитесь подбирать оптимальный спо соб развертывания для своего приложения.

Изучив материал этого занятия, вы сможете:

рассказать о развертывании приложений Windows Forms с применением XCOPY;

создать и настроить проект установочной программы для приложения с помощью мастера Setup Project;

спланировать развертывание приложения со сменных носителей;

спланировать развертывание приложения через сеть;

спланировать развертывание приложения с Web-сервера.

Продолжительность занятия - около 45 минут, Итак, код приложения написан и отлажен, приложение полностью готово к раз вертыванию, цель которого — установить его и необходимые фай лы на компьютеры клиентов, затратив минимальные усилия.

Простые приложения Framework позволяет развертывать, просто копируя их каталоги на клиентские компьютеры. Для развертывания более прило жений в Visual Studio предусмотрена технология Windows Installer, щая создавать проекты установочных программ с широкими возможностями на стройки.

Развертывание приложений с помощью XCOPY В развертывании с помощью XCOPY нет ничего замысловатого. Команда XCOPY получила свое название от одноименной команды DOS, каталог со всем содержимым в заданный каталог. В некоторых случаях для развертывания приложений достаточно и этого простого метода.

Развертывание при помощи XCOPY выполняется через командную строку. При вызове команды XCOPY необходимо задать исходный и целевой каталоги;

пара метр /s заставляет скопировать исходный каталог со всеми вложенными каталога ми. Так, чтобы скопировать каталог MyApplication со всеми вложенными в него каталогами с на диск наберите в командной строке команду;

XCOPY /s Чтобы получить сведения о других параметрах, наберите в командной строке HELP XCOPY.

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

кроме тех, что уже установлены на компьютере на момент развертывания.

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

Развертывание приложений с помощью ХСОРУ Убедитесь, что приложение отвечает всем указанным требованиям.

2. Вызовите окно командной строки. В Windows XP для этого нужно щелкнуть (Пуск\Все 3. Вызовите из командной строки XCOPY, указав исходный и целевой каталоги и все необходимые параметры, например:

XCOPY /s Создание проекта установочной программы Если возможностей XCOPY недостаточно для развертывания приложений, можно воспользоваться поддержкой Visual Studio и создать проект установочной про граммы, использующей пакет Windows Installer. Так удается создать весьма гибкие инструменты для приложений, поддерживающие самые разные сцена рии развертывания. Чтобы создать проект установочной программы для приложе ния, просто добавьте к решению специальный проект.

Для Windows поддерживается два вида подобных проектов: проекты ус программ приложений (Setup и проекты для модулей (Merge module projects). Первые применяют для развертывания исполняе мых приложений. После компиляции такого проекта получается при годный для установки приложения на целевой компьютер. Вторые используются для развертывания элементов управления и компонентов, которые не являются от приложениями и не подлежат непосредственному развертыванию. В этой форме распространяются пакеты обновлений, которые разрешается объединять с имеющимся проектом установочной программы. Проект установочной программы для дополнительного модуля содержит все необходимые сведения о том, где я как следует установить некоторую сборку, но работает он только вместе с определен ным приложением.

Мастер Setup Project Мастер Setup Project из Visual Studio позволяет для вашего проекта подходящий тип установочной программы. Направляя действия пользователя, он позволяет быстро создать заготовку проекта установочной программы, которую за тем «доводят» с помощью Visual Studio Чтобы добавить к решению проект установочной выберите в меню File команду Add Project\New Project — откроется диалоговое окно Add New Project.

Далее вызовите мастер Setup Project (рис. 10-1) — для этого на панели Project Types выберите Setup and Deployment Projects, а в окне Templates — Setup Wizard.

Щелкните кнопку Next, чтобы открыть страницу Choose a Project Type 0-2), на которой задают тип проекта. Если нужно создать проект установочной мы для выберите Create A Setup For A Windows Application, а если для установки DLL-файла (то есть для установки неисполняемой сборки), укажите Create a Merge Module For Windows Installer. Щелкните кнопку Next.

Рис. Мастер Setup Project a of : led computer Do la a to a Create л create a package?

far Create Рис. 10-2. Выбор типа Choose Project Outputs To позволяет выбрать файлы решения для включения в проект установочной программы. Обычно на этой странице для каждого проекта решения отображается пять флажков (это для приложений на Visual Basic в случае Visual их — по одному для каждого из типов содержимого, добавляемого к проекту. Если щелкнуть какой-либо значок, в поле Description появится его описание. На рис. 10-3 показан вариант страницы Choose Project Outputs To Include для Visual Basic Чтобы включить в проект EXE- и DLL-файлы, установите флажок Primary Output. При развертывании приложения для тестирования удобно также добавлять файлы с исходным текстом и символами для отладки, но в окончательной версии их быть не должно. Щелкните кнопку Next, чтобы перейти на ющую страницу.

Страница Choose Files To (рис. 10-4) позволяет добавить к проекту лю бые дополнительные файлы, например текстовые файлы readme, HTML-страницы со справочной а также файлы поддержки, которые обычно не вклю чают в установочный комплект приложения. Чтобы выбрать эти файлы, щелкните кнопку Add и найдите нужный файл, Закончив, щелкните Next.

Choose include Content Source Files from Th Рис. 10-3. Выбор файлов, добавляемых в проект установочной программы files to include files such as HTML Which do want to Рис. 10-4. Выбор файлов для добавления к проекту установочной Create Project (рис. отображает подробные сведения о парамет рах, заданных в ходе работы с мастером. Щелкните кнопку Finish, чтобы создать проект установочной программы и добавить его к решению. К готовому проекту можно в любое время добавить дополнительные файлы. Для этого щелкните его правой кнопкой в окне Solution Explorer и выберите в контекстном меню Add ходящий элемент.

Создание проекта установочной программы с помощью мастера Setup Project В меню File выберите команду Add Project — откроется диалоговое окно Add New Project.

2. На панели Project Types выберите Setup and Deployment Projects, а на панели Templates — Setup Wizard.

Глава 3. Укажите в списке под приветствием тип проекта: для DLL это Merge Module, a для приложения — Setup For A Windows 4. На следующих двух страницах задайте файлы проекта приложения и дополни тельные файлы, которые следует включить в проект установочной программы.

5. На итоговой странице щелкните кнопку Finish, чтобы создать проект.

Рис. 10-5. Итоговая страница мастера Setup Project Новый проект будет добавлен к решению и отобразится в окне Solution Explorer (рис. В дополнение к выбранным вами файлам Visual Studio автомати чески найдет возможные все зависимости для нового проекта и добавит их в ката лог Detected Dependencies. Например, на рис. 10-6 показана зависимость от пакета Framework. что зависимости, не добавленные к проекту установоч ной программы явно, по умолчанию исключаются из сборки. Чтобы добавить най денную зависимость к проекту, щелкните правой кнопкой соответствующий файл в окне Solution Explorer и в раскрывающемся списке сбросьте флажок Exclude для этого файла. Обратите внимание: включение установочных файлов Framework существенно увеличивает размер дистрибутива, поэтому добавлять их стоит только при отсутствии Framework на целевом компьютере.

he ( The Best App.vb Detected output Best ftpp Everl output from Best App Everl (Active) The App Ever! (Active) i Рис. 10-6. Найденная зависимость Параметры компоновки установочной программы Добавив к решению проект установочной программы, можно задать способ его ком пиляции, настроив компоновки этого проекта. Обычно в результате ком пиляции установочного проекта получается по крайней мере файл, использу емый программой Windows Installer в котором хранятся все конфигу данные и содержимое, необходимое для установки приложения на це левой компьютер. Однако в зависимости от параметров компоновки разрешается заключать часть содержимого пакета в отдельные файлы, а также добавлять к нему установочные файлы Windows Installer, если он еще не установлен на целевом компьютере. Чтобы вызвать окно параметров компоновки проекта установочной программы, в Solution Explorer щелкните этот проект правой кнопкой и выберите из контекстного меню команду Properties — откроется диалоговое окно свойств проекта (рис. 10-7), The Рис. 10-7. Диалоговое окно свойств проекта установочной программы Параметры компоновки (рис. 10-7) определяют результат компиляции установочной программы, их набор зависит от способа развертывания приложения.

Более подробно об этих параметрах рассказывается в следующих разделах.

Output File Name Параметр Output File Name определяет имя, которое будет назначено выходному файлу, предназначенному для использования программой Windows Installer, а так же каталог, в который он будет записан. По умолчанию его значение имеет вид где — каталог в структуре каталогов проекта;

(по — имя проекта, a для приложений Windows Installer или — для дополнительных модулей Windows Installer. Чтобы изменить путь выходного файла, щелкните кнопку Browse и укажите новый каталог.

Package Files Этот параметр определяет способ упаковки выходных файлов решения в дистрибу приложения. По умолчанию все выходные файлы упаковываются в один файл вместе с установочной программой. Это обеспечивает высокую степень при минимальной сложности установки, поскольку все для развертыва ния приложения содержится в единственном файле.

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

параметр Package Files позволяет скомпоновать выходные данные в виде набора несжатых файлов. При этом выходные файлы проекта просто копиру ются в тот же каталог, что и CAB Size При выборе упаковки данных приложения в САВ-файлы становится доступным параметр, размер САВ-файла. Если назначить ему значение Unli mited, создается единственный САВ-файл, в который упаковываются все выходные файлы проекта. Если же выбрано значение Custom, максимальный размер выход ных САВ-файлов задает пользователь — это удобно, если предполагается распро странять приложение на дискетах или иных сменных носителях.

Bootstrapper Этот параметр определяет, нужно ли при компиляции проекта генерировать про грамму, подготавливающую клиентский компьютер к приложения.

Перед установкой собственно приложения эта программа устанавливает на целе вой компьютер пакет Windows Installer — стандартную версию установочной программы Windows XP. Если выбран этот параметр, во время компиляции проек та установочной программы генерируются дополнительные файлы, которые при необходимости используются для установки Windows Installer 1.5 на клиентский компьютер. При развертывании на компьютерах под управлением Windows XP про грамма для загрузки Windows Installer не требуется, но, если предполагается развер тывать приложение, требующее Windows Installer, на клиентах под управлением прежних версий Windows, без такой программы не обойтись, по крайней мере при первой установке.

Если планируется развертывать приложение на компьютерах под управлением Windows XP либо на компьютерах с предустановленным Windows Installer пара метру Bootstrapping можно назначить значение None, чтобы отказаться от генера ции программы для установки Windows Installer 1.5. В противном случае следует выбрать значение Windows Installer Bootstrapper. В результате будут сгенерированы четыре дополнительных файла (таблица 10-1).

Если что приложение будет загружаться из Интернета, те параметр Web Bootstrapper. Три дополнительных файла генерируются и ваются в заданный выходной каталог. Файлы и InstMsiW.exe выполня ют ту же функцию, что при выборе параметра Windows Installer Bootstrapper, — ус танавливают программу Windows Installer на клиентский компьютер. Третий файл также называется Setup.exe, но его назначение несколько отличается: он определя ет, установлен ли на целевом компьютере Windows Installer и, если нет, загружает соответствующую программу для его установки. После этого загружается и испол няется MSI-файл, который содержит собственно приложение.

Файлы программы, Windows Installer Файл Описание Этот файл точкой в процесс установки. При запуске программа Setup установлен ли на данном компьютере Windows Installer и, если нет, вызывает или Inst MsiW.exe, чтобы установить Installer. После этого Windows Installer приступает к установке самого приложения, извлекая его из InstMsiA.exe Устанавливает Windows Installer 1.5 на компьютеры, работающие под управлением Windows 95/ InstMsiW.exe Устанавливает Windows Installer 1.5 на компьютеры, работающие пол.

управлением Windows NT/ Содержит имя MSI-файла, который Setup.exe обрабатывает после проверки Windows installer При выборе Web открывается диалоговое окно Web Bootstrapper Settings, в котором можно задать пару дополнительных свойств проек та. Свойство Setup folder URL указывает Web-каталог, в котором находится про грамма установки приложения со всеми связанными с ней файлами. Второе свой ство, Windows Installer upgrade folder RL, определяет отдельный каталог для загру жаемых через Web необходимых для установки Windows Installer и InstMsiW.exe). Таким образом, программы для установки Windows Instal ler и самого приложения можно хранить в разных Если указанные свойства не заданы, установочные файлы Windows Installer записываются в тот же каталог, что и установочные файлы приложения.

Compression Эта параметр определяет схему сжатия для проекта установочной программы.

сжатие не используется, этот параметр недоступен, в противном случае можно рать один из трех вариантов сжатия. Значение None отключает сжатие файлов. При этом установка приложения выполняется быстрее, но за это приходится расплачи ваться большим размером установочных файлов. Значение Optimized For Speed — компромисс между степенью сжатия файлов проекта и скоростью ус тановки приложения, a Optimized For Size задает максимальное сжатие, что требует больше времени на установку.

Подпись Authenticode Если вы хотите засвидетельствовать подлинность вашего кода, добавьте к проекту установочной программы подпись, Для этого пометьте флажок Authenti code Signature. Станут доступными три свойства, связанные с цифровой подписью, В поле Certificate File следует указать каталог с сертификатом подлинности, рый будет использоваться для подписания файлов, — его можно найти, щелкнув кнопку Browse. В поле Private Key задают каталог с закрытым ключом, мым шифрования подписываемых файлов. Поиск каталога также ется с помощью кнопки Browse. Наконец, в поле Server URL указывают адрес сервера временных меток, используемый для подписания файлов. Первые два параметра подлинности и закрытый ключ) являются обязательными 442 Развертывание для создания цифровой подписи, подтверждающей подлинность кода, а третий (ад рес сервера временных меток) — нет.

Компоновка, распространение и развертывание проекта После добавления требуемых выходных файлов и определения всех необходимых свойств проекта установочной программы проект компонуют и приступают к рас пространению. После выполнения этих операций проект считается готовым к раз вертыванию на клиентских компьютерах.

Компоновка Чтобы скомпоновать проект установочной программы, выделите его в окне Solution Explorer и выберите в меню Build одноименную команду — в результате начнется процесс компоновки проекта. Сгенерированные при компоновке файлы дистрибу тива записываются в каталог, заданный в свойствах проекта (значение поля Output File Name), откуда их можно скопировать на выбранный для распространения но ситель, Распространение на сменных носителях Приложения традиционно распространяют на сменных носителях. При выборе носителя следует учесть его емкость. Например, максимальная емкость дискеты составляет 1,44 Мб, что явно мало для большинства современных приложений.

Компакт-диски обладают значительно большей но для особо объемных проектов и ее может оказаться недостаточно. Если размер приложения превышает емкость носителя, выбранного для его распространения, можно упаковать выход ные данные проекта в и разместить полученный дистрибутив на не скольких носителях.

Распространение на сменных носителях 1. Оцените предполагаемый объем дистрибутива и задайте при помощи свойств приложения подходящий способ упаковки выходных файлов. Если вы планиру ете распространять свое приложение на дискетах, выберите упаковку в САВ файлы и установите для них максимальный размер в 1440 кб.

2. Скомпилируйте проект установочной программы.

3. Скопируйте полученные файлы из куда они были записаны при ком пиляции, на подготовленные сменные носители. При использовании дискет для распространения приложения в виде набора скопируйте Si-файл на первую дискету дистрибутива, а на остальные — САВ-файлы приложения.

Распространение через сеть Если приложение предназначено для группы пользователей, подключенных к об щей сети, дистрибутив удобно распространять через сеть. Это самый простой спо соб распространения приложений — для его реализации достаточно создать на се тевом сервере разделяемый каталог и скопировать туда установочные файлы при ложения. После этого остается лишь опубликовать адрес каталога, чтобы все пользо ватели, заинтересованные в получении нового приложения, смогли самостоятель но переписать его на свои компьютеры. Администратор сети может защитить ката лог с дистрибутивом приложения паролем, ограничив круг лиц, которым он досту пен, целевой аудиторией приложения. Если приложение использует программу для подготовки к развертыванию, задайте для свойства Bootstrapper на свойств проекта установочной программы значение Windows Installer Bootstrapper.

Распространение приложений через сеть 1. Чтобы создать программу для подготовки компьютеров к развертыва нию, на страницах свойств проекта установочной программы задайте свой ства Bootstrapper значение Windows Bootstrapper.

2. Скомпилируйте проект установочной программы.

3. Создайте на сервере разделяемый каталог и определите для него необ ходимые ограничения доступа.

4. в созданный каталог файлы, полученные при компиляции проекта установочной программы.

5. Сообщите сетевой адрес этого каталога предполагаемым пользователям прило Применение административной установки Для распространения приложений через сеть можно применять административную установку. Для реализации этого подхода в разделяемом каталоге создается образ приложения и установочная программа, после чего конечные пользователи смогут загрузить из этого каталога установочный файл и установить приложение на свои компьютеры. Такой способ обеспечивает больше гибкости в настройке парамегрон установки приложения на целевом компьютере. При использовании тивной установки разрешается задавать конфигурацию которая будет реплицирована на клиентские компьютеры.

Распространение приложения через сеть и с административной установки Чтобы создать программу для подготовки целевых компьютеров к развертыва нию приложения, на страницах свойств проекта установочной программы за дайте для свойства Bootstrapper значение Windows Installer Bootstrapper.

2. Скомпилируйте проект установочной программы.

3. Создайте на сетевом сервере разделяемый каталог и определите для него необ ходимые ограничения 4. Вызовите окно командной строки.

5. В окне командной строки перейдите каталог проекта установочной программы.

6. Чтобы инициировать установку, исполните следующую команду:

/A где — имя установочной программы вашего приложения.

7. Следуйте указаниям мастера Setup Project, В качестве целевого каталога уста новки разделяемый сетевой каталог, созданный ранее.

8. Сообщите сетевой адрес этого каталога предполагаемым пользователям прило жения.

Распространение приложений через Интернет Приложения, предназначенные для широкого крута пользователей, можно загру жать на целевые компьютеры через Интернет. Процедуры подготовки к распространению через Интернет и через локальную сеть не отличаются за Развертывание Глава одного: файлы дистрибутива публикуют не в каталоге, а в виртуальном Web-каталоге. Если для установки приложения требуется Windows Installer, скопируйте файлы в отдельный каталог, заданный в поле Windows Installer upgrade folder URL на свойств проекта установочной программы. При этом необходимо установить свойство Bootstrapper в Web Bootst rapper, поскольку программы для установки Windows Installer, предназначенные для использования Web, имеют встроенный механизм аутентификации.

Распространение приложений через Web 1. Чтобы создать программу для подготовки компьютеров к развертыва нию приложения, на страницах свойств проекта установочной программы за дайте для свойства Bootstrapper значение Web Bootstrapper. Запишите в свойство Setup Folder URL адрес виртуального Web-каталога, куда следует скопировать устанавливаемое приложение. При необходимости укажите адрес дополнитель ного каталога с программой установки Windows Installer при помощи свойства Windows Installer Upgrade Program URL.

2. Скомпилируйте проект установочной программы.

3. Скопируйте файлы, полученные при компиляции, в виртуальный каталог, пред назначенный для публикации дистрибутива приложения. Если в пункте 1 вы задали адрес каталога с программой установки Windows Installer, скопируйте в этот каталог установочные файлы Windows Installer.

4. Опубликуйте URL приложения, чтобы он был доступен всем заинтересованным лицам.

Развертывание проекта После создания дистрибутива приложения с установочной программой и распро странения его по целевым компьютерам дальнейшее развертывание не ет сложности. Если для установки приложения не требуется Windows дос таточно дважды щелкнуть сгенерированный при компиляции устано вочного проекта, в противном случае для запуска установки следует дважды нуть файла который при необходимости установит Windows Installer.

В любом случае на следующем этапе открывается запускающий мастер он автоматически приложение в заданный каталог. О стройке мастера установки на занятии 2.

Резюме • Для развертывания простых применяют команду XCOPY, которая копирует на целевой компьютер каталог приложения со всем содержим.

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

• В Visual Studio можно создавать проекты установочных программ для при ложений и модулей, использующих Windows Для ис полнения созданной таким образом установочной программы необходим dows Installer 1.5. Установочный комплект (дистрибутив) приложения содержит все конфигурационные данные и все необходимое для установки приложения на целевой компьютер. Дополнительные модули применяют для распростране ния DLL-файлов, которые нельзя установить отдельно, а только вместе с при ложением.

• Мастер Setup Project позволяет выбрать файлы для включения в проект устано вочной программы и тип проекта.

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

Занятие 2. Конфигурирование проекта установочной программы Проекты установочных программ, Windows предоставляют богатые возможности настройки: разрешается указывать каталог для установки фай лов на целевом компьютере, создавать связи между проверять условия, чтобы разрешить или запретить установку приложения, а также выполнять различ ные действия, разработчиком. Это занятие посвящается созданию и настройке установочных программ, использующих Windows Installer.

Изучив материал этого занятия, вы сможете:

опубликовать сведения о приложении при помощи соответствующих свойств проекта установочной программы;

настраивать структуру каталогов для развертывания приложения с помощью редактора системы;

создавать разделы реестра во время установки при помощи редактора реестра;

создавать связи между файлами и приложениями с помощью редактора типов файлов;

модифицировать пользовательский интерфейс установочной программы при помощи редактора пользовательского интерфейса;

определять нестандартные действия, исполняемые во время установки приложения;

проверять условия, необходимые для установки приложения;

создавать с помощью программы Ngen.exe образ приложения, скомпилированного в машинные коды, предназначенный для клиентских компьютеров;

проверять соответствие разрешений, запрошенных устанавливаемым приложением, политике безопасности.

Продолжительность занятия - около 45 минут.

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

Проект установочной программы Проект установочной программы поддерживает ряд свойств, которые позволяют предоставить некоторые сведения о проекте, а также задать определенные действия, что удобно для управления версиями проекта. Их устанавливают в окне Properties (здесь имеется в виду окно Properties интегрированной среды разработки, а не стра 2 Конфигурирование проекта установочной свойств проекта, о которых шла речь на предыдущем занятии). Большинство из них касается сведений, описывающих приложения:

• — задает значок, отображаемый в диалоговом окне Add/ Remove Programs на клиентском компьютере;

• Author — сведения об авторе программы;

• — описание приложения;

• Keywords — список ключевых слов, связанных с приложением;

• — сведения о локализации приложения;

• Manufacturer — информация о производителе приложения;

• — URL Web-сайта производителя;

• — имя продукта;

• Subject — название области применения приложения;

• — номер телефона службы технической поддержки приложения;

• — адрес сайта службы поддержки технической поддержки приложе ния;

• Title — название приложения.

Прочие свойства проекта установочной программы определяют ее поведение во установки приложения:

• — если установить это свойство в true, программа установки попытается найти на целевом компьютере более «свежую» версию данного при ложения. Если таковая отыщется, установка приложения прервется;

• — если установить это свойство в true, программа уста новки попытается найти на целевом компьютере предыдущие версии данного приложения и удалит их, если таковые отыщутся;

• Version — хранит сведения, используемые предыдущими свойствами для опре деления версии приложения.

Кроме того, поддерживаются два дополнительных свойства: и — ни в коем случае не изменяйте их вручную.

Значения всех указанных свойств задают во время разработки в окне Properties.

При необходимости это можно сделать и отдельных файлов проекта ной программы.

Регистрация компонентов во время установки Если проект установочной программы включает компоненты COM или лю бые другие компоненты, требующие регистрации, во время установки это необхо димо сделать. Для этого следует установить окне Properties свойство Register файла. Оно принимает следующие значения:

• — объект не требует регистрации;

• — объект будет зарегистрирован как объект СОМ;

• — объект будет зарегистрирован как объект СОМ;

• — во время установки этот элемент регистрируется как объект СОМ, регистрирующийся самостоятельно;

• — во время установки этот объект будет зарегистрирован как нент Font.

Для и компонентов не требуется, поэтому для них данное можно установить в для шрифта в а для файлов СОМ, в о версии строку — Как компонент во время установки Выделите этот нужный компонент в окне Solution Explorer. В окне Properties уста новите для его свойства Register соответствующее значение.

Редакторы свойств программы установки В Visual Studio имеется шесть редакторов свойств установочной программы, позволяющие настраивать самые разные ее свойства:

• редактор файловой системы (File System Editor) — позволяет выбрать каталог фай ловой системы целевого компьютера, в который следует установить приложение;

• редактор реестра (Registry Editor) — создает записи реестра в процессе установки;

• редактор типов файлов (File Types Editor) — связывает типы файлов с обрабаты вающими их приложениями;

• редактор пользовательского интерфейса Interface Editor) — модифицирует пользовательский интерфейс установочной программы. Используется как при обычной установке, так при установке с помощью • редактор нестандартных действий (Custom Actions Editor) — задает нестандартные действия, выполняемые установочной программой;

редактор (Launch Editor) — определяет необходимые условия для начала установки.

Далее эти редакторы обсуждаются более подробно.

Редактор файловой системы Этот редактор позволяет манипулировать файловой системой целевого компьюте ра: записывать выходные файлы в различные каталоги, создавать на целевом ком пьютере новые каталоги, а также создавать или добавлять ярлыки. Чтобы редактор файловой системы, выделите свой проект в окне Solution Explorer и выбе рите в меню View команду Editor\File System Editor.

Как видно из рис. 10-8, окно редактора разделено на две панели.

Рис. 10-8. Редактор файловой системы На правой панели отображается список выходных файлов проекта установоч ной программы, а на левой — структура каталогов целевого компьютера.

она включает три папки: каталог приложения, рабочий стол и папку Программы для текущего пользователя. По умолчанию выходные файлы записываются в ката лог приложения. Целевой каталог для любого файла можно изменить, этот файл на правой панели и его в требуемую папку. Кроме того, файловой системы позволяет создавать дополнительные папки — для этого доста точно щелкнуть его левую панель правой кнопкой и выбрать из контекстного команду Add Special Folder (рис, 10-9).

5 Folder Folder Folder Data Folder User's Favorites Folder Personal Data Folder To Menu User's Menu Startup Folder Template Folder Windows Global Cache Folder Folder Рис. 10-9. Контекстное меню Здесь можно добавить к структуре каталогов стандартную папку либо собственную. Папки, созданные разработчиком при помощи редактора, создаются в файловой системе компьютера во время установки приложения.

Добавление несжатого файла к Редактор файловой системы позволяет добавлять к проекту установочной програм мы несжатые файлы и сборки. Они включаются в дистрибутив и устанавливаются одновременно с приложением, но не сжимаются и не упаковываются с другими выходными файлами проекта установочной программы.

Добавление к дистрибутиву несжатых файлов и сборок 1. Если целевой каталог для несжатого файла отсутствует на левой панели редак тора, щелкните ее правой кнопкой и добавьте каталог с помощью кон текстного меню. Так, в любом из каталогов разрешается создать вложенный каталог, щелкнув каталог правой кнопкой и выбрав команду Add\Folder.

2. На левой панели редактора файловой системы щелкните правой кнопкой ката лог, в который следует установить несжатый файл, и выберите File (или Assembly, если добавляется сборка).

3. Выберите нужный файл и щелкните ОК (в случае сборки) или Open (в случае файла) — файл (или сборка) добавляется к проекту установочной программы;

во время установки приложения этот файл будет записан в соответствующий целевой каталог на целевом компьютере.

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

Чтобы установить сборку в GAC, ее прежде всего необходимо подписать при помо щи строгого имени (подробнее о строгих именах — в главе 9). После этого останет ся лишь добавить каталог GAC к структуре каталогов в редакторе файловой систе мы и поместить нужную сборку в этот каталог — во время установки приложения сборка будет записана в GAC.

Как поместить сборку в GAC во время установки приложения Подпишите сборку при помощи строгого имени (как это делается — см. в главе 9).

2. Создайте проект установочной программы и откройте редактор файловой сис темы.

3. Щелкните правой кнопкой левую панель редактора и выберите Add Special Folder, затем выберите в контекстном меню каталог GAC.

4. Щелкните правой кнопкой каталог GAC на левой панели редактора файловой системы и выберите команду Найдите требуемую сборку и щелк ните ОК, чтобы добавить ее. Если эта сборка до сих пор не добавлена к проекту установочной программы, это происходит сейчас. Во время установки приложе ния она помещается в GAC.

Добавление ярлыка при помощи редактора файловой системы При желании для устанавливаемого приложения можно создать ярлык на рабочем столе (или в другой папке) целевого компьютера. Для этого также применяют ре дактор файловой системы.

Как создать ярлык на целевом компьютере 1. В окне Explorer щелкните правой кнопкой файл, для которого необхо димо создать ярлык, и выберите Choose Find In Editor — на правой панели ре дактора файловой системы отображается каталог с выбранным файлом.

2. На правой панели редактора файловой системы щелкните правой кнопкой файл, для которого создаете ярлык, и выберите команду Create Shortcut — ярлык для этого файла создается и добавляется на панель.

3. Перетащите ярлык с правой панели в нужный каталог, отображаемый на левой панели.

Редактор реестра Редактор реестра (рис. 10-10) позволяет во время установки приложения создавать записи в системном реестре. Разрешается создавать новые разделы реестра и уста навливать новые значения для разделов.

Окно редактора реестра также разделено на две панели;

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

Как добавить к реестру новый раздел Чтобы записать в реестр новый раздел, щелкните правой кнопкой существую щий раздел, в котором нужно создать вложенный раздел, и выберите команду New Key — создается новый раздел.

,.

Редактор реестра Как добавить новое значение в раздел реестра На левой панели щелкните правой кнопкой раздел реестра, к которому вы хоти те добавить новое значение, и выберите команду New, затем, в зависимости от типа добавляемого значения, щелкните String Value, Environment, String Value.

Binary Value или DWORD Value.

2. В окне Properties определите свойство добавленного реестра, Редактор типов файлов Этот редактор (рис. позволяет создавать связать устанавливаемое ние с определенными файловыми расширениями. Пример — связь между файлами с расширением.txt и Блокнотом: двойным щелчком любой.txt-файл автоматичес ки открывается в Блокноте.

Рис. 10-11. Редактор типов файлов Чтобы создать новую связь «приложение — тип щелкните правой кноп кой File Types Editor и выберите Add File Type — в окне появится новая запись для типа файла, ниже отображается действие Чтобы добавить дополнительные действия, правой кнопкой созданную запись и выберите Add Action. На строить созданную связь можно через окно, свойства типа файлов и заданного для него действия.

Так, свойство связи Name определяет составляющие ее имена типов файлов.

Чтобы добавить к связи дополнительные типы файлов, задайте соответствующие файловые расширения в свойстве Если с устанавливаемым приложени ем нужно связать несколько типов перечислите их в данном свойстве через точку с запятой (точка перед расширением не обязательна).

452 Развертывание Свойство связи представляет приложение, запускаемое в ответ на выпол нение некоторого действия над заданными свойством Name. Так, если нужно связать устанавливаемое приложение и файлы с расширением поместите путь к приложению в свойство Command — при исполнении некоторого действия над при двойном щелчке) заданное приложение запустится и обработает файл.

У связанного с типом файла действия есть три свойства. Свойство Name содер жит текст, который отображается в контекстном меню, вызываемом щелчком фай ла с данным расширением правой Свойство задает описание дей ствия, выполняемого над данным типом файлов, а свойство позволяет передать приложению любые необходимые ему данные через аргументы команд ной строки.

Если щелкнуть правой кнопкой файл документа, связанный с некоторым при ложением, открывается контекстное меню, отображающее значения свойства Name для всех действий, определенных для данного типа файлов. При выборе одного из этих действий запускается заданное свойством Command приложение, которое по лучает через аргументы командной строки путь к данному а также лю бые параметры, заданные свойством Arguments. Путь к файлу всегда является пер вым элементом массива Все аргументы передаются методу Main вызы ваемого приложения. в приложении должен быть код, обрабатываю щий переданные аргументы и исполняющий заданное действие. Следующий при мер демонстрирует, как при помощи команды Open приложения открыть файл, за данный аргументами командной строки:

Visual Basic Sub Main(ByVal args() As String) If <> 0 Then Предполагается, что метод в качестве параметра строку, содержащую путь к файлу, Метод Open должен быть поскольку из таких нельзя вызывать экземпляров.

End If End Sub Visual C# static void args) { { // Предполагается, что Open принимает в качестве параметра // содержащую путь к открываемому файлу.

// Метод Open должен быть поскольку из // таких методов нельзя вызывать методы экземпляров.

else Примечание У Windows Forms, написанных на Basic, по умолча нию нет поэтому ее придется добавить самостоятельно и сделать Sub Main стартовым установив соответствующее свойство проекта. В ложениях на Visual вручную откорректировать объявление метода static void Main, чтобы заставить его принимать в качестве аргумента массив строк.

Редактор пользовательского интерфейса Этот редактор позволяет модифицировать пользовательский интерфейс установоч ной программы приложения. Редактор пользовательского интерфейса два дерева объектов: одно для обычной установки, а другое для установки админи стратором (рис.

Welcome Folder Installation Folder End Рис. 10-12. Редактор пользовательского интерфейса Оба дерева в графической форме представляют набор диалоговых окон, отобра жаемых пользователю во время установки приложения. У каждого дерева три вет ви: Start (начало), Progress, (продолжение) и End (завершение), содержащих набор предопределенных диалоговых окон, которые отображаются на соответствующем этапе установки.

В начальной фазе установки программа Windows Installer собирает о компьютере и пользователе, необходимые для развертывания приложения. Все ди алоговые окна, требующие взаимодействия с пользователем (например окно выбо ра каталога для установки), следует помещать в ветвь начальной фазы. На Глава тельном этапе начальной фазы Windows Installer проверяет размер доступного мес та на диске. Если его не хватает, установка заканчивается неудачей.

Во время второй фазы (продолжения) выполняется собственно установка при ложения (копируются его файлы). На этой фазе взаимодействие с пользователем обычно не отображается только окно с индикатором хода установки.

Заключительная фаза установки начинается после завершения копирования файлов приложения. В течение этой фазы пользователь также получает сведения о ходе установки.

Разрешается редактировать свойства любого диалогового окна — для этого делите нужное окно в редакторе пользовательского интерфейса и установите его свойства в окне Properties. Например, изменив свойство диалогового окна можно заставить его отображать логотип своей компании, Также можно изменить порядок отображения диалоговых окон в ходе установ ки приложения. Для этого щелкните диалоговое окно и перетащите его в требуе мую точку дерева. Технически порядок отображения окон можно изменять произ вольно, но на практике существует ряд ограничений, определяемых здравым смыс лом;

например, нельзя начинать установку с отображения окна Finished.

Обычная и административная установка При конфигурировании проекта для использования административной установки (см. занятие 1), можно предоставить администратору возможности, недоступные при обычной установке. К примеру, лишить конечных права выбора каталога для установки приложения, предоставив его курирующе му установку. В этом случае из набора окон для обычной установки следует удалить окно Folder, но в наборе окон для установки администратором его сле дует оставить. Так, если администратор задаст каталог для установки приложения, конечные пользователи смогут установить это приложение только в него.

Добавление диалоговых окон К пользовательскому интерфейсу программы установки можно добавить дополни тельные диалоговые окна, настраивая их по своему вкусу. Например, можно добав лять самые разные диалоговые окна, способные принимать информацию от пользо вателя через флажки и текстовые поля. Внешний вид этих диалого вых окон разрешается настраивать, редактируя соответствующие свойства в окне Properties. Помимо свойств, определяющих внешний вид окна (таких, как Banner поддерживается ряд свойств, позволяющих передать приложению информацию, введенную пользователем. Рассмотрим диалоговое окно типа (окно с двумя переключателями). Можно добавить это окно к набору окон программы установки. Для этого в окне редактора интерфейса щелк ните узел правой кнопкой и выберите команду Add Dialog — от кроется одноименное диалоговое окно;

укажите в нем окно типа RadioButtons (2 Помимо стандартных свойств, определяющих внешний вид, это окно поддерживает следующие свойства:

Label • • • • • Свойства вида где N — номер кнопки переключателя, определяют текст ее подписи, а свойства вида — значение, возвращаемое группой переключателей при выборе переключателя с номером N. Свойство представляет первоначальное значение группы переключателей, а в свойстве Button Property строка с именем свойства — его программа установки использу ет для получения значения этой группы переключателей. Это свойство вызывают при проверке нестандартных условий во время установки (о проверке условий см, чтобы решить, продолжать ли установку. Так, если = Buttons, можно определить условие, которое во время установки будет проверять значение свойства Buttons. Если выбран первый переключатель, Buttons получит значение, свойством а если выбран второй переключатель — зна чение, заданное свойством Подобные свойства поддерживают многие диалоговые окна, добавляемые к программе установки, — это позволяет при уста новке приложения предоставить пользователям самые разные возможности вплоть до самых сложных.

Редактор нестандартных действий Технология нестандартных действий (custom actions) обеспечивает поддержку до полнительных возможностей для программ Редактор нестандартных дей ствий позволяет добавить код, выполняемый в процессе установки. Этот код вызы вается в на одно из событий, генерируемых программой установки, Commit, Rollback Событие генерируется после копирова ния файлов, но перед подтверждением завершения установки. Событие Commit ге нерируется после подтверждения завершения установки на целевом компьютере.

Действия, заданные для события выполняются в случае неудачи установ ки и включают отмену (откат) изменений, внесенных программой установки. На событие Unmstall генерируется при выборе удаления приложения. Редактор нестандартных действий (рис. 10-13) позволяет привязать код к этим Рис. 10-13. Редактор нестандартных Любой код может быть исполнен как нестандартное действие. Чтобы создать не стандартное действие, в окне редактора правой кнопкой требуемое со бытие и выберите из контекстного меню команду Add Custom Action — откроется диалоговое окно Select Item Project. В этом окне можно назначить действию ка кой-либо элемент проекта — в результате созданное нестандартное действие, пред заданный элемент проекта, добавляется к проекту установочной про граммы. Свойства нестандартного действия (таблица 10-2) настраивают через окно Properties.

Таблица 10-2. Свойства нестандартного действия Имя Описание Отображаемое имя для данного нестандартного действия (Name) Arguments Передает параметры командной строки программе, реализующей нестандартное действие. Годится только для нестандартных дей ствий, реализованных исполняемыми программами Позволяет задать логический оператор, вычисляемый перед выпол нением нестандартного действия. Если оператор дает true, действие выполняется, в противном случае — нет. Заданный этим свойством оператор также может обрабатывать значения, полученные от пользователя через дополнительные окна Передает программе, реализующей нестандартное действие, дополнительные данные Entry Point Определяет имя метода нестандартного действия. Если это свойство не задано, вызывается метод, имя которого совпадает с именем события, срабатывание которого инициировало данное нестандартное действие (например, Применимо только к нестандартным действиям, реализованным посредством DLL Хранит значение типа Boolean, указывающее, реализовано ли данное нестандартное действие в классе Если это его значение равно в случае — false Содержит полный путь (на компьютере разработчика) к файлу программы, реализующей нестандартное действие;

доступно только для чтения Создание нестандартного действия Напишите, протестируйте и отладьте код, реализующий нестандартное действие, которое вы хотите добавить к проекту установочной программы.

Затем в меню View выберите Actions Editor, чтобы вызвать ре дактор действий.

2. Щелкните правой кнопкой событие, с которым следует связать нестандартное действие, и выберите команду Add Custom Action — откроется окно Select Item In Project.

3. Найдите и выберите созданный в пункте 1 файл с кодом, реализующий нестан дартное действие.

4. В окне Properties настройте свойства для нового нестандартного действия.

Редактор условий установки Редактор условий установки — Launch Conditions Editor (рис. 10-14) — позволяет определять условия, которым компьютер должен удовлетворять для начала установки. Так, можно требовать, чтобы целевой компьютер работал под опреде ленной версией Windows или чтобы на нем была установлена определенная некоторого компонента, необходимого приложению. Кроме того, можно наличие определенных файлов, записей реестра, компонентов Windows Installer и принимать решение о начале установки по результатам проверки.

Окно редактора разделено на две части;

в первой задают объект (файл, раздел реестра или компонент Windows Installer), а во второй — условие, зависящее от на личия на целевом компьютере этого объекта. Если условие выполняется, процесс установки продолжается, в противном случае установка прекращается с откатом действий, сделанных к данному моменту, Target - Launch Рис. 10-14. Редактор условий Выбор объекта условия Чтобы задать объект условия, в редакторе условий щелкните правой кнопкой Target Machine и требуемый объект Таблица 10-3. Типы объектов установки Тип Объект на целевом компьютере File Search Файл с версией, максимальным или минимальным размером или датой Registry Search Запись в реестре (корень, и значение) Windows Installer Search Компонент Windows Installer Каждый объект условия поддерживает свойство которое задает имя ис комого объекта, — оно используется для получения булева значения, щего результат поиска. Имя, заданное этим свойством, используется для рования условий установки (об этом далее в этом разделе).

Как задать объект условия установки 1. В меню View выберите Conditions, чтобы вызвать редактор усло вий установки.

2. В редакторе условий щелкните правой кнопкой Search Target Machine и те в контекстном меню требуемый объект.

3. В окне Properties настройте условия поиска выбранного объекта.

458 условий установки объект, можно проверить его наличие на компьютере и скон струировать условие установки, зависящее от результатов этой проверки. Условие установки действует по принципу «все или ничего» и определяет дальнейшую судь бу установки приложения. Если это условие выполняется, установка продолжает ся, в противном случае она прекращается.

Чтобы создать условие установки, в редакторе условий щелкните правой кноп кой Launch Conditions и выберите команду Add Launch Condition. Свойства усло вий установки приводятся в таблице 10-4.

Таблица 10-4. Свойства условия установки Имя Что определяет Name Имя условия установки, отображаемое в редакторе Condition Строку с допустимым логическим оператором, вычисляемым во время установки. Если оператор дает true, установка продолжается, а если false — В строке может быть несколько выражений, операторами AND, OR и др.

Message Текст сообщения, отображаемого при неудачном завершении установки Как создать условие установки В меню View выберите команду Conditions Editor, чтобы вызвать редактор условий установки.

2. В редакторе условий щелкните правой кнопкой Launch Conditions и выберите команду Add Launch Condition, чтобы добавить новое условие установки.

3. В окне настройте свойства созданного условия.

Установка сборок в виде компилированных образов Приложения и сборки, созданные с применением Framework, обычно развер тывают в виде файлов с кодом на языке IL. Во время выполнения этот ком пилируются по требованию в машинные коды, специфичные для данного компью тера, что обеспечивает максимально эффективное использование ресурсов и высо кую производительность приложения. Если производительность имеет решающее значение, можно заранее скомпилировать приложение в машинные коды. Для со здания образа приложения, заранее скомпилированного в машинные коды, пред назначена утилита Ngen.exe.

Ngen.exe — это утилита командной строки, которая генерирует образ приложе ния или сборки, состоящий из машинных кодов, и помещает его в кэш образов (Native Image Cache). После этого при каждом вызове данной сборки CLR будет автоматически обнаруживать и использовать ее образ.

Создание образа сборки или компилированного в машинные коды 1. Вызовите окно командной строки Visual Studio Для этого в меню Пуск выберите Visual Studio Visual Studio Tools.

2. Перейдите в каталог с нужным приложением или сборкой.

3. Воспользуйтесь утилитой Ngen.exe, как показано ниже. Для биб лиотечных сборок достаточно указать имя сборки, а для исполняемых сборок требуется путь к.ехе-файлу:

Занятие 2 45§ myAssembly Проверка разрешений, запрашиваемых установленной сборкой Установив сборку, можно воспользоваться утилитой Permview.exe для просмотра разрешений, запрашиваемых данной сборкой. Чтобы вызвать эту утилиту, откройте окно командной строки Visual Studio и исполните одну из команд:

Permview.exe где — имя библиотечной сборки, а — имя приложения.

лагается, что декларация сборки хранится вместе со сборкой, в противном случае при вызове Permview.exe следует указать файл с декларацией сборки, Эта утилита отображает список разрешений, запрошенных на уровне сборки.

Если необходимо просмотреть полный список разрешений, включая запрошенные на уровне класса или метода, вызовите утилиту с параметром /DECL:

Permview.exe /DECL Выходные данные этой утилиты можно направлять не только на консоль, но и в файл, который задают параметром /OUTPUT:

/OUTPUT Резюме • Установочные программы обладают широкими возможностями настройки. Во время разработки через окно Properties разрешается задать свойства установоч ной программы, определяющие ее поведение и сведения о ее происхождении.

• Свойство Register предназначено для регистрации компонентов СОМ и тов во время установки приложений.

• Редактор файловой системы позволяет модифицировать файловую систему це левого компьютера.

• Редактор реестра служит для добавления в реестр целевого • Редактор типов файлов предназначен для связывания устанавливаемого прило жения с определенными типами файлов на целевом компьютере.

• Редактор пользовательского интерфейса позволяет настраивать интерфейс уста новочной программы.

• Редактор нестандартных действий позволяет определить нестандартные дей ствия, выполняемые в установки приложения.

• Редактор условий установки применяют для проверки наличия на целевом ком пьютере необходимых объектов и конструирования условий, разрешающих про должить установку или ее.

• Утилита Ngen.exe позволяет создать образ приложения или сборки, компилиро ванной в машинные коды.

• Утилита Permview.exe предназначена для просмотра требуемых сборкой разре шений.

Глава Практикум 10. Создание установочной программы Вы создадите проект установочный программы для приложения, создан ного на практикумах глав 8 и 9. Для решения поставленной задачи вос пользуетесь мастером Setup Project и настроите полученную заготовку про екта при помощи страницы его свойств. Вы также должны добавить на рабочий стол целевого компьютера ярлык для приложения, а также при помощи условия установки проверить наличие ОС Windows 2000 или выше. В завершение вы скомпонуете созданный проект и установите при ложение на свой компьютер, а затем проверите разрешения, необходи мые вашему приложению. Решение задач этого практикума можно найти в каталоге \Labs\ChlO\SoIution на прилагаемом компакт-диске.

Прежде всего Для выполнения задач этого практикума вам понадобятся результаты практикумов глав 8 и 9;

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

Продолжительность практикума - около Упражнение Создание установочной программы Сейчас вы создадите проект установочной программы для своего прило жения с помощью мастера Setup Project.

Создание проекта установочной программы 1. В меню File выберите команду Add Project — откроется окно Add New Project.

2. На левой панели этого окна выберите Setup And Deployment Projects, а на пра вой — Setup Wizard. Назовите проект International и щелкните ОК.

3. В окне мастера Setup щелкните кнопку Next, чтобы перейти к странице выбора типа проекта.

4. Выберите Create A Setup For A Windows и щелкните Next, чтобы пе рейти к странице выбора файлов, включаемых в проект.

5. Выберите Primary Output, Localized Output и Content Files. Щелкните Next.

6. На четвертой странице щелкните Next, затем Finish, чтобы создать установоч ный проект.

7. В окне Solution Explorer щелкните правой кнопкой InternationalSales и выберите Properties — откроется окно свойств проекта InternationalSales.

8. В раскрывающемся меню Bootstrapper выберите None, чтобы отказаться от со здания программы, устанавливающей Windows Примечание Если ваш компьютер работает под управлением Windows 2000, вме сто None нужно выбрать Windows Bootstrapper.

9. Щелкните OK, чтобы закрыть окно свойств проекта.

10. Сохраните результаты своей работы, щелкнув File\Save Упражнение 2. Настройка установочной программы Сейчас вы создадите для устанавливаемого приложения ярлык, емый на рабочем столе целевого компьютера, и добавите условие уста новки, наличие на целевом компьютере Windows или более высокой версии ОС.

Добавление ярлыка для приложения 1. В меню View выберите System, чтобы вызвать редактор файловой системы.

2. На левой панели редактора щелкните Folder, чтобы открыть каталог со своим приложением — на правой панели редактора отображается список вы ходных файлов проекта установочной программы, 3. На правой панели редактора щелкните правой кнопкой Primary Output и выбе рите команду Create Shortcut — будет создан новый ярлык. Назовите его Interna Sales.

4. Перетащите ярлык в папку рабочего стола пользовательского компьютера.

5. В меню View выберите Editors\Launch Conditions Editor, чтобы вызвать редактор условий 6. Щелкните правой кнопкой Launch Conditions и выберите Add Condition, чтобы добавить новое условие установки. Назовите созданное усло вие 7. В окне Properties установите свойство Condition в — это потре бует наличия на целевом компьютере ОС Windows 2000 или более поздней вер сии. Присвойте свойству Message значение You must be running Windows 2000 or later to install this application.

8. В меню Build выберите команду Build чтобы скомпилировать решение.

9. В меню File выберите команду Save all.

10. Закройте Visual Studio Упражнение 3. Установка приложения Сейчас вы установите приложение на свой компьютер, а также работу ярлыка, созданного установочной программой, и политику безо пасности вашей сборки.

Как установить приложение Вызовите Проводник и найдите установочную программу в каталоге Debug, вло женном в каталог Setup Project.

2. Дважды щелкните значок Следуйте указаниям программы ус тановки, 3. После завершения установки найдите на рабочем столе ярлык International Sales.

Дважды щелкните его, чтобы запустить свое приложение.

4. Закройте приложение.

5. Вызовите командную строку Visual Studio С помощью команды cd перей дите в каталог, куда установлено ваше приложение.

6. С помощью утилиты Permview.exe просмотрите все требуемые ва шей сборкой. Чтобы полный список, вызовите Permview.exe с пара метром /DECL:

Permview.exe /DECL Примечание Если имя сборки, передаваемое утилите Permview.exe через пара метр командной строки, содержит пробелы, заключите его в кавычки.

Закрепление материала Приведенные ниже вопросы помогут вам усвоить основные темы данной главы. Если вы не сумеете ответить на вопрос, повторите матери ал соответствующего занятия. Ответы для самопроверки — в приложении «Вопросы и в конце книги.

Как выполнить развертывание приложения с помощью XCOPY? В ка ких случаях его можно применять, а в каких — нет?

2. Согласно желанию заказчика приложение должно устанавливаться на компьютеры персонала через сеть, при этом для всех сотрудников его следует установить в один и тот же каталог. Как решить эту задачу?

3. Документация на ваше приложение создана в виде набора HTML-фай лов. Как включить ее в состав дистрибутива приложения? Назовите минимум два способа.

4. Что такое образ приложения, скомпилированного в машинные коды?

Как его создать?

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

П Р И Л О Ж Е Н И Е Вопросы и ответы Глава Введение в Framework 1. Кратко перечислите главные компоненты Framework и опишите, чего они предназначены.

Framework состоит из двух основных частей: общеязыковой исполняющей среды (CLR), которая контролирует исполнение приложений, осуществляет провер ку типов и управляет памятью, и библиотеки базовых содержащей тысячи готовых классов для разработки приложений.

2. Дайте определение ссылочным типам и типами значения.

Тип содержит реальное переменной, которую он представляет, тогда как тип вместо переменной содержит ссылку на область памяти, в которой оно реально находится.

3. Как ссылаться на члены библиотеки базовых при помощи их со имен?

Для ссылки на пространства имен Framework применяют ключевые (Visual Basic и using (Visual 4. Расскажите, как работает сборщик мусора.

Это поток, работающий в фоновом режиме и непрерывно проверяющий дерево ссы лок в поисках объектов, на которые больше никто не ссылается. Обнаружив такой объект, сборщик мусора освобождает занятую им память для дальнейшего исполь зования.

5. Что такое члены класса? Назовите четыре типа членов.

Член класса или структуры — это его часть, которая служит для хранения данных или реализует некоторую функциональность. К видам относятся поля, свойства, методы и события.

6. Что такое конструкторы и деструкторы и для чего они нужны?

— это метод, инициализирующий класс или структуру.

экземпляра класса или структуры этот метод исполняется первым. Конструктор присваивает членам класса или структуры значения по умолчанию и выполняет дру гие действия, необходимые для создания объекта. Деструктор — это метод, кото рый исполняется непосредственно перед освобождением занятой объектом памяти мусора. деструктор помешают код, необходимую стку» перед уничтожением объекта.

7. Кратко поясните различия между уровнями доступа, которые задают для пользо вательских типов и членов модификаторы Public Friend и (private).

Экземпляры пользовательских типов, объявленных с Public можно создавать в любой части приложения, тогда как экземпляры типа с модифи катором Friend могут быть созданы лишь членами из сборки, в которой объявлен данный тип. Экземпляры классов с уровнем доступа Private (private) со здают только они или их дочерние классы. члены, объявленные с модификатором Public могут любые клиенты приложения, члены с модификатором доступны только членам из той же самой сборки, а члены с уровнем доступа Private (private) допускается вызывать только из типов, в которых они объявлены, 8. Нужно ли создавать экземпляр класса для обращения к общему члену? Почему?

Нет, поскольку общие члены принадлежат типу в целом, а не отдельному Глава 2. Создание пользовательского интерфейса 1. Крупный банк заказал вам приложение, которое должно быть легким в освое нии, бесшовно интегрироваться с Microsoft Office XP и иметь интерфейс, ди зайн которого соответствует стилю банка (для воспитания у сотрудников банка корпоративной культуры). Как достичь поставленных Приведите два спо соба создания интерфейса.

спроектировать для этого приложения интерфейс в стиле Microsoft Office XP, чтобы пользователи этого пакета комфортно чувствовали себя при рабо те с новым приложением. логотип банка и другие элементы фирмен ного стиля в интерфейс приложения, вы сможете выполнить поставленную заказ чиком задачу.

2. Вы создаете приложение, несколько форм которого имеют идентичный набор элементов управления. Как быстрее всего создать такие формы?

Создайте родительскую форму с общим набором элементов управления ее как основу для создания производных форм со специфической функцио нальностью при наследования.

3. Каждый раз, когда форма получает фокус, должно отображаться приглашение на ввод значения. Опишите наилучшую стратегию для реализации подобной Поместите соответствующий код в обработчик события Activated.

4. Как задать порядок передачи фокуса между элементами управления на форме по нажатию клавиши Tab? Приведите два способа решения этой задачи.

Это возможно средствами Visual Studio, выбрав в меню View элемент Tab Index и щелкнув элементы управления в порядке желаемой очередности передачи фокуса.

способ — установить свойство программно или с помо щью окна Properties.

5. Что такое провайдеры дополнительных свойств и для чего их применяют?

Провайдеры дополнительных свойств — это компоненты, такие, как Error Provider, и предоставляющие размещенным на форме элементам управ ления дополнительные свойства. Эти компоненты применяют для отображения пользователям дополнительных сведений об элементах управления, составляющих интерфейс приложений.

6. Для каких целей лучше использовать контекстное меню?

Если все возможности программы доступны через главное контекстное меню может стать излишним и только затруднять работу с программой. Однако контекст ные меню позволяют оперативно получать доступ к возможностям, только в определенных и только там, где это требуется, 7. Объясните, что такое на уровне формы» и «проверка на уровне поля».

Под первым процессом понимают одновременную проверку всех данных, введенных в форму, перед ее на сервер или локальному приложению, а под вторым — поочередную проверку всех полей формы данных по мере их заполнения.

Глава 3. Типы и члены в каких случаях преобразование типов выполняется неявно, а в ка ких — явно. В чем опасность явного преобразования типов?

Неявное преобразование если оно не угрожает потерей данных, в про случае требуется выполнить явное Учтите, что при явном преобразовании данных возможно снижение точности значения и гене исключения.

2. Почему вместо значений лучше использовать в коде перечисления и константы?

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

3. Кратко опишите сходства и различия между массивами и наборами.

Массивы и наборы применяют для управления группами объектов. Чтобы получить доступ к нужному объекту, хранящемуся в массиве или достаточно указать индекс этого объекта. Для обработки членов массивов (и большинства наборов) применяют циклы For Размеры массивов фиксированы, их члены необходимо инициализировать перед использованием. Члены набора необхо димо объявить и инициализировать за пределами набора, а потом явно добавить к набору. Классы наборов из пространства имен System. Collections могут динамически уменьшаться и увеличиваться;

кроме того, добавлять и удалять элементы наборов разрешается во время выполнения.

4. Чем свойства отличаются от полей? Почему для представления доступа к кры тым данным лучше применять свойства, а не поля?

При обращении к свойству для чтения или установки исполняется код, проверяю щий допустимость запрошенной операции — это дает разработчику больший конт роль над чтением и записью свойств. В отличие от свойств, при чтении и установке полей никакой проверки не выполняется.

5. Объясните, что такое делегат, и расскажите, как он работает.

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

Глава 4. Объектно-ориентированное программирование и полиморфизм Дайте краткое определение инкапсуляции и раскройте ее значение для ООП.

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

2. Что такое и для чего она применяется?

Перегрузка позволяет создать несколько методов с одинаковыми но с раз ными Перегрузку удобно применять для создания методов с ной или близкой функциональностью, разные наборы параметров.

3. Вам необходимо создать несколько не связанных между собой классов, предос тавляющих общий набор методов. Как, используя принцип полиморфизма, сде лать методы, предоставляемые этими классами, доступными другим классам?

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

4. Вам нужно создать несколько классов, поддерживающих основные возможнос ти, но предназначенных для взаимодействия с разными наборами объектов. Ка кой способ выбрать, чтобы затратить на разработку таких классов минимальное время?

Создайте реализующий все функции, общие для этих классов. Затем объя вите на его основе производные классы и реализуйте в них дополнительные функ ции, уникальные для каждого из них.

5. Что такое абстрактные классы и для чего их применяют?

Абстрактные классы — это особая разновидность классов, не допускающих созда ния экземпляров, эти классы можно использовать только как базовые. У абстракт ного класса имеются как реализованные, так и абстрактные методы;

последние при меняют в производных классах. Так, объявляя абстрактный класс, для общих мето дов можно предоставить полную реализацию, а для уникальных — только интерфейс, оставив их реализацию на долю производных классов.

Глава 5. Тестирование и отладка приложений Опишите режим пошагового исполнения кода и доступные в нем возможности.

Режим пошагового исполнения обеспечивает построчное исполнение кода, позво ляя анализировать поведения программы во время выполнения. Предусмотрено не сколько режимов пошагового исполнения, как-то: Step Into, Step Over, Step Out, Run To Cursor и Set Next Statement.

2. Для чего служит окно Watch?

Окно Watch применяют для наблюдения за переменными приложения в режиме по шагового исполнения.

3. Представьте, что вы тестируете бета-версию большого приложения. Вам нужно регистрировать во время выполнения сведения о производительности приложе ния в текстовых файлах. Кратко опишите стратегию решения этой Разместите в коде приложения Trace, данные, которые вас интересуют. Затем создайте объект и добавьте его к набору После этого создайте трассировочные переключатели, управляю щие операторами Trace, и настройте объект Text для записи трас сировочных данных в текстовый файл. Скомпилируйте приложение, установите его и включите операторы Trace, активировав трассировочные переключатели.

4. Нужно ли при тестировании метода проверять обработку заведомо недопусти мых аргументов? Почему?

Да, нужно. Помимо тестирования обработки допустимых аргументов следует про верить, как программа обрабатывает заведомо недопустимые значения, чтобы убе диться в ее способности устранять последствия ошибок ввода без катастрофичес ких сбоев.

5. Кратко опишите назначение каждой части конструкции В блок Try (try) заключают код приложения, который может генерировать исключе ние. Если при исполнении этого кода возникает исключение, оно перехватывается соответствующим блоком Catch содержащим код, способный это исключение. В завершение управление передается блоку Finally который исполняется независимо от того, обработано исключение или нет.

Глава 6. Доступ к данным с помощью 1. Перечислите основные компоненты провайдера данных и назовите их функции.

Провайдер данных — это набор компонентов, обеспечивающих доступ к данным. Любой провайдер данных состоит по крайне мере из трех объектов: Con nection представляет реальное соединение с источником данных, Command — ко манду, исполняемую над источником, DataReader обеспечивает доступ для одно направленного последовательного чтения к присоединенному источнику и Adapter предназначен для организации доступа к отсоединенным 2. Кратко опишите особенности доступа к данным в ADO.NET с использованием постоянного подключения и отсоединенных данных.

В ADO.NET доступ к присоединенным данным осуществляется посредством объек та DataReader — упрощенного объекта, обеспечивающего очень быструю и эффек тивную выборку данных. Однако его возможности значительно ограничены: он собен читать записи только в одном направлении, не позволяет их модифицировать и требует монопольного доступа к объекту Connection. В отличие от объект DataAdapter, применяемый для доступа к отсоединенным данным, осуще ствляет выборку и модификацию данных при помощи соответствующих команд.

Так, для выборки данных DataAdapter исполняет над базой данных команду SE LECT: он открывает соединение, чтобы извлечь данные, загружает их в объект DataSet, представляющий копию данных в памяти, и сразу же закрывает соедине ние. Завершив обработку данных, провайдер данных обновляет содержимое ника, генерируя соответствующие команды. При этом DataAdapter поддерживает соединение открытым только во время исполнения команд над базой данных.

значения принимает свойство объектов или и что определяют эти значения?

Свойство CommandType объекта Command может принимать значения или В первом случае строка, в свойстве объекта Command, интерпретируется как оператор SQL;

если Com mandType Stored Procedure объект команды вызывает из базы хранимую процедуру и результаты, а если CommandType = команда возвращает все таблицы, заданной свойством Как в команду например ALTER или CREATE TABLE?

Для исполнения команд DDL применяют объекты Command, При этом свойство CommandType объекта следует установить в Text, а саму команду помес тить в свойство CommandText. После этого для исполнения команды остается выз вать метод Кратко опишите и недостатки применения типизированных объ Типизированные объекты DataSet позволяют обращаться с данными, как с тами обшей системы типов Благодаря этой приложение «знает» данных, возвращаемых объектом DataSet, что исключает ошибки, возникаю щие из-за некорректного преобразования типов, поскольку все они обнаруживают ся во время Нетипизированные объекты DataSet применяют, когда структура данных не известна заранее;

они также удобны тем, что их можно приме нять с любым источником данных.

Опишите механизм управления потоком данных в форме, содержащей несколь ко элементов управления, с данными?

С каждым источником данных, предоставляющим отображаемые на форме значе ния, связан объект Currency Manager, отслеживающий положение записи, отобра жаемой в данный момент связанным элементом управления. Для удобства все объек ты Currency Manager, связанные с формой, доступны через ее свойство Binding Context. Чтобы перейти к следующей записи источника данных, достаточно изме нить Свойство Position объекта Manager.

как с помощью объекта фильтрацию и упоря дочить данные.

Чтобы задать критерий упорядочения содержимого объекта Data запишите в его свойство Sort имя столбца по которому необходимо упорядочить данные. Чтобы задать фильтрацию содержимого объекта DataView, запишите в его свойство выражение, допустимый критерий фильтрации.

Дайте краткую характеристику объекту Как он связан с объек том DataSef.

Объект XmlDataDocument представляет загруженные в память данные в формате организованные в иерархическую структуру. Каждый объект XmlDataDocu ment синхронизируется с объектом DataSef, изменения, внесенный в один объект, автоматически реплицируются на другой, поэтому при помощи XmlDataDocument можно манипулировать содержимым объекта DataSet в формате XML.

Глава 7. Создание элементов управления с помощью Framework Кратко опишите каждый из трех видов нестандартных элементов управления и укажите их отличия.

Имеется три типа нестандартных элементов управления, создаваемых пользовате лем: производные, составные и формируемые. Производные элементы управления объявляют на основе стандартных элементов управления Windows Forms, от кото рых они облик и функциональность. Составные элементы управления получают путем объединения стандартных элементов управления Windows Form и добавления у них функций.

Формируемые элементы управления объявляют на основе класса Control. Разра ботка этого типа элементов требует больше всего времени, они наследуют общую функциональность, а код для прорисовки, как и все специфические возможности, должен написать разработчик.

2. Расскажите о роли объектов Brush, Pen и в визуализации графических элементов.

Объект Graphics представляет поверхность для рисования и инкапсулирует методы для отображения на ней графических элементов. Объект Brush применяют для ри сования закрашенных фигур, а Реп — для рисования контуров. Объект GraphicsPath представляет сложные визуализируемые при объекта Graphics.

3. Как нарисовать текст в клиентской области формы или другого объекта?

Прежде всего необходимо получить ссылку на объект Graphics, затем эк земпляр объекта GraphicsPath. Далее при помоши метода следует добавить к GraphicsPath нужный текст — осталось вызвать Path или Graphics. для текста.

4. Какова роль объекта License Provider в лицензировании элементов управления?

Этот объект управляет лицензий во время выполнения и доступ к лицензируемым компонентам, для которых имеется действительная лицен зия. Метод License Manager. Validate проверяет наличие файла лицензии;

ная проверяется по алгоритму, заданному объектом License Provider, Ис пользуемый объект задают при помощи атрибута License Attribute.

5. Как создать форму или элемент форма которого будет отличаться от прямоугольной?

Занесите в свойство Region формы одноименный объект, представляющий фигуру желаемой формы. Такой объект Region можно создать на основе объекта Graphics Path.

Глава 8. Сложные случаи программирования с применением Framework 1. Расскажите, как вывести на печать документ при помощи компонента выдержав межстрочные интервалы и, если это многостраничный до кумент, напечатать все его страницы?

У класса есть метод Print, генерирующий событие PrintPage. Код для прорисовки печатаемого содержимого на принтере следует помещать в обра ботчик этого события. Последний передает подлежащие объекты через эк земпляр класса Прорисовка на выполняется посред ством объекта Graphics, который также перелается через объект PagePrintEventArgs, Чтобы рассчитать верный межстрочный интервал, разделите высоту ка, заданного свойством на кегль шрифта, которым набран текст.

Для печати многостраничного документа установите свойство в true — это приведет к повторной события PrintPage.

У обработчика события PrintPage нет параметров для хранения числа напечатан ных страниц, поэтому код, контролирующий вывод на печать многостраничных до кументов, необходимо добавить к обработчику самостоятельно.

2. Как с помощью методов Begin и End асинхронно вызвать метод Web-сервиса?

Любой открытый метод Web-сервиса можно вызвать как синхронно, так и асинх ронно. Для асинхронного вызова следует вызвать метод где — имя метода. Этому методу необходимо передать делегат, ссылаю на соответствующий метод обратного вызова и возвращающий объект типа который передается как параметр методу обратного вызова. Чтобы получить результаты Web-метода, следует вызвать метод передав ему ссылку на объект, возвращенный методом 3. Перечислите и кратко поясните требования, необходимые для реализации спе циальных возможностей которые предъявляются к дидатам на получение логотипа «Certified for Этих требований пять:

• поддержка стандартных параметров пользовательского интерфейса. Так, цвет, шрифт и другие параметры оформления пользовательского интерфейса прило жения должны соответствовать общесистемным параметрам;

• поддержка высококонтрастных цветовых схем (режим High Contrast). Чтобы приложение соответствовало этому требованию, для оформления интерфейса следует применять только цвета системной палитры;

• наличие документированных способов доступа с клавиатуры ко всем возможно стям интерфейса. Основные средства реализации этого требования — примене ние быстрых клавиш и создание хорошей документации на приложение;

• указание текущего положения фокуса ввода — реализуется в основном средства ми Framework;

• поддержка способов отображения информации, помимо звуковых сигналов. Соответствие этому требованию достигается организацией поддержки средств отображения информации.

4. Расскажите, как при компонента элементы поль интерфейса справочными сообщениями.

Эта задача решается с помощью компонента способного отображать подсказки (для этого используется значение свойства эле ментов управления) и разделы справочной системы. предоставляет всем размещенным на форме элементам управления дополнительные свойства HelpString, Help Navigator. Если свойство Help не уста новлено, справочная информация извлекается из свойства HelpString и отобража ется как всплывающая в противном случае по нажатию Г1 HelpProvider отображает для данного элемента управления раздел справочной системы, задан ный свойствами Word и HelpNavigator.

5. Как создать локализованную версию формы?

этого установить свойство формы в true. Далее в свой ство Language следует записать код и/или региона, для которого чена локализованная форма. Затем следует внести в интерфейс необходимые изме нения, связанные с Значения всех свойств, измененных в ходе лока лизации, автоматически записываются в ресурсные файлы и загружаются, когда свойству присваивается соответствующее значение 6. Как преобразовать данные из кодировки в формат Unicode?

Это можно сделать при метода Encoding. Convert. Он требует объекты, пред ставляющие исходную и целевую кодировки, а также массив байт с под лежащими Convert возвращает массив байт, преобразо ванный в целевую кодировку. Преобразовать строку или символьный массив в мас сив байтов можно методом выполнить обратное позволяет метод Чем отличаются глобализация и локализация?

Глобализацией называют форматирование имеющихся данных согласно правилам, принятым в той или иной культуре, а локализацией — создание и загрузку ных версий ресурсов для каждой из поддерживаемых культур.

Глава 9. Конфигурирование и защита сборок Как подписать сборку с помощью строгого имени и для чего это нужно?

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

2. Расскажите, как извлечь ресурсы во время выполнения.

Начать следует с создания экземпляра класса связанного со сбор кой, содержащей ресурсы. После этого можно извлекать ресурсы в виде строк (при помощи метода объектов (посредством метода 3. Как во время выполнения извлечь информацию из конфигурационного файла?

А как записать в него нужные данные во время разработки?

Сначала необходимо создать объект и, вызвав его метод прочитать содержимое конфигурационного файла. Чтобы добавить к конфигу рационному файлу новые элементы, следует добавить к узлу элемен ты и указать в них значение параметра с ключом, необходимым для извлече ния параметра. Значения параметров можно изменять, редактируя конфигурацион ный файл. Чтобы коррективы вступили в силу, приложение нужно перезапустить.

4. Вы создали решение, которое должно быть доступным только членам групп Developers и Administrators локального Как реализовать такую схе му безопасности?

Следует создать пару объектов группы Deve и Третий объект получается при объединении первых двух вызовом метода Union. Для решения задачи остается по требовать полученное разрешение посредством метода Demand.

Кратко перечислите различия между декларативной и императивной моделями зашиты при использовании защиты по правам доступа к коду.

Императивная защита реализуется посредством вызова методов Per mission во время выполнения. Декларативная защита путем назначе ния классам и методам атрибутов, представляющих разрешения. Императивная защита обеспечивает более тонкий контроль над запросами разрешений во вре мя выполнения, зато атрибуты декларативной защиты добавляются в метадан ные сборок, что позволяет анализировать их при помощи клас сов из пространства имен Кроме того, при использовании де кларативной защиты с помощью директивы (assembly) удается запра шивать разрешения на уровне сборки.

Глава 10. Развертывание Как выполнить развертывание приложения с помощью XCOPY? В каких случа ях его можно применять, а в каких — нет?

Применение XCOPY — простейший способ развертывания прило жений путем копирования каталога приложения со всем его на целе вой компьютер, однако он только для развертывания приложений, не ис разделяемых файлов и не требующих выполнения специальных дей ствий время установки.

2. Согласно желанию заказчика приложение должно устанавливаться на компью теры персонала сеть, при этом для всех сотрудников его следует устано вить в один и тот же каталог. Как решить эту задачу?

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

3. Документация на ваше приложение создана в виде набора HTML-файлов. Как включить ее в состав дистрибутива приложения? Назовите минимум два способа.

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

4. Что такое образ приложения? Как его создать?

Это образ скомпилированной в машинные коды. Создать его позво ляет утилита 5. Что делает программа, подготавливающая целевой компьютер к развертыванию приложения (bootstrapper)? В каких случаях она необходима?

Перед установкой приложения эта программа автоматически определяет наличие Installer на целевой машине и, таковой отсутствует, устанавливает его. Программа для первоначальной подготовки не требуется, если предполагается развертывать приложение на компьютерах под управлением Windows XP (в ОС Windows Installer 1.5 уже есть) либо на с предустановленным Windows Installer.

Предметный указатель Framework 1. — Launch Editor см. усло — библиотека вий — базовых классов 2. 6, Я, — типов — культура см. сборка, декларация - код member см. член — совместимость module см. модуль — поддержка печати N — провайдер данных — пространство имен namespace см. пространство имен — тип данных 100 см. также тип nested type см. тип, пложённый — элемент управления object model см. обьектная модель ActiveX OLE 236-239. 279. override см. переопределение API permission см. разрешение Language Runtime) 1, 2, 3, 4, R 394, CLS (Common Language reference type см. тип, ссылочный collection см. набор Registry Editor см. редактор, реестра COM run-time error см. ошибка, периода выполне CTS type 2, ния Custom Actions Editor редактор, нестан дартных действий см. сборка, scope см. область видимости Data Adapter Configuration sealed см. класс, запечатанный DDL (Database Definition Language) security principal см. участник безопасности DLL 4, setter см. метод, docking см. элемент управления, стыковка Setup Project DOM Object Model) shadow см. член, замещение Solution Explorer Fife System Editor см. файловой SQLServer системы stack см. стек File Types Editor см. редактор, типов файлов strong name см. сборка, строгое имя syntax error см. синтаксическая GAC (Global Assembly Cache) 334, 402, garbage collection см. сбор мусора test cases см. тестирование, контрольный GDI (Graphic Device пример GDI+ 7, Trace Listener см. трассировка, слушатель getter см. метод, получатель transaction см.

H U heap см. куча (Universal Description Discovery HelpProvider Integration) hide см. член, сокрытие User Interface Editor см. пользова тельского интерфейса (Intermediate Language) 3, indexer см. индексатор Web-сервис inheritance см. форма, наследование Windows Forms 47, 58, 365, Inheritance Picker К К XCOPY 434 класс 8, 14, 18, XML — абстрактный 176, 168, 170, XSL — запечатанный 169, — производный 168, — создание 169, абстрагирование ключевое слово — abstract 177, В внешний ключ — base - д - данные - Class — выборка — Declare — доступ 236, 240, — извлечение 256, 257, - End Class — источник 240, — extern — манипулирование — модификация 270, — Implements 164, 166, — набор — — обмен — 161, - обновление 262, 270, 272, 161, — поток — internal — потребитель — предварительный просмотр — - 177, - провайдер 237, 291.

— 177, — просмотр - Base — — new — в период 16, — простое 279 - 170, — сложное 279, — Optional — сортировка -out — типизированные 249 - — 285, 286 — Overrides — private — формат 26, декларативная безопасность делегат 132 — — Protected деструктор - Public 15, дизайнер 45, 59, - Readonly 162, Ж — Remove Handler журнал событий «жучок» — И индексатор 65, 118, 128 static — Static интерфейс 40, 154, 161, 163 — struct графических устройств см. GDI — Structure — дизайн - Value — культура -virtual — определение - — - 162, — член компилированный образ исключение 220, компиляция — генерация компонент — повторная константа ПО — класс конструктор 9, 24, — нестандартное контейнер — обработка 220, криптографический ключ — обработчик куча 7, кэш глобальных сборок см. GAC 154, м приложение манипулирование строками — глобализация 373. массив ПО, 113. — динамические свойства — многомерный — конфигурационный файл 405. 406, — невыровненный — локализация — прямоугольный оптимизация меню 41, — на разработки — активация команд — компилятора — деактивация команд — стратегия — — отладка — быстрые — развертывание — доступа пространство имен — клонирование — System — контекстное — System — — System. Collections 6, — разделитель — — слияние — System. Data 6, — событие — System. — создание — Data. — флажок — типов — метод 30. - 1, 308, 309, 312, — — — — System. Drawing. Design — параметр — — перегруженный — System. Imaging — переменная — System. Drawing. Printing — получатель 162, — System. Drawing. Text — статический System. IO — 162, — — формы — модификатор доступа 26, 29, — Н — System. — System. 6, набор процедура наследование 168, P О разделитель область видимости 8, 20, общая система типов см. CTS редактор среда см. CLR — нестандартных действий 448, общеязьгковая см. CLS — пользовательского интерфейса 448, объект 152, 153, — реестра 448, — ограничения — файлов 448, — типизированный — условий объектная модель — условий программирова — файловой системы ние см. ООП роль ограничение ООП (объектно-ориентированное програм- С 2, сбор мусора 8, отладка 194, сборка 357, — инструмент — декларация 3, 4, ошибка - закрытая 401, — логическая — идентификационные данные — обработка — — периода 194. — разделяемая — поиск — разрешение — синтаксическая 194. — ресурсная 396, — создание П — сопутствующая 399, панель инструментов — строгое имя перечисление ПО, — поле — файл 394 — внешний вид — ресурсов 398 — добавление — хранение 402 — жизненный цикл 123, 153 — закрытие — набор 129 — композиция — — локализованная — по умолчанию — метод 126, 127, 129 — наследование — только — невидимая 53, — только для чтения — освобождение ресурсов 53, 132, 153 — прозрачность — генерация 133 — — группа 136 — свойство 48, — меню 74 — событие 53, - обработчик 53, 135, 136 — создание — объявление — стартовая 47, система 370 — текст стек 7 — фокус 52, структура 8, 15. 16, 18. 28, 310 — цвет — экземпляр функция тестирование — блочное — план член 14, 153, — данные 217 — абстрактный — контрольный пример 216 — добавление тип 4, — доступ — булев 8 — 170, — вложенный 16, 29 — защищенный — встроенная функциональность 106 — наследуемый — значений 7, 8, 16 — переопределение 170, — с плавающей точкой 101 — сокрытие 170, — метод — модификатор доступа экземпляр 9, — нечисловой элемент управления 40, 41, 42, 58, — объектно-ориентированный -ActiveX — перечислимый — Windows Forms — пользовательский — вложенный преобразование — граница — неявное — добавление — явное — на панель — приведение — членов — распаковка — значок символьный — лицензирование — ссылочный 7, 8, 9, 11, — упаковка — внешнего вида — набор — целочисленный 8, — наследование 321, прерывания — нестандартный — отключение — удаление 200 — обработчик события — управление 200 — объединение — объявление — отладка 331, трассировка — запись данных 208, 209 — пользовательский — переключатель 212 — провайдер дополнительных — производный 323, — слушатель — редактирование свойств — создание участник безопасности 415 — составной 321, — стыковка 62, Ф — тестирование фокус ввода — форма 40, 45, 85, — фокус — видимая 52, — формируемый 322, ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ прилагаемый к книге ЭТО ВАЖНО — ПРОЧИТАЙТЕ ВНИМАТЕЛЬНО. Настоящее соглашение (далее юридическим документом, оно между Вами (физическим или юридическим лицом) и Corporation (далее «корпорация на выше продукт Microsoft, который включает программное обеспечение и может включать мультимедийные и печатные материалы, а также доку ментацию (далее Любой компонент, входящий в Программный со провождается отдельным подпадает под действие именно того Соглашения, а не ниже. копирование или иное использование данного Программного Продукта означает принятие Вами данного Соглашения. Если Вы не принимаете его условия, то не имеете права устанавливать, или иначе Программный Продукт.

ЛИЦЕНЗИЯ НА ПРОГРАММНЫЙ ПРОДУКТ Программный Продукт законами Соединенных Штатов по авторскому праву и ворами по авторскому праву, а также другими законами и договорами по правам на интеллектуальную 1. ОБЪЕМ Настоящее Соглашение лает Вам право:

Программный продукт. Вы можете и использовать одну копию Программною Продукта на компьютере. Основной пользователь компьютера, на данный Программный Продукт, может сделать только для себя вторую копию и использовать ее на портативном компью гере.

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

License Pah. Если Вы купили эту составе Microsoft License Pak, можете дополни тельных копий программного обеспечения, данный Программный Продукт, и каждую копию так, было описано выше. Кроме того. Вы получаете право сделать число вторичных для портативного компьютера в также оговоренных выше.

о) Примеры Это относится исключительно к отдельным частям Программного Продукта, как примеры кода (далее если таковые входят в состав Продукта.

Использование и Microsoft дает Вам право использовать и модифицировать исходный код при условии соблюдения пункта ниже. Вы не имеете права в виде исходного кода ни ни их модифицированную версию.

Распространяемые файлы. При соблюдении пункта дает Вам на отчислений копирование и распространение в виде объектного кода Примеров или их модифициро ванной версии, кроме тех частей (или их модифицированных версий), которые в Readme, к данному Программному Продукту, как не Требования к файлов. Вы можете распространять файлы, разрешенные к ранению, при условии, что: а) распространяете их в виде объектного кода только в сочетании со своим приложением и как его часть;

б) не используете эмблему или товарные продвижения приложения;

в) включаете в ссылку на авторские права в состав этикетки и заставки своего приложения;

г) согласны освободить от и взять на себя Microsoft от любых претензий или преследо ваний по закону, включая судебные издержки, если таковые возникнут в результате или распространения Вашего приложения;

дальнейшего распространения конеч ным пользователем своего приложения. По поводу отчислений и условий приме нительно к иным видам использования или распространения файлов тесь в Microsoft.

2. ПРОЧИЕ ПРАВА И ОГРАНИЧЕНИЯ • Ограничения на и Вы не имеете права реконструиро вать, декомпилировать или данный Программный кроме того случая, когда такая деятельность (только в той которая необходима) явно разрешается зако ном, несмотря на это ограничение.

• Разделение компонентов. Данный Программный как единый продукт. Ею компо ненты нельзя друг друга для использования более чем на одном компьютере, • Аренда. Данный сдавать в прокат, передавать во временное или для в иных • Услуги по технической поддержке. может не обязана) предоставить Вам по кой данного Программного (далее Предоставление Услуг регулируется правилами и программами описанными в руководстве элек тронной документации и/или других материалах, Любой про граммный коп. предоставленный в рамках Услуг, следует частью данного Программного Продук и подпадающим под действие настоящего Что касается технической информации, пре доставляемой Вами корпорации при использовании ее то Microsoft может эту и деловых целях, в том числе для технической поддержки продукта и разработки. Ис пользуя такую техническую Microsoft не будет ссылаться на Вас.

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

• Соглашения. Без ущерба любых прав Microsoft может прекратить дей ствие настоящего Соглашения, если Вы его В этом случае Вы должны будете уничто жить все копии Программною вместе со всеми его 3. АВТОРСКОЕ ПРАВО. Все авторские права и право собственности на Программный Продукт (в числе любые изображения, фотографии, аудио, музыку, текст, примеры кода, распространяемые файлы и в состав Программного Продукта) и любые его копии корпора ции Microsoft или ее Программный Продукт охраняется об авторских пра вах и положениями договоров. Таким образом, Вы должны обращаться с данным Программ ным Продуктом, с любым другим материалом, охраняемым авторскими правами, тем исключением, что Вы можете установить Программный Продукт на компьютер при что храните оригинал ис ключительно как резервную или копию. Копирование печатных материалов, вместе с Продуктом, запрещается.

ОГРАНИЧЕНИЕ ГАРАНТИИ ДАННЫЙ (ВКЛЮЧАЯ ПРЕДО СТАВЛЯЕТСЯ БЕЗ КАКОЙ-ЛИБО ГАРАНТИИ. ЛЮБУЮ ОТВЕТСТВЕННОСТЬ, ТОМ ЧИСЛЕ КОММЕРЧЕСКУЮ ЦЕН НОСТЬ ИЛИ СООТВЕТСТВИЕ РИСК ПО ИСПОЛЬЗОВАНИЮ ИЛИ РА БОТЕ С ПРОГРАММНЫМ ПРОДУКТОМ ЛОЖИТСЯ ВАС.

НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ КОРПОРАЦИЯ ЕЕ РАЗРАБОТЧИКИ, ЗАНЯТЫЕ В СОЗДАНИИ, ПРОИЗВОДСТВЕ И РАСПРОСТРАНЕНИИ ДАННОГО ПРОГРАММНОГО ПРО НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА КАКОЙ-ЛИБО УЩЕРБ (ВКЛЮЧАЯ ВСЕ. БЕЗ СЛУЧАИ УПУЩЕННОЙ ВЫГОДЫ, ДЕЯТЕЛЬНОСТИ, ПОТЕРИ ИЛИ ДРУГИХ УБЫТКОВ) ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ДАННОГО ПРОГРАММНОГО ЕСЛИ ПОРАЦИЯ MICROSOFT БЫЛА ИЗВЕЩЕНА О ВОЗМОЖНОСТИ ТАКИХ ПОТЕРЬ, В НЕКОТО РЫХ СТРАНАХ НЕ РАЗРЕШЕНО ИСКЛЮЧЕНИЕ ИЛИ ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ ЗА НЕПРЕД НАМЕРЕННЫЙ УЩЕРБ, УКАЗАННОЕ Е МОЖЕТ ВАС НЕ КОСНУТЬСЯ.

РАЗНОЕ Настоящее Соглашение кроме (и той мере, это того государства, на которого ис Программный Продукт.

Если у Вас возникли какие-либо вопросы, касающиеся Соглашения, или если Вы связаться с по любой пожалуйста, обращайтесь в местное представительство Microsoft или пишите по Microsoft Center, One Way. Redmond, 98052-6399.

Microsoft Corporation Разработка Windows-приложений при помощи Visual Basic и Microsoft Visual C# Перевод с английского под общей А. Е.

Редактор П. Леонова Компьютерный дизайн и подготовка иллюстраций В, Б.

Технический редактор О. В. Дергачева Дизайнер обложки Е. В. Козлова Оригинал-макет выполнен с использованием издательской системы Adobe PageMaker 6. Главный редактор И. Козлов Подготовлено к печати издательством Русская 121087. Москва, ул. Заречная, д, (095) тел./факс:

Подписано в печать г. Тираж экз.

п я.

Отпечатано в ОАО Москва, ул. Энгельса, Книги Press на русском языке по программам сертификации Microsoft Сертификационный Издания, к : сертификации Принципы MCSD № и разработки программного Analyzing and Учебный курс 2-е Defining Solution Architectures ISBN 5-7502-0213-5, 736 стр., +CD. 2002 г.

MCSA/MCSE № 70- Учебный курс Installing, 5-7502-0246 1. 672 стр., 2003 г.

and Administering Microsoft Microsoft 2000 Server. MCSA/MCSE № Учебный курс MCSA/MCSE изд.

Configuring ISBN 5-7502 0219-4, 912 стр., 2002 г.

and Administering Windows 2000 Server Администрирование MCSA/MCSE № 70- на основе 2000.

Implementing and Administering Учебный 2-е изд.

a Microsoft Windows ISBN 5-7502-0233-Х, 512 стр., 2003 г.

Network Infrastructure Window» 2000 Active Directory № MCSE Учебный курс MCSE.

Implementing and Administering ISBN 5-7502-0247-Х. 800 стр., 2003 г.

a Microsoft Windows Services Управление сетевой средой Microsoft № Windows Учебный курс Managing a Microsoft Windows ISBN 5 7502-0212 7, стр., 2003 г.

2000 Network Безопасность сети на основе Microsoft MCSE № Windows 2000. курс MCSE.

Designing a Microsoft Windows стр.. 2001 г.

2000 Network Security инфраструктуры № 70-221 MCSE служб Windows Designing a Microsoft Windows Учебный курс MCSE.

2000 Network Infrastructure 5 стр., 2001 г.

Создание MCSE № высокой на основе Designing Highly Web Windows 2000 Server.

with Microsoft Windows Учебный курс MCSE.

2000 Server Technologies ISBN 576 стр., Microsoft Internet Security and № 70-227 MCSA/MCSE Acceleration Server 2000.

Installing, Configuring and Учебный курс MCSE.

Administering Internet ISBN 5-7502-0191-0, 544 and Acceleration Server № Microsoft SQL MCSA/MCSG/MCDBA 2000. Учебный курс Installing. Configuring and Administering Microsoft SQL ISBN 5-7 +СО, 2002 г.

Server 2000 Enterprise Edition Книги Microsoft Press на русском языке по программам сертификации Microsoft Сертификационный Издания, экзамен подготовки к экзамену № Windows XP Installing. Configuring Учебный изд.

1008 стр., +CD, 2003 г.

and Microsoft Windows XP Professional MCAD/MCSD № 70-305 Разработка на Microsoft Basic and Implementing и Microsoft Visual Web Applications with курс Microsoft Visual Basic ISBN 704 стр.. +CD, 2003 г.

and Visual Studio № Developing and Web with Microsoft and Microsoft Visual Разработка MCAD/MCSD на Developing and Implementing и Microsoft C# Windows-based Applications Учебный курс MCAD/MCSD.

with Microsoft Visual Basic ISBN 5-7502-0222-4. 512 +CD, 2003 г.

and Microsoft Visual Studio № Developing and Windows-based Applications with Microsoft C# and Microsoft Visual Studio и архитектуры Microsoft Requirements and Учебный курс Defining Microsoft Solution ISBN 5-7502-0248-8, к № Разработка XML MCAD/MCSD и компонентов Microsoft Developing XML Web Services Visual Basic и Microsoft and Server Components Учебный MCAD/MCSD.

Microsoft Visual Basic and the Microsoft Framework готовится к изданию № Developing XML Web Services and Server Components with Microsoft Visual and the Microsoft Framework Компьютерные CompTIA 4.

ISBN 5-7502-0190-2, 704 стр., + CD, издательство компьютерной литературы ПРОДАЖА КНИГ оптом 142-0571. e-mail:

ITbook.ru.

Учебный центр Ваш курс начинается завтра!

Подготовка и администраторов Microsoft и авторские курсы по;

Учебный центр * Windows 2000 / ХР г. Москва, Губкина, д. Sun Solaris (095) 232 00 Visual Studio e-mail:

Электронной * Безопасности информационных систем и еще более 40 курсов по самым современ ным компьютерным технологиям, ПРОГРАММНОЕ Дневные и вечерние занятия.

Pages:     | 1 |   ...   | 5 | 6 ||



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.