ADO.NET의 장점

업데이트: 2007년 11월

이전 버전의 ADO 및 다른 데이터 액세스 구성 요소에 비해 ADO.NET에는 여러 가지 장점이 있습니다. 이러한 장점은 다음과 같이 구분됩니다.

상호 운용성

ADO.NET 응용 프로그램을 사용하면 XML의 유연성과 폭 넓은 수용성을 활용할 수 있습니다. XML은 네트워크를 통해 데이터 집합을 전송하기 위한 형식이기 때문에 XML 형식을 읽을 수 있는 모든 구성 요소에서 데이터를 처리할 수 있습니다. 전송 구성 요소는 수신 구성 요소가 구현된 방식과 관계없이 단순히 데이터 집합을 대상으로 전송할 수 있기 때문에 수신 구성 요소는 ADO.NET의 구성 요소가 아니어도 됩니다. 대상 구성 요소는 Visual Studio 응용 프로그램이나 도구를 사용하여 구현된 기타 모든 응용 프로그램이 될 수 있습니다. 유일한 요구 사항은 수신 구성 요소에서 XML을 읽을 수 있어야 한다는 것입니다. 업계 표준인 XML은 이러한 상호 운용성을 염두에 두고 설계되었습니다.

유지 관리 용이성

배포된 시스템을 사용하는 과정에서 어느 정도의 변경은 가능하지만 상당한 정도의 구조적 변경은 어렵기 때문에 거의 시도되지 않습니다. 그러나 경우에 따라 이러한 변경이 필요할 수 있습니다. 예를 들어, 배포된 응용 프로그램의 사용자가 많아지면 성능 부하가 증가되어 구조적 변경이 필요하게 됩니다. 배포된 응용 프로그램 서버에서 성능 부하가 증가되면 시스템 리소스가 부족해지고 응답 시간이나 처리 속도가 느려집니다. 이러한 문제를 해결하려면 소프트웨어 설계자는 서버의 업무 논리 처리와 사용자 인터페이스 처리를 별도의 컴퓨터에 서로 다른 계층으로 분리합니다. 실제로 응용 프로그램 서버 계층은 2계층으로 대체되어 시스템 리소스의 부족을 완화합니다.

여기서 문제가 되는 것은 3계층 응용 프로그램을 설계하는 것이 아니라 응용 프로그램 배포 후 계층의 수를 증가시키는 것입니다. 원래의 응용 프로그램이 데이터 집합을 사용하여 ADO.NET에서 구현된 경우 이러한 변형은 좀 더 쉬워집니다. 하나의 계층을 2계층으로 대체할 때 이 2계층이 정보를 교환하도록 정렬해야 합니다. 왜냐하면 이 두 계층은 XML 형식의 데이터 집합을 통해 데이터를 전송할 수 있으므로 쉽게 통신할 수 있기 때문입니다.

프로그램 가능성

Visual Studio의 ADO.NET 데이터 구성 요소에서는 실수를 줄이고 좀 더 신속하게 프로그램을 만들 수 있도록 다양한 방식으로 데이터 액세스 기능을 캡슐화합니다. 예를 들어, 데이터 명령에서는 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 응용 프로그램에서는 연결이 끊어진 데이터 액세스를 사용하기 때문에 오랜 기간 동안 데이터베이스 잠금이나 활성 데이터베이스 연결은 유지되지 않습니다.

참고 항목

참조

System.Data

기타 리소스

데이터 액세스 시작

Visual Studio에서 데이터에 연결

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

Windows 응용 프로그램에서 폼에 데이터 표시

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장

ADO.NET