Гайдар Магдануров
Microsoft Visual Studio 2005
Часть 4. Объект My. Ресурсы. Настройки приложения
Мы продолжаем изучать новинки Visual
Studio 2005 и Framework 2.0. В этой статье я
познакомлю вас с новым объектом, который стал
доступным для Visual Basic программистов в
Framework 2.0.
Объект My в чем-то похож на "горячие клавиши",
которые используют большинство профессиональных пользователей ПК и которые
позволяют быстро команду без "ползанья" мышкой по пунктам меню. Программисты
работавшие с Visual Basic .NET ранее по достоинству
оценят простоту и удобство работы с этим новым объектом.
Попутно в этой же статье будет рассказано об использовании ресурсов и настроек
приложения, хранимых в xml файле.
Прилагаемый к статье пример требует установленного Framowork
v2.0.40426 и Visual Studio 2005 Beta 1 для
редактирования и компияции. Если у вас нет Visual Studio 2005, вы
можете посмотреть каждый файл исходного кода отдельно пользуясь
Visual Studio 2003/2002 или
Notepad. Приношу извинения перед теми, кто просил меня
писать примеры на русском языке, к вашему сожалению, я все-таки предпочитаю
использовать английский язык. Надеюсь, что это не будет большим неудобством
(тонкий намек, что больше не надо писать писем с просьбами создавать
русскоязычный UI для примеров).
Прежде, чем познакомится с содержимым объекта
My определимся, как получить к нему доступ. Очень
просто, заглянув в Object Browser (F2) мы обнаружим,
что объект My принадлежит пространству имен
приложения. Взгляните на приведенную ниже диаграмму с
кратким описанием содержимого объекта My.
Полагаю, что из самих названий объектов понятно какую
функциональность они предоставляют. Я, к сожалению, в этой
статье не смогу подробно рассказать о каждом из этих объектов и их свойствах,
поскольку они охватывают огромное количество функций Framework.
Все это - материал для дальнейших статей и исследований - не
бойтесь лишний раз попробовать "поиграть" свойствами объектов "My.Объект"
и испробовать доступные функции, а Visual Studio поможет
вам в этом (IntelliSense).
Объект позволяет получить доступ к информации о текущем
исполняющемся приложении. С помощью этого объекта нельзя получить какой-либо
системной информации, но для этого есть и другие объекты не так ли?
My.Application, например, позволяет с легкостью
заполнить информацией диалоговое окно About (О
программе), а также узнать с какими ключами командной строки запущено
приложение.
Свойство |
Описание |
CLRVersionInUse |
Версия используемого
Framework |
CommandLine |
Командная строку с помощью
которой запущено приложение |
CommandLineArgs |
Коллекция аргументов командной
строки |
CompanyName |
Имя компании (задается в
свойствах сборки) |
Culture |
Позволяет узнать текущую
культуру ассоциированую с UI приложения, а также
изменить ее свойства |
Description |
Описание приложения (задается в
свойствах сборки) |
EnvironmentVariables |
Колекция переменных окружения
среды в которой выполняется приложение |
FileName |
Имя файла |
Folder |
Имя директории в которой
находится выполняемый файл |
LegalCopyright |
Копирайт (задается в свойствах
сборки) |
LegalTrademark |
Торговая марка (задается в
свойствах сборки) |
Log |
Позволяет получить доступ к логу
текущего приложения |
ProductName |
Название продукта (задается в
свойствах сборки) |
SpecialFolders |
Позволяет получить доступ к
специальным директориям доступным приложению |
Title |
Название приложения (задается в
свойствах сборки) |
Version |
Версия приложения |
Использование некоторых из этих свойств вы
можете посмотреть в примере. Там эти свойства используются для заполнения
диалогового окна About. Кстати, чтобы создать это
информационное окно мне не понадобилось практически ничего делать, только лишь
добавить шаблон информационного окна, который разработчики Visual Studio
услужливо включили в поставку Visual Studio.
Стоит отметить, что, по крайней мере в имеющейся у меня
beta версии, My.Application при отладке
возвращал описание файла vshost.exe. Возможно в следующих
версиях Visual Studio это будет исправлено.
О использовании объекта Log можно написать отдельную
статью, поэтому в данной статье он не рассматривается.
Этот объект позволяет получить доступ к
информации о компьютере, на котором выполняется приложение. Свойства заполняются
во время выполнения сведениями о текущей конфигурации компьютера.
Свойство |
Описание |
Audio |
Позволяет проигрывать звуковые
файлы |
Clipboard |
Управление буфером обмена |
Clock |
Управление системными часами |
FileSystem |
Функции файловой системы |
Info |
Информация о компьютере |
Keyboard |
Информация о состоянии
клавиатуры |
Mouse |
Информация о состоянии мыши |
Name |
Имя компьютера |
Folder |
Имя директории в которой
находится выполняемый файл |
Network |
Функции работы с сетью |
Ports |
Информация о последовательных
портах (COM, LPT) |
Printers |
Информация о принтерах |
Registry |
Функции работы с реестром |
Screen |
Информация о текущих свойствах
экрана |
О каждом из этих свойств можно написать
огромный трактат, но в этом нет особого смысла при наличии MSDN
и IntelliSense, а также здравого смысла у
читателя.
Данный объект содержит информацию о всех
формах в текущей сборке. Например, если в сборке есть форма frmAbout,
то получить доступ к свойствам этой формы можно так:
My.Forms.frmAbout.
Объект позволяет получить доступ ко всем ресурсам приложения.
Подробнее о ресурсах и их использовании смотрите соответствующий раздел этой
статьи.
Свойство |
Описание |
Identity |
Доступ к информации о текущей
учетной записи пользователя |
IsInRole |
Метод, позволяющий проверить
присвоена ли данной учетной записи пользователя соответствующая роль |
Позволяет получить доступ к имеющимся Web
службам.
Позволяет получить доступ к имеющимся
источникам данных.
Теперь я расскажу вам о том как просто и удобно использовать
файлы ресурсов приложения имея под рукой такое мощное средство разработки как
Visual Studio 2005. Для начала перейдем в раздел
Resources свойств проекта и рассмотрим его возможности.
Очень удобно, что можно видеть добавленные в ресурсы картинки
не открывая каждую, таким образом можно ориентироваться не только на название
той или иной картинки, но и на то, что, собственно, на ней изображено. А это,
согласитесь весьма удобно, особенное если коллега любит названия
image001, image002, а вам надо доделать его проект, причем как
можно быстрее.
Редактирование ресурсов не составляет труда и
интуитивно понятно. Visual Studio поддерживает все
наиболее распространенные форматы графических файлов и вам не придется часто
прибегать у услугам дизайнеров или самостоятельно конвертировать файлы в
какой-нибудь более удобный формат, ну, разве что если вы не захотите
использовать что-нибдуь очень специфичное.
Создание и редактирование строковых ресурсов тоже не
составляет труда. Достаточно задать название (уникальный идентификатор строки),
саму строку и, по желанию, комментарий, который подскажет вам или вашим коллегам
в дальнейшем, зачем вы добавили эту строку.
Теперь используем созданные ресурсы в нашем
приложении-примере. Для этого в обработчик события загрузки формы добавим код
устанавливающий название нашего приложения, а также код устанавливающий картинку
с изображением мыши в зависимости от наличия у нее колесика для прокрутки.
Me.Text = My.Resources.ApplicationName
If My.Computer.Mouse.WheelExists Then
Me.picMouse.Image = My.Resources.mouse ' mouse with wheel
lblWheel.ForeColor = System.Drawing.Color.Red
End If
Обратите внимание, что ресурсы уже строго
типизованы и не требуют дополнительного приведения типов.
И несколько слов о настройках приложения,
которые хранятся в файле your_application_name.exe.xml.
Опытные .NET программисты знают каким образом
осуществлялся доступ к этим настройкам и зачем они нужны. Новичкам, начинающим с
2005 версии Visual Studio знать
как было раньше уже и необязательно, а зачем - стоит сказать пару слов.
Допустим, что ваше приложение использует некоторую директорию для хранения
временных файлов и имя этой директории содержится в xml
файле, вместе, например, с инструкцией приложению каким образом необходимо
идентифицировать пользователей - паролем или электронным ключом. Изменить эти
установки сможет администратор или пользователь приложения, причем без
перекомпиляции приложения. Раньше для этих целей использовался реестр
Windows, еще раньше INI файлы, а еще
раньше и Windows-то никакого не было.
Создать новую запись о настройке приложения не сложнее, чем
создать новую строку в ресурсах. В разделе свойств проекта Settings
вы можете присвоить имя, значение и тип каждой настройке. В
принципе, отличие от ресурсов лишь в типе данных, который может установить
пользователь.
К огромному неудовольствию пользователей в Beta 1
Visual Studio с настройками возникают проблемы, поэтому пока я
рекомендую не использовать их в своих прилождениях, а дождаться более устойчивой
работы, например в Beta 2.
Эта совсем поверхностная обзорная статья
предназначена лишь для знакомства с объектом My и его
свойствами. Говоря короче, для того, чтобы читатель знал, что он может искать в
этом объекте и в чем преимущества его использования. В дальнейших статьях я,
возможно, больше расскажу о My. Если у вас есть
пожелания, мой читатель, не стесняйтесь написать мне -
gaidar@vbstreets.ru.