티스토리 뷰

.NET/C#

Custom LINQ Provider - [1]. 소개

POWERUMC 2008. 3. 10. 01:35



 
 
LINQ 의 출연
 
정말 .NET 이라는 세상이 많이 좋아진 것 같습니다. 강력한 Visual Studio 2008 이란 개발 툴에 차세대 프레임웍인 .NET Framework 3.5 로 아직까지 그것의 모두를 채 맛보지 못했습니다. C# 3.0 의 여운이 가시기도 전에 Silverlight 2.0 Beta 의 출시로 다시 한번 RIA 업계를 강타하였고, 올해는 너무나도 할게 많은 한 해가 될 것 같습니다.
 
C# 3.0 의 특징은
l Lambda Expression ( 람다식 )
l Object Initialize ( 객체 초기화 )
l Extension Methods ( 확장 메서드 )
l Anonymous Type ( 익명 타입 )
l 등등…
 
바로, C# 3.0 의 LINQ 는 이러한 람다식이라든지, 확장 메서드 등을 이용한 종합 예술이라고 생각합니다. 때문에, 위의 C# 3.0 의 특징을 이해하지 못한다면, LINQ 를 효율적으로 사용하기에 한계가 있을 것입니다. 때문에, 위의 C# 3.0 의 새로운 기능에 대해서 아직 잘 모르시는 분은 의 C# 3.0 을 참고하십시오.

 
 
LINQ Provider
 
Provider 란 사전적 의미로 “공급자” 정도로 해석할 수 있습니다. LINQ 는 Language Integrated Query 로써, 언어 통합 쿼리를 뜻합니다. 그럼, LINQ Provider 는 쿼리식과 같은 언어적 구문을 해석할 수 있는 공급자라고 생각하시면 됩니다.
 
.NET 이 제공하는 LINQ Provider 는 다음과 같습니다.
l LINQ To Objects
l LINQ To Entities
l LINQ To SQL – MS SQL 만 지원함
l LINQ To XML
 
바로 LINQ(Language Integrated Query ) 는 이렇게 다양한 Provider 들을 서로 다른 쿼리식이 아닌, 통합된 쿼리식으로 C# 3.0 에서 사용할 수 있답니다.
특히, LINQ To SQL 은 Visual Studio 에 함께 통합되어, 이전에 Typed DataSet 과 같이 Drag&Drop 을 지원하며, 자동으로 Entity 클래스를 생성하고, 이것에 대한 Context 객체를 생성해 줌으로써 Typed DataSet 과 Entity 객체의 장점을 모두 갖추며, 더욱 강력한 언어적 기능을 제공해 줍니다.
 
하지만, 이것은 단지 시작에 불과합니다. 기본적으로 제공하는 LINQ Provider 는 몇 개 되지 않지만, 개발자가 직접 LINQ Provider 를 만듦으로써 모든 대상을 통합된 쿼리식을 사용할 수 있습니다. 이토록 경이로울 수가… +_+;
 
 
Custom LINQ Provider
 
이미 해외의 많은 개발자들이 Custom LINQ Provider 를 만들어 내놓았습니다.
대표적인 사례는… ( 님 로그 참조 )
 
 
정말 대단합니다. LINQ To SQL 에 이은 LINQ To Oracle 과 LINQ To WMI, LDAP, Active Directory 등등… 대부분이 Open Source 이기 때문에, 그냥 가져다 쓰기만 하면 될 정도입니다. 이런걸 보고 있자면, 정말 우리(?)보다 훨씬 앞서가고 있는 개발자들이 태반이네요 ㅋ.ㅋ;;
이미 .NET Framework 3.5 Beta 버젼부터 나온 소스들도 있기 때문에, 소스중 현재 정식 .NET Framework 3.5 와 Namespace 체계가 다른것도 있습니다. 조금만 수정해 주시면, 위의 소스들을 컴파일 하시는데 어렵지 않으실 겁니다.
 
하지만, 저도 뭐하나 해봐야 할 것 같긴한데… 다음시간에 Custom LINQ Provider 를 살짝 만들어 보겠습니다. 기대는 하지 말아 주세요~ ^^;
댓글