블로그 이미지
Sunny's

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'Data Access Application Block'에 해당되는 글 1

  1. 2009.09.15 Data Access Application Block
2009. 9. 15. 10:59 .NET Framework

닷넷 기반 뿐만 아닌, DB(꼭 Database 뿐 아니라, 어떠한 데이타 저장소라면 모두 포함) 를 가지고 핸들링하는 모든 프로그램코드에는 DataAccess를 위한 모듈을 따로 분리해서 클래스화 하고 있을것이다.
닷넷초창기,, 프레임웤이 그리 보편화되지 않았을 때에도,  SqlHelper.cs나 OracleHelper.cs를 조금 변형해서, 혹은 그대로 사용한 경우도 본적이 있을것이다.
또한, 객체지향이라는 개념에서 가장 먼저 모듈화와 캡슐화를 적용하는 범위도,  DataAccess쪽이 가장 널리, 보편적으로 적용되어 졌었다.
이와 같이, DB의 핸들링이 필요한 경우에는, 반복적인 ADO.NET 작업(DB커넥션 및 파라메터 관리 등.. 스토어드 프로시져 관련 핸들링, 인라인쿼리 핸들링..등등..) 에 대해서 일괄 관리가 가능하도록 DataAccess Layer를 두게 되는데, Enterprise Library에서는 DataAccess Applicaion Block 이 이에 속한다.

그럼, Data Access Application Block 에 대해서 살펴보자.
Data Access Application Block 뿐 아니라, 모든 Enterprise Library의 Block들의 속성값이 config에서 관리되어지는 편리함이 있듯이, 이녀석도, 마찬가지로, MSSQL 에 붙였다, Oracle에 붙였다. 등등의 변경작업을 코드의 수정없이 Config의 속성값 변경만으로 가능한 장점을 가지고 있다.
재 컴파일이 필요없으니, 얼마나 재배포가 용이한지.. 두번 말할 필요 없겠다.

Enterprise Library configuration 을 통해서 config를 설정하는 방법은 아래와 같다.

웹응용프로그램이라고 했을때, web.config 우클릭을 한다.
사용자 삽입 이미지

ConnectionString에 핸들링하고자하는 DB를 추가하는 모습이며, 속성탭(F4)을 통해서 설정가능하다
사용자 삽입 이미지


여러개의 ConnectionString을 필요로할경우에는 상단레벨인 DataAccess Applicaion Block을 선택한후 속성창을 보면, Default 값을 선택할수 있다.  즉, DB인스턴스를 생성할때 파라메터없이 create할경우에는 Master란 녀석으로 인식하라는 의미가 되겠다.
사용자 삽입 이미지

모든 설정이 끝난후, web.config 파일을 보면 아래와 같이보여진다,
모든 Block들은 매우 독립적이면서도 유기적으로 사용가능하다,
암호화가 되어있는 부분에 대해서는 Crptography Application Block에서 자세히 논하기로 하겠다.
사용자 삽입 이미지

위와 같이 config설정이 끝나면, Data Access Application Block 을 사용하기 위해, 아래 두가지 어셈블리를 참조추가하도록 하자.

Microsoft.Practice.EnterpriseLibrary.Common.dll
Microsoft.Practice.EnterpriseLibrary.Data.dll

참조가 되었으면, 소스코드에서   아래와 같이 using문을  추가한다.
  1.     
  2. using Microsoft.Practices.EnterpriseLibrary.Data;   
  3. using System.Data;  

이제 모든 준비가 다 되었다.
DataAccess Application Block을 사용하기만 하면 된다.

DataAccess Application Block 은  내부적인 메카니즘에 대해서 보다, 우선 사용법에 대해서 먼저 익숙해질 필요가 있다. 모든 솔루션이 그렇듯, 어떻게 사용하는지 테스트를 하다보면, 디테일한것들이 하나둘씩 궁금해지기 마련이다.
우선,   Key가되는 Class를 아래그림을 통해 유심히 보자.
사용자 삽입 이미지

위의 그림을 보면,   Client Code DatabaseFactory라는 녀석을 통해  인스턴스를 생성하는 것으로부터 시작되는것 같아 보인다.
그럼, 다음 포스팅에서는
DB의 인스턴스를 생성하는것부터  알아보기로 하자.

출처 : http://dncblog.tistory.com/42
posted by Sunny's
prev 1 next