이 포스트를 만든 목적
- 공부 하려고
이 포스트의 준비물
- gVim 7.2 (vim 7.3f 까지 나왔다.)
- Microsoft Visual C# 2010 Express
- SyntaxHighlighter 3.x
참고 서적
- Effective C#
- 소설같은 C# 3판
참고 링크
- http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx
- DataSet 클래스 설명이 되어 있다.
내용
DataSet은 무엇인가?
- ADO.NET의 주요한 구성요소 이다.
- 데이터 베이스로부터 데이터 소스들을 cache 할 수 있게 한다.
그런데 왜 구조체와 DataSet을 연관 시키고, DataSet이 더 좋다고 하는가?
왜냐하면, DataSet은 데이터 소스들을 cache 하는 기능을 넘어서 더 많은 일을 할 수 있다. 이러한 확장성 중 구조체에서 구현할 필요가 있을 법한 기능이 많이 있기 때문이라고 한다.
DataSet이 구조체를 대체 할 수 있는 기능은 어떤 것들이 있는가?
- 값이 변화될 때, 이벤트를 발생시킨다.
- 이 덕분에, 변화된 값 체크 할 수 있다.
예제 : http://msdn.microsoft.com/en-us/library/system.data.datatable.columnchanged.aspx
- 입력되는 값들에 제약 사항을 걸 수 있다.
- 이 덕분에, 데이터를 넣을 때, 잘못된 데이터를 넣게 되면, 예외를 발생시킨다.
예제 : http://msdn.microsoft.com/en-us/library/system.data.datacolumn.unique.aspx
이것 외로 더 많은 기능이 있지만, 너무 광범위하여, 여기서 끝낸다. 나중에 필요할 때 찾아서 봐야겠다.
결론
- 책에서 새로운 구조체보다 DataSet이 좋은 이유는 수많은 기능을 손쉽게 사용할 수 있기 때문이라고 되어 있다. 하지만, 나는 오히려 구조체에서 그러한 기능들을 특별히 요구되지 않는 한 필요가 없으므로 관리되는 코드 양이 늘어나기 때문에 더 좋지는 않다고 본다.
여담
- 요즘 들어 예제코드를 짜는 것보다 링크로 대체하고 있다. :)
'책 정리 > Effective C#' 카테고리의 다른 글
item 46, Interop를 최소화하라 (0) | 2010.08.27 |
---|---|
item 45, 견고한 예외 보증 기법이 더 좋다. (0) | 2010.08.25 |
item 44, 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라. (1) | 2010.08.23 |
item 43, reflection을 과도하게 사용하지 말라 (0) | 2010.08.19 |
item 42, reflection을 단순화하기 위해서 attribute를 사용하라 (0) | 2010.08.18 |
item 40, 적절한 collection 개체를 이용하라 (0) | 2010.08.14 |
item 39, 닷넷의 유효성 검증 기능을 사용하라. (0) | 2010.08.10 |
item 38, 데이터 바인딩을 사용하라. (0) | 2010.08.04 |
item 37, 표준 환경설정 메커니즘을 이용하라 (0) | 2010.08.03 |
item 36, 닷넷 런타임의 진단기능을 활용하라 (0) | 2010.08.01 |
최근댓글