서브메뉴

본문

C#과 닷넷 플랫폼
C#과 닷넷 플랫폼
저자 : Andrew Troelsen
출판사 : 사이텍미디어
출판년 : 2004
ISBN : 8955508344

책소개


이 책은 제1판과 유사하지만 거의 모든 페이지가 새로운 내용으로 개정되었다. 또한 제1판에서 다루었던 (.NET 델리게이트와 같은) 일부 주제들은 독립적인 하나의 장으로 옮겨지기도 했다. 물론, 제2판에는 (.NET Remoting을 설명하거나 ASP.NET을 더 깊이 있게 검토하는 것과 같은) 몇 개의 새로운 장이 포함되어 있다.

이 책의 주요 내용

- .NET 플렛폼에 대한 소개
- Common Language Runtime(CLR)에 대한 소개
- The Common Type Specification(CTS)에 대한 소개
- The Common Language Specifications(CLS)에 대한 소개
- 어셈블리
- C# 클래스의 기본
- 배열과 스트링
- C#에서의 객체지향 프로그래밍
- 예외 핸들링
- Garbage collection
- Implementing the ICloneable and IComparable interfaces
- .NET 콜렉션 소개
- XML기반 문서
- .NET 어셈블리에 대한 깊이 있는 지침
- 윈도우즈 폼 튜토리얼
- 윈도우 레지스트리 프로그래밍
- GDI+ 그래픽에 대한 튜토리얼
- 입력과 출력
- COM, COM+,와 .NET과의 상호작용법
- 데이터베이스 프로그래밍에서의 ADO.NET 사용법
- 웹 애플리케이션 개발에서 ASP와 ASP.NET 프로그래밍 방법
- 웹 서비스의 기본(SOAP, WSDL, DISCO 등)

목차


● 차 례

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

QuickMenu