책 정리/Effective C#
item 41, 새로운 구조체보다는 DataSet이 좋다.
최익필
2010. 8. 15. 13:40
이 포스트를 만든 목적
- 공부 하려고
이 포스트의 준비물
- 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이 좋은 이유는 수많은 기능을 손쉽게 사용할 수 있기 때문이라고 되어 있다. 하지만, 나는 오히려 구조체에서 그러한 기능들을 특별히 요구되지 않는 한 필요가 없으므로 관리되는 코드 양이 늘어나기 때문에 더 좋지는 않다고 본다.
여담
- 요즘 들어 예제코드를 짜는 것보다 링크로 대체하고 있다. :)