Главная » Microsoft SQL Server, Базы данных » ADO.NET в Visual Studio 2005

0

Администраторы баз данных испытали шок, когда компания Microsoft заявила о намерении перенести утилиту Enterprise Manager из SQL Server в Visual Studio. Смысл такого перемещения был совершенно непонятен. Утилита SQL Server Management Studio переняла привычный графический интерфейс Visual Studio, но эти утилиты остались отдельными продуктами, которые объединяет ненамного больше, чем сходный интерфейс пользователя.

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

Server Explorer

Создание любого проекта ADO.NET 2.0 начинается именно с оьсна Server Explorer. При создании проекта ADO.NET 2.0 программисту нужно либо добавить подключение к данным, либо выбрать существующее подключение. Новое подключение к данным можно определить с помощью мастера конфигурирования источника данных, выбрав в меню Data пункт DataSource Configuration Wizard. Можно также щелкнуть правой кнопкой мыши на значке Data Connections в окне Server Explorer и выбрать в открывшемся контекстном меню пункт Add Connection.

В дополнение к управляемым подключениям к базе данных Server Explorer предлагает некоторые другие полезные инструменты, предназначенные для работы с базой данных, в частности диаграммы метаданных базы, средства доступа и генерации программного кода. И хотя компоненты базы данных, предоставляемые в Server Explorer, не имеют поддержки, аналогичной реализованной в Management Studio, они в достаточной мере сходны. В некоторых отношениях Server Explorer даже лучше, чем Management Studio. В частности, в нем можно не только создавать, модифицировать и просматривать объекты базы данных, но и создавать типизированные объекты DataSet и DataTable путем перетаскивания таблиц из Server Explorer на DataSet в процессе проектирования.

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

Функциональность Server Explorer доступна из программ с помощью пространна заметку ства имен ServiceController. Это пространство имен реализует изящный доступ высокого уровня к действиям автоматизации, таким как запуск и остановка служб.

Отладка ADO.NET

Интерактивную отладку кода приложения в среде Visual Studio можно провести просто и изящно. Код ADO.NET специализируется на источнике данных. Способность включать в сессию отладки не только код приложения, но и код Т-SQL, выполняемый в источнике данных, дает в руки разработчика несомненные преимущества. В то же время проникновение отладчика в код Т-SQL может оказаться несколько болезненным. Чтобы получить возможность проникновения в программный код базы данных в процессе отладки приложения, в Visual Studio должны быть удовлетворены все перечисленные ниже условия.

?               В подключении к данным в окне Server Explorer должен быть включен режим Allow SQL/CLR Debugging.

?               Во вкладке Debug диалогового окна свойств проекта в Solution Explorer должен быть установлен флажок Enable SQL Server Debugging.

?               Если SQL Server находится не в одном экземпляре операционной системы с Visual Studio, то на компьютере SQL Server должна быть выполнена установка компонентов удаленного доступа Remote Components Setup пакета Visual Studio.

?               Если SQL Server и Visual Studio запущены на разных компьютерах и любая из эгих систем работает в Windows ХР с включенным брандмауэром, то в настройках брандмауэра должна быть разрешена удаленная отладка. На компьютере с Visual Studio это предполагает добавление приложения devenv. ехе в список разрешенных и открытие порта 135. На компьютере с SQL Server это предполагает добавление разрешения для приложения sqlservr. ехе и открытие порта 135.

?               Если должны отлаживаться серверные компоненты CLR, необходимо установить и сконфигурировать на компьютере SQL Server 2005 утилиту Visual Studio Remote Debug Monitor.

?               Если удаленный сервер является экземпляром версий SQL Server 7 или SQL Server 2000, то необходимо сконфигурировать DCOM, чтобы предоставить возможность удаленной отладки с помощью утилиты dcomcnf д. ехе. Вид этой процедуры зависит от операционной системы. Подробности можно узнать в документации по DCOM или Visual Studio.

?               В отношении процесса отладки документацию Visual Studio можно считать совершенной. В ней описано, как использовать инструменты отладки и что нужно устанавливать на SQL Server при включенном параметре удаленной отладки.

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

Трассировка приложения

Когда приложение уже было передано в эксплуатацию, такие инструменты, как Visual Studio или Server Explorer, могут мало что дать. Для подобной ситуации предлагаются другие инструменты, в частности отладчик Windows и SQL Profiler. Они способны помочь идентифицировать проблему, которая всплыла на поверхность только в условиях промышленной эксплуатации приложения. Утилита SQL Profiler является отличным инструментом настройки производительности и разрешения проблем в SQL Server. Многие читатели, должно быть, знакомы с возможностью трассировки в режиме выполнения приложения в ODBC. Несмотря на то что трассировка ODBC является исключительно словесной и поверхностной, она идентифицирует состояния ошибок и проблемы подключения на уровне инструкций приложения. Также возможно использовать трассировку ODBC даже в производственной среде, не рискуя заблокировать таблицы. Языки Visual Studio в свое время предлагали различные типы встроенных средств отладки. Среда .NET Framework в пространстве имен System.Diagnostics .Trace предлагает диагностическую альтернативу, которая может оказаться полезной как на стадии отладки, так и в процессе эксплуатации приложения.

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

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

Среди прочей массы полезной информации, доступной в Интернете и посвя- w’/V в щенной инструментарию трассировки в среде .NET Framework, стоит отметить отличную статью Джона Фансета (Jon Fancet) “Powerful Instrumentation Options in .NET Let You Build Manageable Apps with Confidence”:

http://msdn.microsoft.com/msdnmag/issues/04/04/ InstrumentationinNET/

и статью Боба Бошемена (Bob Beauchemin) “Tracing Data Access”:

http://msdn.microsoft.com/library/default.asp?url=/library/ en-us/dnvs05/html/vsgenerics.asp

В версии ADO.NET 2.0 инструментарий трассировки был расширен компанией Microsoft и теперь позволяет включать встроенные точки трассировки в сборки ADO.NET, сборки .dll SQL Native Client и прочих поставщиков .NET. Основной задачей при этом была интеграция этих функций трассировки с возможностями трассировки класса System.Diagnostics .Trace. К сожалению, на момент написания книги данная интеграция еще не была реализована, а метод сбора информации об этой трассировке не был документирован.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии