닷넷 경향
.NET Framework 3.0이 나왔습니다만, WPF 같은 최신 기술은 거의 윈도우 비스타에서만 적용되기 때문에 2.0을 주로 씁니다. 오래 전에 닷넷을 도입한 곳은 1.1을 아직 쓰기도 하구요. 저는 2.0을 권합니다.
추천 서적
제가 C# 공부할 때는 .NET Framework 1.1이었기 때문에 요즘엔 입문용으로 어느 책이 좋은지 모르겠습니다. 그래도 아래 두 권 정도는 읽어두시면 좋습니다.
-
필독서! 이 책 안 읽고 닷넷이 느리다는 둥의 소리를 하면 한대 맞아야 함. -_-;;
-
디자인 패턴을 하루면 익힐 수 있습니다. 예제가 전부 자바로 구성되어 있지만, 정말 조금만 손보면 C# 코드가 됩니다. 자바 코드를 어떻게 C# 코드로 바꿔야 하는지 모르겠다 하시는 분은 제가 쓴 Converting C# to Java3를 읽어보세요.
입문 시기가 지난 후에 닷넷 서적을 살 땐, 용도에 맞춰 잘 골라야 합니다. ASP.NET, XML Webservices 등 각 분야마다 유명한 책이 따로 있습니다.
공부용으로 볼만한 샘플 코드
System Monitor4
추천 사이트 및 라이브러리
-
북마크 해둘 만한 사이트.
밑에 소개할 Enterprise Library를 비롯해 다양한 라이브러리를 무료로 제공하고, 디자인 패턴 등과 관련된 읽어볼 만한 문서도 많습니다.
-
모르시는 분 계시나요? 요즘은 한국어로도 기사가 제공됩니다.
-
오픈 소스 프로젝트가 활발히 진행되고 있는 사이트입니다. 소스포지와 비슷합니다.
-
Microsoft Patterns & Practices 팀이 만든 기업용 소프트웨어 라이브러리입니다.
캐싱, 데이터베이스, 예외처리, 로깅, 암호화 라이브러리 등을 제공하는데, 특히 데이터베이스, 예외처리, 그리고 로깅 라이브러리는 한번쯤 도입을 고려해봐야 합니다. 이 세 개의 라이브러리만 도입해도 개발 시간을 줄이고 코드를 깔끔하게 유지할 수 있습니다.
단점.
개발 도구
-
Visual Studio 2005에 기본 탑재된 리팩토링 기능은 너무 미흡하죠.
[스크린캐스트] C# 리팩토링11를 보시면 어떻게 활용하는지 감 잡을 수 있을 겁니다.
-
제가 인턴할 때 쓴 글이죠? 기억하시나 모르겠네요. 꼭 C#용 도구만 다룬 글은 아닙니다만, 제가 C# 프로그래밍할 때 많이 쓰던 도구를 소개합니다.특히 정규식 도구나 웹 개발 도구를 많이 썼었죠.
-
통합 빌드 서버입니다. 하나 장만해둬야 하는 필수품입니다. 한번 쓰기 시작하면 코드의 품질이 점점 나아지는 걸 체감하실 겁니다. 이쯤에서 광고 한번 하자면, 제가 번역한 Ship It!14을 읽어보시면 왜 통합 빌드 서버가 필요한지 이해하실 수 있습니다. ^^
-
Visual Studio 2005부터 단위테스트 프레임워크가 제공되니 꼭 NUnit를 쓸 필요는 없습니다. 하지만 .NET Framework 1.1 때만 하더라도 필수 품목이었습니다.
-
빌드 스크립트 도구입니다. Visual Studio에 빌드 버튼이 있는데, 왜 이런 게 필요하냐라고 물으신다면 다시 한번 Ship It!14을 권해드려야겠군요. ^^
추천 글
-
제가 쓴 글입니다. CLR Profiler, CPU Profiler, Web Application Stress Tool 등을 이용한 성능 분석에 대한 내용이 주를 이룹니다. 이런 말하기 쑥스럽지만, 성능 분석 방법을 다룬 한글 자료로는 아마 이만한 게 없을 겁니다. (돌려 말하면 영문으론 많습니다. ㅠ.ㅠ)
-
제가 쓴 글입니다. C++에서 패킷을 struct로 정의해놓고 소켓 통신을 하는 경우가 많은데, C#에서 동일한 방식을 지원하려면 손이 많이 가서 만들었던 라이브러리입니다.
-
이것도 인턴할 때 쓴 글입니다. 문서화를 해야 할 때 읽어보시면 좋습니다.
-
.NET Framework 1.1 때의 글을 모아놓은 것이지만, 지금도 유효할 겁니다.
Links
- http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200701040010
- http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200508240010
- http://kaistizen.net/EE/index.php/project/csharp/csharp_java.htm/
- http://blogs.msdn.com/coding4fun/archive/2006/10/31/912382.aspx
- http://kaistizen.net/EE/index.php/imaso/200611_system_monitor.html
- http://msdn2.microsoft.com/ko-kr/practices/default.aspx
- http://msdn.microsoft.com/msdnmag/
- http://www.codeplex.com/
- http://www.codeplex.com/entlib
- http://kaistizen.net/EE/index.php/weblog/comments/refactoring_tools_for_visual_studio/
- http://kaistizen.net/EE/index.php/weblog/comments/screencast_csharp_refactoring/
- http://kaistizen.net/EE/index.php/weblog/comments/redbook_tools_for_windows/
- http://cruisecontrol.sourceforge.net/
- http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200707250014
- http://www.nunit.org/
- http://nant.sourceforge.net/
- http://kaistizen.net/EE/index.php/imaso/content.html
- http://kaistizen.net/EE/index.php/project/csharp/socket_programming_guidelines_on_dotnet.htm/
- http://kaistizen.net/EE/index.php/weblog/comments/redbook_csharp_documentation/
- http://kaistizen.net/EE/index.php/weblog/comments/csharp_performance_articles/