Преимущества ADO.NET
Обновлен: Ноябрь 2007
ADO.NET имеет ряд преимуществ по сравнению с предыдущими версиями ADO и другими компонентами для доступа к данным. Эти преимущества можно разделить на следующие категории.
Взаимодействие
Приложения ADO.NET отличаются гибкостью и обширной поддержкой XML. Так как XML является форматом передачи наборов данных через сеть, обрабатывать данные может любой компонент, поддерживающий чтение данных в формате XML. В сущности, принимающий компонент вообще не обязан быть компонентом ADO.NET: передающий компонент может просто передать набор данных получателю, вне зависимости от способа реализации последнего. Компонент-получатель может быть приложением Visual Studio или любым другим приложением, реализованным какими угодно средствами. Единственное требование состоит в том, что получатель должен уметь читать данные в формате XML. XML как общепризнанный стандарт был разработан именно для такого типа взаимодействия.
Простота модификации
В течение срока службы развернутой системы в нее можно вносить незначительные изменения, однако попытки произвести коренные, архитектурные изменения случаются редко в силу исключительной сложности задачи. К сожалению, при естественном развитии событий такие изменения иногда оказываются необходимыми. Например, по мере роста популярности развернутого приложения среди пользователей растет нагрузка на него, и иногда такой рост может потребовать архитектурных изменений. По мере того как нагрузка на сервер распределенного приложения возрастает, может возникнуть дефицит системных ресурсов, что может отразиться на времени ответа или производительности приложения. Столкнувшись с этой проблемой, разработчики программного обеспечения могут разграничить обработку бизнес-логики приложения на сервере и обработку пользовательского интерфейса, выделив их в разные уровни, выполняемые на разных машинах. В результате уровень сервера приложения заменяется двумя уровнями, что снижает остроту нехватки ресурсов.
Проблема заключается не в создании трехуровневого приложения. а в увеличении числа уровней приложения уже после его развертывания. Если первоначальное приложение реализовано на основе ADO.NET с использованием наборов данных, такое преобразование происходит гораздо легче. Необходимо помнить, что при замене одного уровня двумя нужно продумать способ обмена информацией между этими уровнями. Так как уровни могут обмениваться данными посредством наборов данных в формате XML, организовать связь относительно просто.
Простота программирования
Компоненты данных ADO.NET в Visual Studio инкапсулируют функциональные возможности доступа к данным различными способами, что помогает разрабатывать программные продукты значительно быстрее и с меньшим количеством ошибок. Например, команды данных абстрагируют задачу построения и выполнения инструкций SQL или хранимых процедур.
Аналогично этому, классы данных ADO.NET, созданные конструирующими сервисами, преобразуются в типизированные наборы данных. Они, в свою очередь, предоставляют доступ к данным методами типизированного программирования. Например, рассмотрим следующую строку кода, которая осуществляет доступ к элементу данных в нетипизированном наборе:
If totalCost > CType(dataSet1.Tables("Customers").Rows(n)("AvailableCredit"), Double) Then
if (totalCost > (double)dataSet1.Tables["Customers"].Rows[n]["AvailableCredit"])
Аналогичная строка кода для доступа к элементу данных в типизированном наборе выглядит так:
If totalCost > dataSet2.Customers(n).AvailableCredit Then
if (totalCost > dataSet2.Customers[n].AvailableCredit)
Код для типизированного набора данных легче читать. Кроме того, его легче писать, так как предлагается завершение оператора. Например, AvailableCredit находится в списке возможных вариантов для завершения следующей инструкции:
If totalCost > dataSet2.Customers(n).
К тому же, код для типизированных наборов данных отличается более высоким уровнем безопасности, так как в этом случае выполняется проверка типов на этапе компиляции. Например, предположим, что AvailableCredit выражается в виде значения денежного формата. Если программист по ошибке присвоит элементу AvailableCredit строковое значение, среда разработки сообщит ему об ошибке во время компиляции. При работе с нетипизированными наборами данных программист не узнает об ошибке до момента выполнения.
Дополнительные сведения о типизированных и нетипизированных наборах данных содержатся в разделе Общие сведения о наборах данных в Visual Studio.
Производительность
Для неподключенных приложений наборы данных ADO.NET дают выигрыш в производительности по сравнению с неподключенными наборами записей ADO. Передача неподключенного набора записей между уровнями с помощью COM-упаковки может привести к большому расходу вычислительных ресурсов, так как значения в наборе записей преобразуются к типам данных, известным COM. В ADO.NET такое преобразование типов данных не требуется.
Масштабируемость
Так как подключение к Интернету может радикально увеличить количество запросов к данным, для веб-приложений масштабируемость становится определяющим фактором. Для веб-приложений верхней границы количества пользователей не существует. Хотя приложение может без особых проблем работать с десятком пользователей, с сотнями или сотнями тысяч оно может не справиться. Приложение, расходующее такие ресурсы, как блокировки баз данных и подключения к базам данных, не сможет нормально обслуживать большое число пользователей, так как потребность пользователей в этих ограниченных ресурсах очень быстро превысит их количество.
ADO.NET способствует повышению масштабируемости при помощи стимулирования сбережения ограниченных ресурсов программистами. Так как любое приложение ADO.NET использует неподключенный доступ к данным, блокировки баз данных и подключения действуют кратковременно.
См. также
Ссылки
Другие ресурсы
Начало работы с доступом к данным
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Отображение данных на форме в приложениях Windows