이미 소장하고 있다면 판매해 보세요.
|
● 차 례
Part 1 C#과 .NET 플랫폼 소개 1 Chapter 1 .NET의 철학 2 이전 상황 파악하기 2 .NET 솔루션 6 .NET 플랫폼의 구성 요소(CLR, CTS, CLS) 7 .NET 기본 클래스 라이브러리의 역할 8 C#이 가져온 것 8 그 밖의 .NET 지원 프로그래밍 언어 10 .NET 바이너리(어셈블리) 개요 11 CIL의 역할 14 .NET 형식 메타데이터의 역할 17 어셈블리 매니페스트의 역할 18 CIL을 플랫폼 종속적인 명령어로 컴파일하기 19 공용 형식 시스템 20 CTS 내장 데이터 형식 24 공용 언어 사양 24 공용 언어 런타임 27 .NET 네임스페이스로 떠나는 여행 29 네임스페이스 좀 더 알아보기 34 클래스 뷰어 웹 응용 프로그램 39 .NET 런타임 배포하기 42 .NET을 비 Microsoft 운영체제에서 실행하기 43 요 약 43 Chapter 2 C# 응용 프로그램 만들기 45 명령줄 컴파일러(csc.exe)의 역할 45 csc.exe를 이용해서 C# 응용 프로그램 빌드하기 48 csc.exe 지시 파일로 작업하기 53 버그 리포트 생성하기 55 그 밖의 C# 컴파일러 옵션 56 명령줄 디버거(cordbg.exe) 58 Visual Studio .NET IDE 사용하기 59 VS .NET 테스트 응용 프로그램 만들기 63 Visual Studio .NET IDE로 디버깅하기 71 VS .NET IDE의 다른 주요 기능 72 XML로 소스 코드 문서화하기 77 C# ?전처리기? 지시문 82 System.Environment 클래스 87 다른 IDE로 .NET 응용 프로그램 만들기 88 요 약 89 Part 2 C# 프로그래밍 언어 91 Chapter 3 C# 언어 기초 다지기 92 기본 C# 클래스의 구조 92 객체 생성하기 : 생성자 97 C# 응용 프로그램의 구성 100 기본 할당과 변수 유효 범위 102 C# 멤버 변수 초기화 104 Console 클래스를 이용한 기본 입출력 105 값 형식과 참조 형식 이해하기 110 마스터 노드 : System.Object 115 시스템 데이터 형식과 C# 별칭 124 값 형식과 참조 형식 간의 변환 : 박싱(boxing)과 언박싱(unboxing) 129 프로그램 상수 정의하기 134 C# 반복 구조 136 C# 흐름 제어 구조 139 C# 연산자 142 사용자 지정 메소드 정의하기 143 정적 메소드 이해하기 146 메소드 매개변수 한정자 150 C#의 배열 조작하기 158 C#의 문자열 조작하기 164 C# 열거형 168 C#의 구조체 정의하기 173 사용자 지정 네임스페이스 정의하기 176 요 약 182 Chapter 4 C#을 이용한 객체 지향 프로그래밍 183 C# 클래스의 공식 정의 183 형식의 ?기본 public 인터페이스? 정의하기 188 OOP의 중심 개념 192 첫 번째 중심 개념 : C#의 캡슐화 서비스 197 의사(pseudo) 캡슐화 : 읽기 전용 필드 만들기 205 두 번째 중심 개념 : C#의 상속 지원 208 가족의 비밀 지키기 : ?protected? 키워드 211 중첩 형식 정의 218 세 번째 중심 개념 : C#의 다형성 지원 220 형식 간 형식 변환 230 Visual Studio .NET을 이용해서 클래스 정의 생성하기 233 요 약 236 Chapter 5 예외와 객체 수명 237 에러, 버그, 예외 237 .NET 예외 처리의 역할 238 System.Exception 기본 클래스 240 일반적인 예외 던지기 241 예외 붙잡기 242 CLR 시스템 레벨 예외(System.SystemException) 247 사용자 지정 응용 프로그램 레벨 예외(System.ApplicationException) 249 다중 예외 처리하기 254 Finally 블록 257 마지막 예외 257 응용 프로그램 레벨 예외와 시스템 레벨 예외를 동적으로 식별하기 258 VS .NET을 이용해서 시스템 예외 디버깅하기 259 VS.NET을 이용해서 사용자 지정 예외 처리하기 261 객체 수명 이해하기 263 "new"의 CIL 263 가비지 컬렉션의 기초 265 형식 종료하기(Finalizing) 266 종결 프로세스 269 임시 소멸 메소드 만들기 270 가비지 컬렉션 최적화 273 System.GC 형식 274 요 약 279 Chapter 6 인터페이스와 컬렉션 280 C#을 이용해서 인터페이스 정의하기 280 객체 레벨에서 인터페이스 멤버 호출하기 284 도형 계층 구조로 실습해 보기 286 명시적 인터페이스 구현 289 다형적 에이전트로서의 인터페이스 292 인터페이스 계층구조 만들기 293 VS .NET을 이용해서 인터페이스 구현하기 296 IConvertible 인터페이스 298 사용자 지정 열거형 만들기(IEnumerable과 IEnumerator) 302 복사 가능한 객체 만들기(ICloneable) 306 비교 가능한 객체 만들기(IComparable) 311 System.Collections 네임스페이스 316 사용자 지정 컨테이너 만들기(Cars 형식 개량하기) 325 요 약 329 Chapter 7 콜백, 인터페이스, 델리게이트, 이벤트 330 콜백 인터페이스 330 .NET Delegate 형식 335 System.MulticastDelegate의 멤버들 338 가장 간단한 델리게이트 예제 340 좀 더 복잡한 델리게이트 예제 만들어 보기 343 비동기 델리게이트 352 이벤트 358 요 약 366 Chapter 8 고급 C# 형식 구성 기법 367 C#의 고급 키워드 367 C# 키워드 목록 380 사용자 지정 인덱서 만들기 382 Cars 인덱서 변경해 보기 384 형식 인덱서의 내부 표현 386 VB .NET에서 C# 인덱서 사용하기 387 연산자 오버로딩 388 오버로드된 연산자의 내부 표현 394 오버로드된 연산자를 지원하지 않는 언어에서 오버로드된 연산자 이용하기 396 연산자 오버로딩에 대한 마지막 고찰 398 사용자 지정 형식 변환 399 사용자 지정 변환 루틴 생성하기 399 암시적 변환 루틴 정의하기 404 사용자 지정 변환 루틴의 내부 표현 405 요 약 407 Part 3 .NET 어셈블리를 이용한 프로그래밍 409 Chapter 9 .NET 어셈블리 410 COM 바이너리의 문제점 410 .NET 어셈블리 개요 412 단일 파일 테스트 어셈블리 만들어 보기 420 C# 클라이언트 응용 프로그램 423 Visual Basic .NET 클라이언트 응용 프로그램 424 교차 언어 상속 426 CarLibrary의 매니페스트 살펴보기 430 CarLibrary에 있는 형식들 살펴보기 433 다중 파일 어셈블리 만들기 435 다중 파일 어셈블리 사용하기 438 전용 어셈블리 440 전용 어셈블리 프로빙(기초) 441 전용 어셈블리와 XML 구성 파일 442 전용 어셈블리 프로빙(심화) 445 공유 어셈블리 446 강력한 이름 447 공유 어셈블리 만들기 447 지연 서명 450 공유 어셈블리 설치/제거하기 451 공유 어셈블리 사용하기 452 공유 어셈블리 버전 관리 452 SharedAssembly 2.0.0.0 버전 만들기 454 사용자 지정 버전 정책 지정하기 456 GAC 내부 457 어셈블리와 관련된 기타사항 458 VS .NET 참조 추가 대화 상자에 대하여 465 요 약 466 Chapter 10 프로세스, AppDomain, 컨텍스트, 스레드 468 전통적인 Win32에서의 프로세스와 스레드 468 .NET 플랫폼에서 프로세스 다루기 471 System.AppDomain 형식 479 컨텍스트 485 프로세스, AppDomain, 컨텍스트 요약 491 프로세스/AppDomain/컨텍스트/스레드의 관계 492 델리게이트를 이용한 다중 스레드 프로그래밍 494 System.Threading 네임스페이스 494 부 스레드 만들기 498 좀 더 복잡한 스레딩 예제 502 동시성 다시 보기 506 C#의 "lock" 키워드를 이용한 동기화 509 System.Threading.Interlocked 형식을 이용한 동기화 511 [Synchronization] 어트리뷰트를 이용한 동기화 513 스레드 안전과 .NET 기본 클래스 라이브러리 513 Timer Callback을 이용한 프로그래밍 514 요 약 516 Chapter 11 형식 리플렉션, 늦은 바인딩, 어트리뷰트 기반 프로그래밍 518 형식 메타데이터의 필요성 518 리플렉션 524 System.Type 클래스 524 System.Reflection 네임스페이스 531 전용 어셈블리에 대한 리플렉팅 532 공유 어셈블리에 대한 리플렉팅 537 동적 호출(늦은 바인딩) 538 어트리뷰트 프로그래밍 541 사용자 지정 어트리뷰트 만들기 544 어트리뷰트 용도 제한하기 546 어셈블리 수준 어트리뷰트와 모듈 수준 어트리뷰트 547 런타임에 어트리뷰트 리플렉트하기 549 리플렉션, 늦은 바인딩, 사용자 지정 어트리뷰트 넓게 보기 550 요 약 556 Part 4 .NET 라이브러리 활용하기 559 Chapter 12 객체 직렬화와 .NET Remoting 계층 560 .NET Framework에서의 객체 지속성 561 객체 그래프의 역할 561 직렬화를 위해 객체 구성하기 562 바이너리 포매터를 이용한 직렬화 566 SOAP 포매터를 이용한 직렬화 569 XML 포매터를 이용한 직렬화 570 직렬화 과정 개별화 571 .NET Remoting 정의하기 576 .NET Remoting 네임스페이스 576 .NET Remoting Framework 이해하기 578 종 합 581 .NET Remoting 용어 583 객체 마샬링 선택(MBR과 MBV) 583 MBR/MBV 객체에 대한 마지막 노트 586 MBR 형식의 활성화 선택(WKO와 CAO) 586 .NET Remoting 프로젝트의 기본 배포 569 첫 번째 분산 응용 프로그램 만들기 590 원격 응용 프로그램 테스트하기 594 ChannelServices 형식 595 RemotingConfiguration 형식 596 WKO 형식의 활성화 모드 다시 보기 599 원격 머신에 서버 배포하기 600 TCP 채널 활용하기 601 원격 구성 파일 602 MBV 객체를 이용해서 작업하기 606 클라이언트 활성 객체(CAO) 611 CAO/WKO 싱글톤 객체의 임대 기반 수명 613 서버 측 임대 스폰서와 클라이언트 측 임대 스폰서 620 원격 객체를 호스트하는 다른 방법 621 비동기 Remoting 628 [OneWayAttribute] 형식의 역할 630 마감하며… 631 요 약 631 Chapter 13 더 나은 창 만들기(Windows Forms 소개) 632 세 GUI 네임스페이스에 대한 이야기 632 System.Windows.Forms 네임스페이스 개요 633 Windows Forms 형식을 이용해 작업하기 634 VS .NET Windows Forms 프로젝트 작업 공간 만들기 637 System.Windows.Forms.Application 클래스 641 Form의 구조 646 Component 클래스 647 Control 클래스 648 Control 이벤트 652 키보드 이벤트에 반응하기 657 Control 클래스 다시 보기 659 ScrollableControl 클래스 662 ContainerControl 클래스 663 Form 클래스 664 Windows Form 형식의 수명 666 VS .NET으로 Form 레벨 이벤트 처리하기 669 Windows Forms의 메뉴 만들기 671 메뉴 구조 만들기 673 팝업 메뉴 생성하기 676 메뉴 구조 꾸미기 678 Visual Studio .NET을 이용해서 메뉴 만들기 681 상태 표시줄 682 도구 모음 만들기 688 디자인 타임 환경에서 도구 모음 만들기 692 MDI 응용 프로그램 만들기 693 요 약 697 Chapter 14 더 나은 페인팅 프레임워크(GDI+) 698 GDI+네임스페이스 699 System.Drawing 네임스페이스 700 System.Drawing 유틸리티 형식 702 System.Drawing 형식의 해제에 관하여 706 Paint 세션 707 Graphics 클래스 712 GDI+ 좌표계 713 활성 색 설정하기 718 글꼴 조작하기 721 글꼴 응용 프로그램 만들기 724 FontDialog 클래스 729 System.Drawing.Drawing2D 네임스페이스 731 이미지 그리기 746 끌기, 히트 테스팅, PictureBox 컨트롤 749 .NET 리소스 포맷 758 System.Resources 네임스페이스 759 ResourceWriter 사용하기 763 ResourceManager 사용하기 764 Visual Studio .NET을 이용해 자동적으로 리소스 구성하기 766 요 약 769 Chapter 15 Windows Forms 컨트롤을 이용한 프로그래밍 770 Windows Forms 컨트롤 계층구조 770 Form에 컨트롤 추가하기(IDE를 사용하지 않고) 771 Form에 컨트롤 추가하기(VS .NET으로) 775 TextBox 컨트롤 777 강력한 Button 형식 780 CheckBox 783 RadioButton과 GroupBox 784 ListBox와 ComboBox 789 MonthCalendar 컨트롤 792 DateTime 형식 794 Form의 기본 입력 버튼 설정하기 795 탭 순서 구성하기 796 컨트롤에 도구 설명 추가하기 797 TrackBar 컨트롤 798 Panel 컨트롤 801 UpDown 컨트롤 : DomainUpDown과 NumericUpDown 802 ErrorProvider 805 컨트롤의 앵커로 고정 기능 구성하기 807 컨트롤의 도킹 기능 구성하기 808 사용자 지정 대화 상자 만들기 809 Form의 상속 816 사용자 지정 Windows Forms 컨트롤 만들기 818 사용자 지정 UserControl 만들기 819 이미지 생성하기 820 디자인 타임 GUI 만들기 821 CarControl 구현하기 822 애니메이션 제어하기 825 애칭 표시하기 826 CarControl 형식 테스트하기 826 System.ComponentModel 네임스페이스의 주요 멤버 828 CarControl의 디자인 타임 모양 확장하기 829 요 약 832 Chapter 16 System.IO 네임스페이스 834 System.IO 네임스페이스 834 Diretory, Directoryinfo, File, FileInfo 형식 835 DirectoryInfo 형식을 이용해서 파일 열거하기 839 DirectoryInfo 형식을 이용해서 하위 디렉토리 생성하기 841 Directory 클래스의 정적 멤버들 842 Filelnfo 클래스 843 추상 Stream 클래스 848 FileStream 사용하기 849 StreamWriter와 StreamReader 851 StringWriter 856 StringReader 857 바이너리 데이터를 이용한 작업(BinaryReader와 BinaryWriter) 859 파일과 디렉토리 ?감시하기? 861 비동기 IO에 대하여 863 Windows Forms Car Logger 응용 프로그램 864 새로운 자동차 추가 로직 구현하기 867 요 약 871 Chapter 17 ADO.NET을 이용한 데이터 접근 872 ADO.NET의 필요성 872 두 얼굴의 ADO.NET 873 ADO.NET 데이터 공급자 874 ADO.NET 네임스페이스 880 System.Data의 형식들 881 DataColumn 형식 살펴보기 882 DataRow 형식 살펴보기 888 DataTable 자세히 살펴보기 891 완전한 DataTable 만들기 893 DataView 형식 901 DataSet 904 DataRelation 형식을 이용해서 관계 표현하기 910 XML 기반의 DataSet 읽고 쓰기 914 간단한 테스트 데이터베이스 만들기 917 데이터 공급자 선택하기 917 System.Data.OleDb 네임스페이스의 형식들 918 ADO.NET의 연결 계층 사용하기 919 OleDbDataReader 사용하기 924 OleDbCommand를 이용해서 레코드 삽입하고, 업데이트하고, 삭제하기 928 OleDbCommand를 이용해서 저장 프로시저 실행하기 930 연결이 끊긴 계층과 OleDbDataAdapter 형식 932 SQL 데이터 공급자 사용하기 937 SqlDataAdapter를 이용해서 기존 레코드 업데이트하기 942 CommandBuilder 형식을 이용해서 SQL 명령 자동생성하기 944 완전한 ADO.NET Windows Forms 예제 946 여러 개의 테이블을 갖는 DataSet 채우기(그리고 DataRelation 추가하기) 948 마법사 사용하기! 951 디자인 타임 환경에서 DataSet 사용하기 958 요 약 962 Part 5 웹 응용 프로그램과 XML 웹 서비스 965 Chapter 18 ASP.NET 웹 페이지와 웹 컨트롤 966 HTTP 966 웹 응용 프로그램과 웹 서비스 967 HTML 970 HTML Form 개발 971 클라이언트 측 스크립팅 975 폼 데이터 전송하기(GET과 POST) 978 Active Server Page 만들기 979 ASP의 문제점 982 ASP.NET의 장점 982 ASP.NET 네임스페이스 984 ASP.NET 웹 응용 프로그램 직접 만들기 985 ASP.NET 컴파일 사이클 990 VS .NET으로 ASP.NET 웹 응용 프로그램 만들기 993 BetterAspNetCarApp 웹 응용 프로그램 코딩하기 997 ASP.NET Page의 구조 1000 ASP.NET Page 파생 1001 들어오는 HTTP 요청과 상호작용하기 1002 나가는 HTTP 응답과 상호작용하기 1007 ASP.NET 웹 페이지의 주기 1009 ASP.NET 웹 컨트롤 1013 System.Web.UI.Control 형식의 주요 멤버 1016 Control 기본 클래스 사용하기 : 포함된 컨트롤 열거하기 1017 Control 기본 클래스 즐기기 : 컨트롤을 동적으로 추가하고 제거하기 1020 System.Web.UI.WebControl 형식의 주요 멤버 1021 ASP.NET WebForm 컨트롤 예제 1022 유효성 검사 컨트롤 1037 ASP.NET HTML 컨트롤 1046 웹 서버에서 GDI+ 사용하기 1049 ASP.NET 페이지 디버깅하고 추적하기 1052 요 약 1053 Chapter 19 ASP.NET 웹 응용 프로그램 1054 상태 1054 ASP.NET 상태 관리 기법 1057 ASP.NET 뷰 상태의 역할 1057 Global.asax 파일의 역할 1061 Application과 Session의 차이 1065 응용 프로그램 캐시를 이용해서 작업하기 1070 세션 데이터 관리하기 1076 쿠 키 1080 web.config를 이용해서 ASP.NET 웹 응용 프로그램 구성하기 1084 구성 상속 1091 요 약 1092 Chapter 20 XML 웹 서비스 1093 XML 웹 서비스의 역할 1093 XML 웹 서비스의 구성 요소 1095 .NET 웹 서비스 네임스페이스 1097 System.Web.Services 네임스페이스 1098 XML 웹 서비스 직접 만들기 1099 XML 웹 서비스 테스트하기 1100 Visual Studio .NET을 이용해서 XML 웹 서비스 만들기 1102 System.Web.Services.WebService 기본 클래스 1106 [WebMethod] 어트리뷰트 1106 web.config를 통해 세션 상태 구성하기 1111 [WebService] 어트리뷰트 1111 웹 서비스 설명 언어(WSDL) 1112 WSDL 문서의 기본 포맷 1113 HelloWS WSDL 문서 보기 1117 wsdl.exe 명령줄 유틸리티 1119 XML 웹 서비스 와이어 프로토콜 다시 보기 1121 WSDL을 C# 코드로 변환하기(프록시 생성하기) 1123 프록시 사용하기(동기 호출) 1126 프록시 사용하기(비동기 호출) 1128 하드 코딩된 프록시 로직 사용하지 않기 1129 VS .NET을 이용해서 프록시 생성하기 1130 웹 메소드로부터 형식 배열 노출하기 1131 Windows Forms 클라이언트 1133 사용자 지정 형식 노출하기 1133 사용자 지정 형식 소비하기 1135 CarsSalesInfoWS 프로젝트 업데이트하기 1136 검색 서비스 프로토콜(UDDI) 1138 요 약 1141 찾아보기 1143 |
|
● 저자가 드리는 편지
안녕하세요? 독자 여러분
몇 년 전 조지아의 아틀란타에서 2001 테크에드(TechEd) 컨퍼런스가 개최되는 동안, 거의 불가능한 것처럼 보이기만 했던 이 책의 제1판이 출간되었습니다. 그 이후로 [C#과 .NET 플랫폼]은 8개의 다른 언어로 번역되었고, 2002년 Jolt Award Finalist 후보로 선정되었으며, 2003년 Referenceware Excellence Awards 최고의 프로그래밍 도서 부문을 수상했습니다. 솔직히, 이러한 관심은 '쓸모 없는 책이 되지만 않았으면 좋겠다'던 출간 당시의 소박한 바람을 떠올려 보면, 매우 놀라운 것이었습니다. 이 자리를 빌어 독자 여러분과 비평가 그리고 제1판에 대해 격려와 비판의 말을 아끼지 않은 분들과, 자신의 CLR 사용 경험을 보내준 모든 분들께 감사의 말을 드리고 싶습니다. 제1판을 읽은 분들께 이 책이 상당한 개정과 증보를 거쳐 거듭나게 되었다는 것을 즐거운 마음으로 알려 드립니다. 무엇보다도, 매 장마다 최신의 내용을 추가해 개정하였습니다. 또, 새로운 장을 추가하여 .NET Remoting 계층, CLR의 핵심 부분(컨텍스트, 프로세스 등 여러 가지), 그리고 ASP.NET에 대해 더 깊이 있게 다루었습니다. 그리고 전편과 마찬가지로 쉽고 친근한 표현을 사용해 설명하였습니다. 이 책은 최근의 오브젝트 기반 언어 사용 경험이 있는 개발자들을 대상으로 해서 기획된 책입니다(따라서 서너 개의 장을 할애해 선택구조나 반복구조를 설명하는 기초적인 책은 아닙니다). 이 책의 목표는 C# 프로그래밍 언어와 .NET 플랫폼의 핵심 요소들(어셈블리, Window Forms(윈폼), Web Forms(웹폼) 등)에 대해 탄탄한 기본을 다지도록 하는 것입니다. 이 책에 있는 20개의 장을 다 읽고(또 그 내용을 자기 것으로 만들고) 나면, 이 책에서 얻은 지식을 여러분의 전문 프로그래밍 분야에 적용할 수 있을 뿐만 아니라, .NET 세계를 여러분만의 방식으로 탐사할 준비를 갖추게 될 것입니다. |