MS가 발표한 무료 Winform / ASP.NET 차트

미분류 2008. 10. 28. 00:31

소개

David Hayden 의 블로그를 읽다가 MS가 발표한 무료 Winform / ASP.NET 차트가 있음을 알게 되었습니다.

지난 9월 8일에 출시되었는데 이제야 알게 되었네요.

image

충분히 살펴보지는 못했지만, (제가 아는 한 에서는) 써드 파티 차트 컨트롤의 최고봉이라고 할 Chart-FX에는 미치지 못하지만, Infragistics나 DevExpress 사의 차트 컨트롤과는 대등한 수준인 것 같습니다.

즉, 상용 수준의 차트 컨트롤을 무료로 사용할 수 있다는 의미가 되겠습니다.

 

컨트롤은 Microsoft .NET Framework 3.5용 Microsoft Chart Controls에서 다운 받을 수 있습니다. 혹 영문 버전을 설치하였다면 Microsoft .NET Framework 3.5용 Microsoft Chart Controls 언어 팩에서 한국어 언어 팩을 추가로 설치할 수 있습니다.

그리고 차트 컨트롤을 비주얼 스튜디오와 통합하는 Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008는 여기에서 다운 받을 수 있습니다. 필수는 아니지만 문서샘플도 다운 받으실 것을 추천합니다.

 

헬로우 월드

그냥 소개만 하고 마치면 아쉬우니까, (상징적인 의미로서의) '헬로우 월드'라도 한 번 찍어보겠습니다.

 

1. 위 링크를 모두 다운 받아 설치한 후 비주얼 스튜디오에서 새 윈폼 응용프로그램을 만듭니다.

2. 윈폼 디자이너가 열린 상태에서 도구 상자를 보면 새로 추가된 차트 컨트롤이 데이터 카테고리아 안에 아래 그림과 같이 보입니다.

image

3. 차트 컨트롤을 윈폼 디자이너로 끌어옵니다.

image

4. 이제 차트의 데이터 소스를 지정하여야 합니다. 물론 예상하시다시피 데이터베이스 테이블이나, XML, 엔터티 컬렉션 등을 모두 데이터 소스로 지정할 수 있지만, 여기서는 간단하게 엔터티의 컬렉션을 사용하도록 하겠습니다.

5. 여러 학생의 국어 영어 수학 점수에 대한 차트를 그리는 상황이라고 가정하겠습니다. 각 학생의 점수를 표현하는 Score 클래스를 프로젝트에 추가합니다.

image

6. 먼저 빌드를 한 번 해준 후, 차트 컨트롤의 속성에서 데이터 소스를 선택한 후 아래 그림과 같이 프로젝트에 새 데이터 소스를 추가합니다.

image 

7. 데이터 소스 타입에서 객체를 선택하고, 위에서 만든 Score 클래스를 선택합니다.

image

image

8. 차트 컨트롤의 Series 속성을 선택하여 시리즈 컬렉션 편집기를 엽니다.

image

9. Name은 '국어', XValueMember는 'Name', YValueMember는 'Korean'으로 설정합니다.

이는 가로 축으로는 응시자의 이름이 나오고 세로 축으로 국어 점수를 표시하겠다는 의미입니다.

image

10. 시리즈를 두 개 더 추가한 후 Name과 YValueMember 값을 각각 아래 그림과 같이 설정합니다. 가로 축은 응시자의 이름이므로 세 시리즈 모두 'Name'이 됩니다.

image

image

11. 영어의 차트 타입은 Bubble로, 수학의 차트 타입은 Spline으로 설정합니다.

image

12. Form1 클래스의 코드 비사이드 파일에 아래와 같은 코드를 추가합니다.

Score 객체의 리스트를 만들어 이를 차트의 데이터 소스로 지정하는 일을 하고 있습니다.

 image

여담이지만, Form 클래스의 Shown 이벤트에 이벤트 핸들러를 추가하지 않고, 바로 OnShown 메서드를 재정의하는 것을 유심히 보시기 바랍니다. 이는 이벤트 핸들러를 추가하는 방식에 비해서 몇 가지 이점을 가지고 있습니다. 이에 대해서는 졸고 C# 코딩 연습 - 대리자와 이벤트에서 자세히 다루고 있습니다.

13. 실행을 하면 아래와 같은 차트를 보실 수 있습니다.

image

 

정리

개발자로서 어려운 선택을 해야 하는 경우가 종종 있습니다.

'유연한 확장이 가능하고 비용이 들지 않는 오픈 소스 기반의 라이브러리를 선택하느냐, 품질이 보장되고 친절한 매뉴얼과 기술 지원이 제공되는 상용 제품을 구매하느냐'도 그런 선택의 하나인 것 같습니다.

물론 프로젝트의 상황과 개발자의 가치관이나 취향 등에 따라 결국 취사선택될 문제이긴 하나, 이 차트 컨트롤의 경우에는 고민스러운 선택을 하지 않아도 될 것 같습니다.

'참 고마운 사람들'이라고 손뼉을 치며 좋아하면서도, 가슴 한 쪽이 서늘해지는 기분이 듭니다.

이 차트 컨트롤과 비슷하거나 못한 상용 제품을 파는 개발사는 그럼 어떻게 될까요?

그들이 쓰러지고 나면 그 다음에는 또 누가 쓰러질까요? 혹시 나?

: