лекция надежность. А. ОсиповРазработка Windows приложенийна C#
Скачать 0.74 Mb.
|
Windows-приложения 1. Откройте стартовый проект UsabilityDemo.sln из папки install_folder\Practices\Mod08\Mod08_04\Starter_2008. 2. Откройте файл UsabilityDemo.cs в режиме конструктора. 3. Нажмите на кнопку Show All Files в окне Solution Explorer. 4. Обратите внимание на значение свойства формы Localizable. Оно установлено в True, что означает, что форма может быть локализована. 5. Для свойства формы Language задайте значение French(France). В данный момент вы видите английскую версию формы, но теперь вы можете преобразовать ее во французскую. Обратите внимание на то, что в окне Solution Explorer под файлом UsabilityDemo.cs появилось несколько новых файлов ресурсов (UsabilityDemo.fr.resx и UsabilityDemo.fr-FR.resx). Обратите внимание на то, что данная форма также была локализована для Германии и Японии. 6. Для свойства формы Text задайте значение Démonstration de l'utilisation. Замечание: Текст , необходимый для создания французской версии формы можно скопировать из файла UsabilityDemoLocalizedStrings.rtf, расположенного в папке install_folder\Practices\Mod08\Mod08_04. 7. Для свойства Text меню Help и пункта меню Help задайте значение Aide. 8. Для свойства Text кнопки Choose a Culture задайте значение Choisir une langue. 9. Для свойства Text кнопки Show Date/Time задайте значение Afficher la date/l'heure. 10. Для свойства Text кнопки Show Currency задайте значение Afficher la devise. 11. Для свойства Text кнопки Show a String задайте значение Afficher une chaîne. 12. Для свойства Text кнопки Exit задайте значение Quitter. Добавлениевприложениефайлстроковыхресурсов 1. В окне Solution Explorer ПКМ по проекту UsabilityDemo | Add | Add New Item. 2. В окне Add New Item выберите Assembly Resource File. 3. Задайте для файла ресурсов имя UsabilityDemoText.fr-FR.resx и нажмите на кнопку Open. 4. В строке ресурсов задайте для Name значение SimpleTextString. 54 5. В строке ресурсов задайте для Value значение Voici du texte. 6. Сохраните и закройте файл ресурсов. Добавлениекодадляполучениязначенийстроковыхресурсов 1. Откройте файл с кодом UsabilityDemo.cs. 2. В окне Task List отобразите комментарии TODO. Для этого выберите пункт меню View | Show Tasks | All. 3. Добавьте три директивы using, для возможности поддержки локализации приложения. using System.Globalization; using System.Resources; using System.Threading; 4. Найдите в коде второй комментарий TODO. Объявите private переменную типа ResourceManager. private ResourceManager RM; 5. Найдите в коде следующий комментарий TODO. Создайте экземпляр класса ResourceManager. Код добавляется в первый конструктор приложения: RM = new ResourceManager("UsabilityDemo.UsabilityDemoText", Assembly.GetExecutingAssembly()); 6. Найдите в коде следующий комментарий TODO. Создайте экземпляр класса ResourceManager. Код добавляется во второй конструктор приложения: RM = new ResourceManager("UsabilityDemo.UsabilityDemoText", Assembly.GetExecutingAssembly()); 7. Найдите в коде следующий комментарий TODO. Добавьте код использования менеджера ресурсов для получения строки текста из файла ресурсов и отображения ее в текстовом поле. OutputTextBox.Text = RM.GetString("SimpleTextString"); 8. Найдите в коде следующий комментарий TODO. Добавьте код для задания свойствам Culture и UICulture значений, выбранных пользователем. Thread.CurrentThread.CurrentUICulture = new CultureInfo(ChosenCulture, false); Thread.CurrentThread.CurrentCulture = new CultureInfo(ChosenCulture, false); 9. Сохраните проект. Тестированиеработыприложения 1. Постройте и запустите приложение. 2. Обратите внимание на то, что при старте приложения все, что вы можете – это либо выбрать язык, либо завершить работу приложения. 3. Нажмите на кнопку Choose a Culture. 4. Выберите один из языков. Если вы не выберите ни один из них, по умолчанию будет использоваться English. 5. После нажатия на кнопку OK на форме Culture Chooser эта форма исчезает и появляется та версия формы UsabilityDemo, которая соответствует выбранным настройкам. 55 Лабораторнаяработа 9. Развертывание windows приложений Цельработы Изучение средств для управления глобальным хранилищем сборок и получение навыков по созданию дистрибутивов, предоставляющих возможность распространять программы с минимумом усилий со стороны конечного пользователя. Упражнение 1. Использованиестрогоименованнойсборки В этом упражнении вы сгенерируете цифровую подпись и создадите ссылку на данный файл из библиотеки CalculatorEngine. Далее вы создадите приложение WindowsCalculator, ссылающееся на строго именованную сборку. С помощью программы ILDASM вы просмотрите метаданные для CalculatorEngine.dll и WindowsCalculator.exe. Созданиестрогоименованнойсборки 1. Откройте окно командной строки, выбрав Start |All Programs | Microsoft Visual Studio .NET | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. 2. В окне командной строки перейдите в директорию install_folder\Practices\Mod09\Mod09_01\Starter\CalculatorEngine. 3. Наберите команду sn –k CalcKey.snk. Она сгенерирует файл с цифровой подписью, которую вы сможете использовать при создании строго именованной сборки. 4. В Visual Studio .NET откройте проект CalculatorEngine.sln из папки install_folder\Practices\Mod09\Mod09_01\Starter\CalculatorEngine. 5. Просмотрите комментарии TODO в окне Task List. Для этого выберите пункт меню View | Show Tasks | All. 6. Откройте файл AssemblyInfo.cs 7. Перейдите к фрагменту кода, связанному с первым комментарием TODO. Измените номер версии с 2.0.1.1 на 3.0.1.1. [assembly: AssemblyVersion("3.0.1.1")] 8. Перейдите к следующему комментарию TODO. Внизу файла добавьте новый атрибут для ссылки на файл, содержащий цифровую подпись для создания строго имени. [assembly: AssemblyKeyFile("CalcKey.snk")] 9. Откройте файл с кодом Calculator.cs. 10. Перейдите к комментарию TODO. Измените информацию о версии с v2.0.1.1 на v3.0.1.1. private static string versionInfo = "Calculator v3.0.1.1"; 11. Перестройте сборку и закройте Visual Studio .NET. 12. В окне командной строки Visual Studio .NET перейдите в директорию install_folder\Practices\Mod09\Mod09_01\Starter\CalculatorEngine\bin\Debug. 13. В окне командной строки запустите ILDASM для CalculatorEngine.dll. 56 14. Раскройте узел MANIFEST. 15. Обратите внимание, что под .assembly CalculatorEngine указан .publickey. Это указывает на то, что CalculatorEngine является строго именованной сборкой. Созданиеприложения, ссылающеесянастрогоименованную сборку 1. Откройте проект WindowsCalculator.sln из папки install_folder\Practices\Mod09\Mod09_01\Starter. Перестройте проект. 2. Запустите приложение и обратите внимание на то, что номер версии 3.0.1.1. Это номер версии CalculatorEngine.dll. 3. В окне командной строки Visual Studio .NET перейдите в директорию install_folder\Practices\Mod09\Mod09_01\Starter\bin\Debug. 4. Запустите ILDASM для WindowsCalculator.exe, набрав следующую команду: ildasm WindowsCalculator.exe 5. Раскройте узел MANIFEST. Обратите внимание, что для .assembly extern CalculatorEngine указаны номер версии 3:0:1:1 и .publickeytoken. Это указывает на то, что приложение ссылается на внешнюю строго именованную сборку. Упражнение 2. Работасглобальнымкэшемсборок В этом упражнении вы добавите в глобальный кэш сборок (GAC) сборку CalculatorEngine. Затем вы построите приложение WindowsCalculator. Перед запуском приложения Вы удалите локальные копии CalculatorEngine.dll. После чего Вы убедитесь в успешном запуске приложения WindowsCalculator, т.к. ему удастся обнаружить нужную версию CalculatorEngine в глобальном кэше сборок. Внимание: В процессе разработки Вы можете использовать утилиту GACUtil.exe для добавления сборки в глобальный кэш сборок на этапе тестирования. Это программа используется для удобства и не должна использоваться при развертывании production-версии приложения. В этом случае необходимо добавлять сборки в глобальный кэш сборок с помощью Windows Installer или .NET Framework configuration tool Mscorcfg.msc. Построениеновойверсиисборки CalculatorEngine 1. Откройте проект CalculatorEngine.dll из папки install_folder\Practices\Mod09\Mod09_02\Starter\ CalculatorEngine. 2. Просмотрите комментарии TODO в окне Task List. Для этого выберите пункт меню View | Show Tasks | All. 3. Откройте файл AssemblyInfo.cs 4. Перейдите к фрагменту кода, связанному с первым комментарием TODO. Измените номер версии с 3.0.1.1 на 4.0.1.1. [assembly: AssemblyVersion("4.0.1.1")] 5. Откройте файл с кодом Calculator.cs. 57 6. Перейдите к комментарию TODO. Измените информацию о версии с v3.0.1.1 на v4.0.1.1. private static string versionInfo = "Calculator v4.0.1.1"; 7. Перестройте сборку и закройте Visual Studio .NET. Добавлениесборкивглобальныйкэшсборок, используяутилиту GACUtils 1. Откройте окно командной строки, выбрав Start | All Programs | Microsoft Visual Studio.NET | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. 2. В окне командной строки перейдите в директорию install_folder\Practices\Mod09\Mod09_02\Starter\CalculatorEngine\bin\Debug. 3. Добавьте сборку CalculatorEngine в глобальный кэш сборок с помощью следующей команды: gacutil –i CalculatorEngine.dll 4. Вы должны получить сообщение Assembly successfully added to the cache. 5. Просмотрите содержимое глобального кэша сборок с помощью следующей команды: gacutil –l 6. Найдите в списке CalculatorEngine. Запись должна отражать следующую информацию: “CalculatorEngine, Version=4.0.1.1, Culture- neutral, PublicKeyToken=***, Custom=null”. Построениеприложения, ссылающеесянастрогоименованную сборку, располагающуюсявглобальномкэшесборок 1. Откройте проект WindowsCalculator.dll из папки install_folder\Practices\Mod09\Mod09_02\Starter. 2. В окне Solution Explorer раскройте узел References. 3. Выберите ПКМ References | Add Reference. 4. В ОД Add Reference нажмите на кнопку Browse и перейдите папку install_folder\Practices\Mod09\Mod09_02\Starter\CalculatorEngine\bin\Debug, где располагается CalculatorEngine.dll. Нажмите на кнопку Open, а затем на кнопку OK. 5. Откройте файл с кодом CalcUI.cs. 6. Просмотрите комментарии TODO в окне Task List. Для этого выберите пункт меню View | Show Tasks | All. 7. Перейдите к фрагменту кода, связанному с комментарием TODO. Добавьте директиву using для доступа к Calculator. using Calculator; 8. Постройте приложение WindowsCalculator. 9. В окне Windows Explorer переименуйте локальные копии CalculatorEngine.dll в OLD_Calculator.dll. Это относится к install_folder\Practices\Mod09\Mod09_02\Starter\bin\Debug, install_folder\Practices\Mod09\Mod09_02\Starter\CalculatorEngine\bin\Debug и install_folder\Practices\Mod09\Mod09_02\Starter\CalculatorEngine\obj\Debug. 58 10. В окне Windows Explorer перейдите в папку install_folder\Practices\Mod09\Mod09_02\Starter\bin\Debug. 11. Запустите приложение WindowsCalculator.exe. Обратите внимание на то, что приложение WindowsCalculator успешно запустится, несмотря на то, что локальная копия сборки CalculatorEngine.dll не найдена. Это происходит потому, что среда выполнения находит нужную сборку в глобальном хранилище сборок и загружает ее. Упражнение 3. Созданиеииспользованиефайловконфигурации приложения В этом упражнении вы добавите в глобальный кэш сборок новую версию сборки CalculatorEngine. Далее Вы построите файл конфигурации приложения для приложения WindowsCalculator, заставляющий приложение ссылаться на более новую версию CalculatorEngine. Вам не придется перестраивать приложение WindowsCalculator для того, чтобы оно использовало более новую версию CalculatorEngine. Добавлениеновойверсиисборки CalculatorEngine вглобальный кэшсборок 1. Откройте окно командной строки. 2. В окне командной строки перейдите в директорию install_folder\Practices\Mod09\Mod09_03\Starter. 3. Удалите CalculatorEngine.dll. Это версия 4.0.1.1, на которую в данный момент ссылается WindowsCalculator. 4. Скопируйте CalculatorEngine.dll.v5011 в CalculatorEngine.dll. 5. Добавьте сборку CalculatorEngine в глобальный кэш сборок, используя следующую команду: gacutil –i CalculatorEngine.dll 6. Вы должны получить сообщение Assembly successfully added to the cache. 7. Просмотрите содержимое глобального кэша сборок с помощью следующей команды: gacutil –l 8. Найдите в списке CalculatorEngine. В списке должно быть две версии CalculatorEngine: версия 4.0.1.1 и версия 5.0.1.1. Созданиефайлаконфигурацииприложениядляприложения WindowsCalculator 1. Запустите .NET Framework configuration tool (Mscorcfg.msc). 2. Раскройте узел Applications. 3. Выберите Add an Application to Configure. 4. В ОД Configure an Application выберите Other для указания местонахождения сборки. 5. Перейдите в папку install_folder\Practices\Mod09\Mod09_03\Starter, выберите WindowsCalculator.exe и нажмите Open. 59 6. В Mscorcfg.msc под Applications раскройте узел приложения WindowsCalculator.exe и выберите Configured Assemblies. 7. На правой панели щелкните по ссылке Configure an Assembly. 8. В ОД Configure an Assembly выберите Choose an assembly from the assembly cache. 9. Нажмите на кнопку Choose Assembly. 10. В ОД Choose Assembly from Assembly Cache, найдите сборку CalculatorEngine версии 5.0.1.1. Выберите CalculatorEngine и нажмите на кнопку Select. 11. Нажмите на кнопку Finish. 12. Появится ОД CalculatorEngine Properties. 13. Выберите вкладку Binding Policy. 14. В столбце Requested Version наберите 4.0.1.1 15. В столбце New Version наберите 5.0.1.1 16. Нажмите на кнопку Apply, а затем на кнопку OK. 17. С помощью программы Notepad откройте файл install_folder\Practices\Mod09\Mod09_03\Starter\WindowsCalculator.exe.conf ig и посмотрите его содержимое. Обратите внимание на тэг 18. Запустите приложение WindowsCalculator.exe. Убедитесь в том, что оно использует новую версию сборки CalculatorEngine. Номер версии будет 5.0.1.1. Упражнение 4. Созданиеииспользование Windows Installer Setup Project В этом упражнении вы создадите пакет установки Windows Installer Setup Project и добавите в него приложение WindowsCalculator. Затем Вы протестируете корректность установки и работы приложения. Создание setup-проекта 1. Запустите Visual Studio .NET. На стартовой странице выберите New Project. 2. В окне New Project на панели Project Type выберите Setup and Deployment Projects. 3. Укажите тип создаваемого проекта Setup Project. 4. Укажите место расположения install_folder\Practices\Mod09\Mod09_04\Starter. 5. Задайте имя WinCalc и нажмите OK. 6. В дереве File System указаны папки для приложения, ярлыков рабочего стола и главного меню. Добавьте папку для хранения сборки, которая при развертывании приложения добавится в глобальный кеш сборок. Откройте контекстное меню File System on Target Machine, далее Add Special Folder | Global Assembly Cache Folder. 7. Откройте контекстное меню папки Global Assembly Cache Folder | Add | File… 60 8. В ОД Add Files перейдите в папку install_folder\Practices\Mod09\Mod09_04\Starter и добавьте сборку CalculatorEngine.dll. 9. Добавьте в папку Application Folder приложение WindowsCalculator.exe: в контекстном меню Application Folder выберите Add | File. В ОД Add Files укажите WindowsCalculator.exe и нажмите Open. 10. Добавьте в папку Application Folder файл KEYS03.ico. 11. В окне свойств Properties для папки Application Folder для свойства DefaultLocation задайте значение [ProgramFilesFolder]\[ProductName]. Для свойства AlwaysCreate задайте значение True. 12. В окне Solution Explorer разверните Detected Dependencies. В папке Detected Dependencies в контекстном меню сборки CalculatorEngine.dll выберите Exclude. 13. Для создания ярлыка на рабочем столе пользователя: o Выберите Application Folder и щелкните по WindowsCalculator.exe. o В контекстном меню выберите команду Create ShortCut to WindowsCalculator.exe. Переименуйте его в Windows Calculator. o В окне |