본문 바로가기

Other Programming/Application Programming

프레임워크 Framwork Enterprise Library 튜토리얼 Enterprise Library 기본사용법

반응형





  난이도 :  (그냥 읽으세요.)

 

한용희 님의 블로그를 참조해서 작성하도록 하겠다.

마이크로소프트에서 자신들이 개발해서 내놓은 개발 프레임워크로 Enterprise Library(엔터프라이즈 라이브러리 줄여서 EL)가 있다. MS는 이 제품의 모든 소스를 공개하고 있다. 2003년에 처음 소개되어 현재까지 버전업을 하고 있으며 현재 VisualStudio 2008에 최적화된 EL 4.1까지 나와있다.

필요한 설치 프로그램 및 소스코드는 codeplex에서 다운받을 수 있다. 다운로드 사이트를 따라 가보면

Enterprise Library 4.1 – October 2008 (for .NET Framework 3.5 and Visual Studio 2008)

Enterprise Library 3.1 – May 2007 (for .NET Framework 2.0 and 3.0)

위의 다운로드 링크 두개가 각각 VS 2008, VS 2005용으로 보면 되겠다.

설치 및 삭제는 쉬으므로 설명하지 않겠다.

 

EL에 여러가지 기능들을 내포하고 있는데 필요한 부분만 따로 쓸 수 있을 정도로 잘 나뉘어져 있다. 이를 Application Block(애플리케이션 블록)이라고 하는데, 한용희님의 블로그에 나와 있는 표를 수정해서 EL 4.x에 맞도록 보이겠다.

블록 명설명버전
 Caching Appliaction Block(캐시)  로컬 캐시 처리를 위한 블록  EL 2.0
 Cryptography Applicaiton Block(암호화)  해시 함수와 동기 암호화를 위한 블록  EL 2.0
 Data Access Applicaiton Block(데이터 액세스)  표준화된 데이터베이스 액세스를 위한 블록  EL 2.0
 Exception Handling Application Block(예외처리)  아키텍쳐 레이어 전체를 포함하여 일관된 예외처리 정책 수립을 위한 블록  EL 2.0
 Logging Application Block(로그)  로깅 정보를 처리하기 위한 블록  EL 2.0
 Security Application Block(보안)  권한 검증과 보안 캐시 처리를 위한 블록  EL 2.0
 Validation Application Block(검증)  객체에 대한 검증 규칙을 적용하기 위한 블록  EL 3.1
 Policy Injection Application Block(정책 주입)  각 객체체 별도의 정책을 넣기 위한 블록  EL 3.1
 The Unity Application Block(유니티)  유연성있고 수정하기 쉬운 애플리케이션을 만들기 위한 경량 컨테이너를 위한 블록  EL 4.0

 

MSDN에 EL의 관계도가 나와 있다.

Dd203305.2e8fd2b5-34d2-4fe6-a175-e3036a0c1c17(en-us,MSDN.10).png 

그림 1. 애플리케이션 블록 간의 관계

 

Data Access Application Block

DB의 종류에 관계없이 config 확장자에 지정된 연결 문자열만 있으면 DB처리를 해준다는 가장 기본적으로 많이 사용되는 블록이다.

 

Caching Application Block

 

Cryptography Application Block 








02. Enterprise Library 기본사용법

난이도 :  (따라하면 되요)

 

Enterprise Library 기본사용법

아무것도 없이 가장 간단하게 EL을 사용하는 방법부터 설명하겠다. 정말 간단한 방법이다.

 

먼저 웹 프로젝트를 생성한다. 여기서는 ELTest라는 이름의 웹사이트를 만들었다.

솔루션 탐색기에서 참조를 추가하자.

위치는 설치된 Enterprise Library 3.1의 위치인 C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\Bin 이다.

K-11.jpg 

그림 1. 참조 추가

 

기본적으로 있어야 할 Microsoft.Practices.EnterpriseLibrary.Common.dll 파일부터 해서 아래의 그림에 있는 세가지의 dll을 추가하면 참조추가는 끝난다.

K-14.jpg 

그림 2. 참조 확인

 

web.config에 ConnectionString을 작성한다. 물론 그 쉬운 방법은 앞서 얘기했다.

  1.     6     <connectionStrings>

        7         <add name="NwConnStringconnectionString="Data Source=127.0.0.1;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=dkagh"

        8             providerName="System.Data.SqlClient/>

        9     </connectionStrings>

 

Default.aspx에 GridView를 집어넣고 이름을 gvCustomers라고 변경한다.

K-15.jpg 

그림 3. 그리드뷰 추가

 

이제 Default.aspx.cs에 네임스페이스를 추가한다.

  1.    11 // 추가

       12 using Microsoft.Practices.EnterpriseLibrary.Common;

       13 using Microsoft.Practices.EnterpriseLibrary.Data;

 

남은 것은 Page_Load 이벤트 핸들러에 작성하는 것이다.

  1.    19         protected void Page_Load(object sender, EventArgs e)

     

       20         {

       21             Database db = null;

       22 

       23             if (!IsPostBack)

       24             {

       25                 db = DatabaseFactory.CreateDatabase("NwConnString");

       26                 string selQry = "SELECT * FROM Customers";

       27 

       28                 IDataReader read = db.ExecuteReader(CommandType.Text, selQry);

       29 

       30                 if (read.Read())

       31                 {

       32                     gvCustomers.DataSource = read;

       33                     gvCustomers.DataBind();

       34                 }

     

       35             }          

       36         }

 

굵게 표시된 클래스나 인터페이스, 메서드 들이 EL에서 제공해주는 것들이다. 이렇게 작성하고 실행하게되면, 아래의 그림 4와 같이 결과화면을 볼 수 있다.

K-2.jpg 

그림 4. 실행한 Default.aspx 화면

 

이제 마지막으로 DataSet을 사용하여 비연결방식으로 데이터를 가져오는 방법을 보도록 한다.

이 부분은 David Hayden의 블로그에서 참조했다. Thanks David~!! ^^

먼저 DbCommand를 위해 네임스페이스를 하나 추가한다.

  1.    12 using System.Data.Common;

 

다음으로 새로운 메서드를 하나 작성한다.

  1.    35         private DataSet GetCustomers(string customerId)

       36         {

       37             Database northWind = DatabaseFactory.CreateDatabase("NwConnString");

       38             string selQry = "SELECT * FROM Customers WHERE CustomerID LIKE '%' + @customerID + '%' ";

       39             DbCommand cmd = northWind.GetSqlStringCommand(selQry);

       40             northWind.AddInParameter(cmd, "@customerID"DbType.String, customerId);

       41             DataSet ds = new DataSet();

       42             northWind.LoadDataSet(cmd, ds, "Customers");

       43

       44             return ds;

       45         }

 

마지막으로 Page_Load 이벤트 핸들러를 작성한다.

  1.  

       20         protected void Page_Load(object sender, EventArgs e)

       21         {

       22             DataSet dsCustomers = null;

       23             if (!IsPostBack)

       24             {

       25                 dsCustomers = GetCustomers("");

       26

       27                 if (dsCustomers != null)

       28                 {

       29                     gvCustomers.DataSource = dsCustomers;

       30                     gvCustomers.DataBind();

       31                 }

       32             }

     

       33         } 

 

결과는 이전의 그림 4와 동일하다. 하지만 GetCustomers메서드의 파라미터를  "ANTON" 으로 바꾼뒤 새로 실행하면 아래의 그림 5와 같은 결과가 나타난다.

K-3.jpg 

그림 5. 결과 화면

 

여기까지 Enterprise Library 기본적인 실행방법은 알아보았다. 다음으로 각 블록별로 내용들을 확인하도록 할 예정이다.





'Other Programming > Application Programming' 카테고리의 다른 글

C# 에서 API 사용하기  (0) 2008.10.27
APP C# WinAPI 적용  (0) 2008.10.27
App 바탕화면 바꾸기 레지스트리 관련  (0) 2008.10.27