한용희 님의 블로그를 참조해서 작성하도록 하겠다.
마이크로소프트에서 자신들이 개발해서 내놓은 개발 프레임워크로 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에 맞도록 보이겠다.
블록 명 | 설명 | 버전 |
---|---|---|
MSDN에 EL의 관계도가 나와 있다.
그림 1. 애플리케이션 블록 간의 관계
Data Access Application Block
DB의 종류에 관계없이 config 확장자에 지정된 연결 문자열만 있으면 DB처리를 해준다는 가장 기본적으로 많이 사용되는 블록이다.
Caching Application Block
Cryptography Application Block
난이도 : (따라하면 되요) 아무것도 없이 가장 간단하게 EL을 사용하는 방법부터 설명하겠다. 정말 간단한 방법이다. 먼저 웹 프로젝트를 생성한다. 여기서는 ELTest라는 이름의 웹사이트를 만들었다. 솔루션 탐색기에서 참조를 추가하자. 위치는 설치된 Enterprise Library 3.1의 위치인 C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\Bin 이다. 그림 1. 참조 추가 기본적으로 있어야 할 Microsoft.Practices.EnterpriseLibrary.Common.dll 파일부터 해서 아래의 그림에 있는 세가지의 dll을 추가하면 참조추가는 끝난다. 그림 2. 참조 확인 web.config에 ConnectionString을 작성한다. 물론 그 쉬운 방법은 앞서 얘기했다. 6 <connectionStrings> 7 <add name="NwConnString" connectionString="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라고 변경한다. 그림 3. 그리드뷰 추가 이제 Default.aspx.cs에 네임스페이스를 추가한다. 11 // 추가 12 using Microsoft.Practices.EnterpriseLibrary.Common; 13 using Microsoft.Practices.EnterpriseLibrary.Data; 남은 것은 Page_Load 이벤트 핸들러에 작성하는 것이다. 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와 같이 결과화면을 볼 수 있다. 그림 4. 실행한 Default.aspx 화면 이제 마지막으로 DataSet을 사용하여 비연결방식으로 데이터를 가져오는 방법을 보도록 한다. 이 부분은 David Hayden의 블로그에서 참조했다. Thanks David~!! ^^ 먼저 DbCommand를 위해 네임스페이스를 하나 추가한다. 12 using System.Data.Common; 다음으로 새로운 메서드를 하나 작성한다. 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 이벤트 핸들러를 작성한다. 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와 같은 결과가 나타난다. 그림 5. 결과 화면 여기까지 Enterprise Library 기본적인 실행방법은 알아보았다. 다음으로 각 블록별로 내용들을 확인하도록 할 예정이다.Enterprise Library 기본사용법
'Other Programming > Application Programming' 카테고리의 다른 글
C# 에서 API 사용하기 (0) | 2008.10.27 |
---|---|
APP C# WinAPI 적용 (0) | 2008.10.27 |
App 바탕화면 바꾸기 레지스트리 관련 (0) | 2008.10.27 |