Окно Server Explorer в Visual Studio
103Программы --- Visual Studio --- Окно Server Explorer
Server Explorer - одно из немногих инструментальных окон в системе Visual Studio, не связанных с какими-либо решениями или проектами. Оно позволяет исследовать и запрашивать ресурсы аппаратного обеспечения и службы на локальных или удаленных компьютерах. С его помощью разработчик может решать разные задачи и выполнять многие действия, включая добавление ресурсов в свое приложение.
Окно Server Explorer, показанное на рисунке ниже, имеет связь с тремя типами ресурсов. Во-первых, узел Servers обеспечивает доступ к аппаратным ресурсам и службам на локальном, или удаленном компьютере. Эта функциональная возможность исследуется очень подробно. Во-вторых, узел Data Connections обеспечивает все аспекты работы с каналами передачи данных, включая создание баз данных, добавление и модификацию таблиц, создание связей между данными и даже выполнение запросов. В заключение пользователь может добавить связь с сервером SharePoint и просматривать его ресурсы, такие как Content Types, Lists, Libraries и Workflows.
На рисунке также видно соединение с облачными службами Windows Azure, которое появляется только при установленных библиотеках SDK для работы с Azure.
Серверные соединения
Узел Servers лучше было бы назвать Computers, потому что с его помощью можно соединяться с любым компьютером, к которому пользователь имеет доступ, и посылать ему запросы, независимо от того, является ли он сервером или настольной рабочей станцией. Каждый из этих компьютеров представлен в виде отдельного узла, расположенного под узлом Servers. Под узлом компьютера расположен список аппаратного обеспечения, служб и других компонентов, принадлежащих данному компьютеру. Каждый из них предусматривает многочисленные операции или задачи, которые можно выполнить. Некоторые поставщики программного обеспечения поставляют встраиваемые компоненты, которые расширяют функциональные возможности окна Server Explorer.
Для того чтобы открыть окно Server Explorer, необходимо выбрать команду Server Explorer в меню View. Локальный компьютер включается в список Servers по умолчанию. Для того чтобы добавить другой компьютер, следует щелкнуть правой кнопкой мыши на узле Servers и выбрать команду Add Server из контекстного меню.
Ввод имени компьютера или его IP-адреса инициирует попытку связаться с этой машиной, используя мандат пользователя. Если пользователь не имеет достаточных привилегий, он может установить связь, используя другое имя, щелкнув на соответствующем соединении. В исходном состоянии соединение отключено, но если пользователь щелкнет на нем, откроется диалоговое окно, показанное на рисунке ниже, в котором можно ввести альтернативное имя и пароль:
Для доступа к любому серверу необходимы права администратора.
Узел Event Logs
Узел Event Logs открывает доступ к машинным журналам регистрации событий. Для того чтобы запустить утилиту Event Viewer, нужно выбрать соответствующую команду в контекстном меню. Как показано на рисунке ниже, в качестве альтернативы можно открыть список журналов регистрации событий и найти конкретное приложение. Щелкнув на любом из событий, можно вывести на экран информацию о данном событии в окне Properties.
Несмотря на то что окно Server Explorer является полезным инструментом для опрашивания машины при создании программы, его истинная мощь в процессе создания компонентов проявляется, когда пользователь перетаскивает узел ресурса в окно Windows Form. Например, если перетащить узел Application в окно Windows Form, то в область невидимых компонентов проектировщика будет добавлен экземпляр класса System.Diagnostics.EventLog. Затем разработчик может сделать запись об этом событии в журнале регистрации событий, используя следующий код:
this.eventLog1.Source = "Мое приложение в Server Explorer";
this.eventLog1.WriteEntry("Что-то произошло",
System.Diagnostics.EventLogEntryType.Information);
Поскольку код, приведенный выше, создает новый источник событий Source в журнале Application Event Log, для его выполнения необходимы права администратора. Если при работе под управлением операционной системы Windows Vista или выше включен механизм управления учетными записями пользователей (User Account Control), то необходимо создать манифест приложения.
После выполнения этого кода пользователь увидит результаты в окне Server Explorer. Теперь необходимо щелкнуть на кнопке Refresh инструментальной панели Server Explorer, чтобы гарантировать, что новый источник событий (Event Source) будет выведен на экран под узлом Application Event Log.
В качестве альтернативы программисты, работающие на языке Visual Basic, могут добавить в свой код класс Event Log и использовать встроенный журнал регистрации событий, принадлежащий пространству имен My. Например, можно модифицировать предыдущий сниппет и создать регистрационную запись с помощью метода My.Application.Log.WriteEntry.
// Код на языке Visual Basic
My.Application.Log.WriteEntry("Щелчек на кнопке", TraceEventType.Information)
Помимо этого, можно также записать информацию об исключении, используя метод My.Application.Log.WriteException, который принимает в качестве аргументов исключение и два необязательных параметра, содержащих дополнительную информацию.
Использование пространства имен My для записи информации в журнал регистрации событий имеет много дополнительных преимуществ. В следующем файле конфигурации указан объект класса EventLogTraceListener, предназначенный для передачи регистрационной информации в журнал регистрации событий. Однако пользователь может задавать других слушателей - например, объекты класса FileLogTraceListener, которые записывают информацию о трассировке (trace information) в журнал регистрации событий, добавляя их в коллекции SharedListeners и Listeners.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="EventLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener"
initializeData="ApplicationEventLog"/>
</sharedListeners>
</system.diagnostics>
</configuration>
В этой конфигурации указан также переключатель (switch) DefaultSwitch. Он связан с источником информации о трассировке посредством атрибута switchName и определяет минимальный тип события, которое будет послано перечисленным слушателям. Например, если значение этого переключателя равно Critical, то события, имеющие тип Information, не будут записаны в журнал регистрации событий. Возможные значения переключателя перечислены следующей таблице:
Значение по умолчанию | Типы событий, записываемых в журнал |
---|---|
Off | Никакие |
Critical | Critical Events |
Error | Critical и Error Events |
Warning | Critical, Error и Warning Events |
Information | Critical, Error, Warning и Information |
Verbose | Critical, Error, Warning, Information и Verbose |
ActivityTracing | Start, Stop, Suspend, Resume и Transfer Events |
All | Все события |
Обратите внимание на то, что существуют перегруженные варианты методов WriteEntry и WriteException, не требующие указания типа событий. В этом случае по умолчанию используются типы Information и Error.