자료유형 | 단행본 |
---|---|
서명/저자사항 | (Professional) Visual Basic.NET/ 프레드 바웰...[외 등저]; 심용재 역. |
개인저자 | Barwell, Fred 심용재 |
발행사항 | 서울: 정보문화사, 2003. |
형태사항 | 1045 p.: 삽화; 24cm. |
원서명 | Professional VB.NET(2nd ed.) |
ISBN | 8956740895 |
일반주기 | 색인수록 |
비통제주제어 | VISUALBASIC |
분류기호 | 005.117 |
언어 | 한국어 |
캠퍼스간대출 소재불명도서 자료배달서비스 인쇄
No. | 등록번호 | 청구기호 | 소장처 | 도서상태 | 반납예정일 | 예약 | 서비스 | 매체정보 |
---|---|---|---|---|---|---|---|---|
1 | M0374606 | 005.117 P964-2ㅅ | 삼성캠퍼스/종합자료실/ | 대출가능 | false|true|true|false |true|true |
|
제1장 Microsoft의 .NET 소개
DNA 프로그래밍 모델 ... 36
프리젠테이션 계층 ... 37
중간 계층 ... 38
데이터 계층 ... 38
DNA 모델과 관련한 문제들 ... 38
COM의 한계 ... 39
DLL HELL ... 39
다른 플랫폼과의 호환성 부재 ....
제1장 Microsoft의 .NET 소개
DNA 프로그래밍 모델 ... 36
프리젠테이션 계층 ... 37
중간 계층 ... 38
데이터 계층 ... 38
DNA 모델과 관련한 문제들 ... 38
COM의 한계 ... 39
DLL HELL ... 39
다른 플랫폼과의 호환성 부재 ... 40
상속 기능 부재 ... 40
DNA 응용 프로그램 개발시 VB6의 한계 ... 40
DNA 인터넷 개발의 한계 ... 41
상이한 프로그래밍 모델 ... 41
자동 상태 관리 기능의 부재 ... 42
취약한 웹 사용자 인터페이스 ... 42
운영체제 추상화의 필요성 ... 43
해결책 - Microsoft .NET ... 43
.NET의 일반적인 목표 ... 44
Microsoft .NET의 구조 ... 45
공용 언어 런타임 ... 46
.NET Framework 클래스 라이브러리 ... 47
사용자 인터페이스와 프로그램 인터페이스 ... 48
.NET의 "메타 언어"로 사용되는 XML ... 49
Microsoft .NET의 목표 달성 방법 ... 49
소프트웨어 개발의 단순화 ... 49
분산도가 높은 시스템 ... 50
개선된 웹 사용자 인터페이스 ... 51
단순해진 배포 ... 51
다양한 언어 지원 ... 51
플랫폼의 확장성 ... 52
향후 이식성 ... 52
COM의 역할 ... 52
DNA의 역할 ... 53
추가적인 장점들 ... 53
Visual Basic이 받은 영향 ... 54
요약 ... 54
제2장 VB.NET와 VS.NET의 소개
Visual Studio .NET ... 56
내 프로필 ... 56
도움말 사용자 지정 ... 57
IDE의 새로운 기능들 ... 57
Windows 응용 프로그램 만들기 ... 57
솔루션 탐색기 ... 58
네임스페이스와 Imports 키워드 ... 59
Windows 응용 프로그램의 게본 네임스페이스 ... 61
탭 vs. MDI 인터페이스 ... 62
새로운 코드 편집기 ... 63
속성 창 ... 65
코드 살펴보기 ... 66
코드에서 설정되는 폼 속성 ... 66
AssemblyInfo.vb 파일 ... 68
어셈블리 특성 ... 68
예제 응용 프로그램의 개선 ... 69
컨트롤 추가하기 ... 70
이벤트 처리기 추가하기 ... 70
코드 변경하기 ... 71
Hello World 예제의 단계별 따라하기 ... 74
빌드 구성 ... 74
응용 프로그램 빌드하기 ... 76
응용 프로그램 실행하기 ... 78
VS.NET의 유용한 기능들 ... 78
작업 목록 ... 78
명령 창 ... 79
서버 탐색기 ... 81
VS.NET에서의 매크로 기록과 사용 ... 82
요약 ... 83
제3장 공용 언어 런타임
.NET 응용 프로그램의 개요 ... 86
어셈블리 ... 86
모듈 ... 87
형식 ... 87
번전 관리와 배포 ... 88
버전 관리 기능의 개선 ... 88
배포의 개선 ... 89
메모리 관리 ... 89
개선된 가비지 수집 ... 90
객체에 대한 메모리 할당 속도 증가 ... 95
가비지 수집기 최적화 ... 95
언어들 간의 통합 ... 98
공용 형식 시스템 ... 98
메타데이터 ... 100
메타데이터 지원의 개선 ... 100
특성 ... 101
리플렉션 API ... 103
IL 디스어셈블러 ... 103
요약 ... 104
제4장 변수와 형식
값 형식과 참조 형식 ... 108
값 형식(구조체) ... 110
기본 형식 ... 110
명시적 변환 ... 118
Option Strict, Option Explicit, Option Compare ... 119
명시적 변환의 수행 ... 121
참조 형식(클래스) ... 123
Object 클래스 ... 123
String 클래스 ... 125
DBNull 클래스 ... 128
배열 ... 129
Collections ... 132
매개변수 전달 ... 134
박싱(Boxing) ... 135
없어진 키워드와 함수 ... 137
VB.NET에서 없어진 VB6 요소들 ... 137
요약 ... 138
제5장 객체 문법 소개
객체 지향 용어 ... 140
객체로 작업하기 ... 145
객체 선언 및 인스턴스 생성 ... 145
객체 참조 ... 148
객체의 참조 해제 ... 149
초기 바인딩 vs. 후기 바인딩 ... 149
클래스 작성 ... 153
기본 클래스 작성 ... 153
생성자 메서드 ... 174
객체의 소멸 및 정리 작업 ... 176
고급 개념 ... 180
고급 메서드 ... 180
클래스 vs. 구성 요소 ... 196
요약 ... 200
제6장 상속과 인터페이스
상속 ... 204
상속의 구현 ... 206
다중 인터페이스 ... 261
객체 인터페이스 ... 262
부가 인터페이스 ... 263
요약 ... 271
제7장 객체 및 구성 요소의 적용
추상화 ... 273
캡슐화 ... 276
다형성 ... 279
메서드 서명 ... 279
다형성의 구현 ... 280
상속 ... 292
상속을 사용하는 경우 ... 292
상속과 다중 인터페이스 ... 296
상속 단계의 깊이 ... 303
설계상 결함이 있는 기본 클래스의 문제 ... 304
요약 ... 308
제8장 네임스페이스
네임스페이스의 정의 ... 310
네임스페이스와 참조 ... 313
공용 네임스페이스 ... 315
네임스페이스 가져오기와 별칭 부여하기 ... 318
네임스페이스 가져오기 ... 318
네임스페이스에 별칭 부여하기 ... 320
네임스페이스 만들기 ... 320
요약 ... 322
제9장 오류 처리
CLR 예외 처리기 ... 323
오류 처리의 표준화 ... 324
On Error 문 ... 325
예외 처리기 ... 326
Try…Catch…Finally ... 327
Exception 클래스의 속성과 메서드 ... 331
관리되는 코드와 관리되지 않는 코드의 오류 처리 ... 338
오류 로깅 ... 340
이벤트 로그 ... 341
추적 파일에 기록하기 ... 345
디버깅과 성능 측정 ... 347
Trace 클래스를 통한 성능 측정 ... 348
요약 ... 352
제10장 VB.NET에서 XML 사용하기
XML 소개 ... 354
XML 순차화 ... 356
Source Code Style 애트리뷰트 ... 361
System.Xml 문서 지원 ... 363
XML Stream-Style 파서 ... 363
XML 스트림 기록하기 ... 364
XML 스트림 읽기 ... 367
MemoryStream 객체 사용하기 ... 374
문서 객체 모델(DOM) ... 378
XSLT 변환 ... 385
XML 표준들 간의 XSLT 변환 ... 389
System.Xml.Xsl의 다른 클래스와 인터페이스 ... 392
ADO.NET ... 392
ADO.NET와 SQL서버 XML 기능 ... 394
형식화된 DataSet 객체 ... 397
형식화된 DataSet 생성하기 ... 397
요약 ... 402
제11장 ADO.NET을 통한 데이터 액세스
ADO.NET이 필요한 이유 ... 406
ADO.NET아키텍처 ... 407
ADO.NET 구성 요소 ... 407
ADO와 ADO.NET의 차이점 ... 408
.NET 데이터 공급자 ... 412
Connection 객체 ... 412
Command 객체 ... 413
DataReader 객체 ... 414
DataAdapter 객체 ... 416
SQL Server .NET 데이터 공급자 ... 418
OLE DB .NET 데이터 공급자 ... 419
DataSet 구성 요소 ... 419
DataTableCollection ... 420
DataRelationCollection ... 420
ExtendedProperties ... 420
DataSet 객체 작성 및 사용 ... 421
ADO.NET의 DataTable 객체 ... 426
ADO.NET에서 연결 풀링 ... 426
저장 프로시저와 ADO.NET을 함께 사용하기 ... 427
저장 프로시저 만들기 ... 427
저장 프로시저 호출하기 ... 430
데이터 액세스 구성 요소 만들기 ... 432
생성자 ... 434
속성 ... 435
저장 프로시저 XML 구조 ... 436
매서드 ... 436
DataGrid에 DataSet 객체 바인딩하기 ... 448
요약 ... 451
제12장 Windows Form
System.Windows.Forms 네임스페이스 ... 453
클래스로서의 폼 ... 455
.NET에서 폼의 정의 ... 456
디자인시의 폼 ... 456
디자인시의 모눈 ... 457
시작 폼 설정하기 ... 458
폼 테두리 ... 458
최상위 폼 설정 ... 460
시작 위치 ... 460
폼 투명도(transparency) ... 460
가시적 상속 ... 461
MDI 폼 ... 461
폼의 한계 크기 설정 ... 463
스크롤이 가능한 폼 ... 463
런타임시의 폼 ... 464
컨트롤 ... 465
컨트롤의 탭 이동 순서 ... 465
컨트롤 배열 ... 466
컨트롤의 자동 크기 조정과 자동 이동 ... 468
데이터 내용의 검증 및 ErrorProvider ... 471
메뉴 ... 474
Toolbar ... 479
공용 대화상자 컨트롤 ... 480
드래그 앤 드롭 ... 483
표준 Windows.Forms 컨트롤의 요약 ... 485
VB.NET에서 사라진 컨트롤 ... 490
ActiveX 컨트롤의 사용 ... 491
편리한 프로그래밍 팁들 ... 491
요약 ... 492
제13장 Windows 컨트롤 생성하기
컨트롤의 소스들 ... 494
내장 컨트롤 ... 494
기존 ActiveX 컨트롤 ... 494
써드 파티 컨트롤 ... 494
사용자 지정 컨트롤 ... 495
.NET에서 사용자 지정 컨트롤 작성 ... 495
다른 컨트롤에서 상속 ... 495
합성 컨트롤 작성 ... 496
처음부터 직접 컨트롤 작성 ... 496
컨트롤 작성을 위한 기본 클래스 ... 497
Control 클래스 ... 497
UserControl 클래스 ... 499
다른 컨트롤에서 상속받기 ... 500
사용자 지정 컨트롤의 작성 절차 개요 ... 501
수치 전용 Textbox 만들기 ... 501
사용자 지정 컨트롤의 로직 변경시의 주의 사항 ... 504
사용자 지정 컨트롤의 디버깅 ... 504
사용자 지정 컨트롤에 로직 추가하기 ... 504
사용자 지정 컨트롤의 속성 생성 ... 505
상속된 컨트롤의 사용자 지정 이벤트 정의 ... 508
선택할 수 있는 항목의 개수에 제한을 두는 검사 리스트 ... 508
합성 UserControl ... 513
합성 UserControl 작성 ... 514
크기 변경의 작동 원리 ... 515
컨트롤의 최소 크기 설정 ... 516
서브 컨트롤의 속성 나타내기 ... 516
합성 UserControl 작성 예제 ... 516
컨트롤을 처음부터 작성하기 ... 520
GDI+를 사용해서 사용자 지정 컨트롤 나타내기 ... 520
TextRotator 컨트롤의 완벽한 구현 ... 526
TreeView 컨트롤 확장하기 ... 526
파일과 디렉토리 탐색하기 ... 527
프로그램의 실행 ... 531
요약 ... 531
제14장 Web Form
Web Form 사용의 실제 ... 533
환경 설정 ... 534
HelloWorld Web Form ... 534
Web Form 자세히 보기 ... 539
화면 표시용 템플릿 ... 540
코드 구성 요소 ... 540
좀더 복잡한 예제 ... 541
ASP.NET Web Form의 처리 흐름 ... 544
Web Form에서 이용할 수 있는 컨트롤 ... 547
서버측 컨트롤 개념 ... 548
HTML 서버 컨트롤 ... 550
ASP.NET 서버 컨트롤 ... 551
유효성 검사 컨트롤 ... 553
사용자 컨트롤 ... 555
Web Form의 이벤트 ... 555
Web Form의 생명 주기 ... 556
이벤트의 범주 ... 557
Web Form vs. ASP ... 558
Web Form 사이의 컨트롤 전송 ... 559
마지막 예제 ... 560
요약 ... 574
제15장 웹 컨트롤 작성하기
사용자 자신의 컨트롤을 만들어야 하는 이유 ... 579
사용자 자신의 컨트롤을 작성하는 경우 ... 576
사용자 정의 웹 컨트롤의 종류 ... 577
웹 사용자 컨트롤 ... 577
웹 사용자 지정 컨트롤 ... 578
합성 컨트롤 ... 579
템플릿 컨트롤 ... 580
사용자 정의 웹 컨트롤을 사용해야 하는 경우 ... 582
웹 사용자 컨트롤 만들기 ... 583
웹 사용자 컨트롤을 프로젝트에 추가하기 ... 591
웹 사용자 컨트롤에서 코드 재사용하기 ... 593
Control 지시문 ... 594
웹 사용자 컨트롤과 Register 지시문 ... 594
웹 사용자 컨트롤의 내부에 접근하기 ... 595
웹 사용자 컨트롤 끄집어내기 ... 607
그밖의 웹 사용자 컨트롤의 특징들 ... 609
웹 사용자 지정 컨트롤 작성하기 ... 610
시험대(test bed) 프로젝트 설정하기 ... 610
웹 사용자 지정 컨트롤 및 웹 사용자 정의 컨트롤 템플릿 ... 612
Render 메서드 ... 614
사용자 지정 컨트롤 개발 ... 617
요약 ... 626
제16장 데이터 바인딩
데이터 나타내기 ... 627
변경 사항의 저장 ... 630
Update 문의 프로파일링 ... 633
마스터/디테일 데이터 바인딩 ... 636
단일 DataGrid 내부의 다중 관계 테이블 ... 636
데이터 보기의 개선 ... 639
폼 ... 643
데이터 탐색 ... 646
변경 사항 저장 ... 650
데이터 바인딩이 가능한 데이터 ... 654
항목들의 리스트 ... 654
객체의 속성 ... 655
요약 ... 657
제17장 기존의 COM 및 인터페이스 이용하기
고전적 COM ... 660
COM 및 .NET의 실제 ... 661
레거시 구성 요소 ... 662
.NET 응용 프로그램 ... 664
응용 프로그램 실행 ... 667
TlbImp 직접 사용하기 ... 667
후기 바인딩 ... 668
ActiveX 컨트롤 ... 674
레거시 ActiveX 컨트롤 ... 674
.NET 응용 프로그램 ... 677
응용 프로그램 실행하기 ... 678
.NET 구성 요소를 COM에서 사용하기 ... 679
.NET 구성 요소 ... 680
RegAsm ... 681
TlbExp ... 684
요약 ... 684
제18장 구성 요소 서비스
트랜잭션 ... 686
ACID 테스트 ... 686
트랜잭션 구성 요소 ... 688
트랜잭션 : 예제 ... 689
트랜잭션의 다른 측면 ... 704
수동 트랜잭션 ... 704
적시 활성화 ... 704
객체 풀링 ... 705
잠시 멈추기 ... 705
큐 구성 요소 ... 706
큐 구성 요소 예제 ... 707
큐 구성 요소를 사용한 트랜잭션 ... 713
요약 ... 714
제19장 스레딩
스레드의 정의 ... 715
프로세스 vs. 스레드 ... 716
스레드를 사용하는 경우 ... 720
스레딩 예제 ... 722
ThreadWorker 작성하기 ... 722
SpinUp 호출 ... 724
동기화 ... 725
블로킹, 대기 상태, 신호 ... 726
동기화 실행 ... 730
데드락 ... 747
스레드 풀링(pooling) ... 747
Worker 객체 ... 749
Worker 객체 작성하기 ... 752
스레드 풀을 사용한 ManualResetEvent.WaitOne 시나리오의 개선 ... 759
다른 예제 ... 759
요약 ... 765
제20장 리모팅
리모팅의 개요 ... 768
싱클턴 vs. 단일 호출 ... 771
클라이언트 활성 객체 ... 772
간단한 클라이언트/서버 예제 ... 772
서버 만들기 ... 772
리모팅에 객체 등록하기 ... 775
클라이언트 만들기 ... 780
참조에 의한 전달 및 값에 의한 전달 ... 783
Serializable 특성 ... 784
복잡한 순차화 ... 788
CallContext 사용하기 ... 791
SecurityToken 만들기 ... 792
클라이언트 만들기 ... 793
서버에 PingSecurityToken 추가하기 ... 796
메타데이터에 포함되어야 하는 것들 ... 797
요약 ... 799
제21장 Windows 서비스
Windows 서비스 예제 ... 801
Windows 서비스의 특징 ... 802
Windows 서비스와 상호작용하기 ... 803
Windows 서비스 생성 ... 804
Windows 서비스 작성을 위한 .NET Framework 클래스 ... 804
다른 종류의 Windows 서비스 ... 808
VB.NET을 사용하여 Windows 서비스 작성하기 ... 808
Counter Monitor 서비스 작성 ... 810
서비스 설치 ... 811
서비스 시작 ... 812
서비스 제거 ... 813
성능 카운터 모니터하기 ... 814
성능 카운터 작성 ... 815
카운터와 서비스의 연동 ... 815
성능 카운터 값 변경 ... 816
서비스와의 통신 ... 817
ServiceController 클래스 ... 818
ServiceController를 예제에 통합하기 ... 819
ServiceController에 대한 상세 사항 ... 821
사용자 지정 명령 ... 821
서비스에 문자열 전달 ... 823
파일 감시자 작성하기 ... 824
이벤트 로그를 사용한 이벤트 기록 ... 824
FileSystemWatcher 작성 ... 825
서비스 디버깅 ... 829
서비스 디버깅 ... 830
요약 ... 832
제22장 웹 서비스
웹 서비스 소개 ... 833
웹 서비스의 실체 ... 834
이전의 아키텍처 설계 ... 835
네트워크 관점 ... 835
응용 프로그램 개발 ... 835
웹으로 두 가지를 결합하기 ... 835
웹 서비스의 기초 ... 836
문제점 ... 838
다른 기술들 ... 839
아직 알아보지 않은 것들 ... 840
웹 서비스 구축하기 ... 845
웹 서비스 개발에 Visual Basic IDE 사용하기 ... 847
VB.NET과 System.Web.Services 네임스페이스 ... 852
System.Web.Services 네임스페이스 ... 852
System.Web.Services.Description 네임스페이스 ... 854
System.Web.Services.Discovery 네임스페이스 ... 855
System.Web.Services.Protocols 네임스페이스 ... 855
웹 서비스 아키텍처 ... 856
웹 서비스가 필요한 이유 ... 856
다른 것들과의 호환성 ... 857
웹 서비스 프록시 ... 857
상태 문제 ... 858
모델로 DNS 사용 ... 858
웹 서비스에서의 보안 ... 862
SSL : Secure Sockets Layer ... 863
디렉토리 수준 보완 ... 863
협업하기 ... 865
다른 유형의 보안 ... 865
단점 ... 865
보안 ... 865
상태 ... 866
트랜잭션 ... 866
속도와 연결성 ... 866
미래의 발전 방향 ... 866
요약 ... 867
제23장 VB.NET과 인터넷
인터넷 리소스 다운로드 ... 869
소켓 ... 873
응용 프로그램 작성하기 ... 874
Conversation 창 생성하기 ... 877
메시지 보내기 ... 885
응용 프로그램 끝내기 ... 891
응용 프로그램에서 Internet Explorer 사용하기 ... 896
Internet Explorer 인터롭(interop) 디자인 패턴 ... 896
요약 ... 904
제24장 .NET Framework의 보완
보안의 개념과 정의 ... 906
System.Security.Permissions 네임스페이스에서의 권한 ... 908
코드 액세스 권한 ... 910
역할 기반 권한 ... 912
ID 권한 ... 914
코드 액세스 권한 권리 ... 915
보안 정책 관리 ... 920
보안 도구 ... 933
암호화의 기초 ... 934
해시 알고리즘 ... 935
요약 ... 959
제25장 어셈블리 및 배포
어셈블리 ... 962
매니페스트 ... 963
ID 섹션 ... 964
참조 어셈블리 ... 966
어셈블리 및 배포 ... 968
응용 프로그램 전용 어셈블리 ... 968
공유 어셈블리 ... 969
버전 관리 문제 ... 971
응용 프로그램 격리 ... 972
동시 실행(side-by-side execution) ... 973
자기 기술 ... 973
버전 정책 ... 974
구성 파일 ... 975
응용 프로그램 배포 ... 979
DLL HELL ... 980
XCOPY 배포 ... 981
.NET 이전의 배포 옵션들 ... 982
VS.NET에서의 응용 프로그램 배포 ... 984
VS.NET 배포 프로젝트 ... 984
프로젝트 템플릿 ... 984
배포 프로젝트 생성 ... 987
연습 ... 987
배포 프로젝트 수정 ... 999
프로젝트 속성 ... 999
파일 시스템 편집기 ... 1004
레지스트리 편집기 ... 1008
파일 형식 편집기 ... 1011
사용자 인터페이스 편집기 ... 1013
사용자 지정 작업 편집기 ... 1016
시작 조건 편집기 ... 1018
빌드하기 ... 1021
요약 ... 1022
부록A Visual Basic 호환 라이브러리 사용하기
호환 라이브러리의 정체 ... 1023
변환 도구가 호환 라이브러리를 사용하는 경우 ... 1023
프로젝트에서 호환 라이브러리를 사용하는 경우 ... 1025
호환 라이브러리 참조하기 ... 1025
호환 라이브러리 예제 ... 1026
호환 라이브러리 참조 목록 ... 1030
선언 문법 변경 ... 1031
메서드에 의해 대체된 요소들 ... 1031
데이터 형식 변경 ... 1032
불 연산자 변경 ... 1032
클래스와 인터페이스의 변경 ... 1032
찾아보기 ... 1037
제1장 Microsoft의 .NET 소개
DNA 프로그래밍 모델 ... 36
프리젠테이션 계층 ... 37
중간 계층 ... 38
데이터 계층 ... 38
DNA 모델과 관련한 문제들 ... 38
COM의 한계 ... 39
DLL HELL ... 39
다른 플랫폼과의 호환성 부재 ... 40
상속 기능 부재 ... 40
DNA 응용 프로그램 개발시 VB6의 한계 ... 40
DNA 인터넷 개발의 한계 ... 41
상이한 프로그래밍 모델 ... 41
자동 상태 관리 기능의 부재 ... 42
취약한 웹 사용자 인터페이스 ... 42
운영체제 추상화의 필요성 ... 43
해결책 - Microsoft .NET ... 43
.NET의 일반적인 목표 ... 44
Microsoft .NET의 구조 ... 45
공용 언어 런타임 ... 46
.NET Framework 클래스 라이브러리 ... 47
사용자 인터페이스와 프로그램 인터페이스 ... 48
.NET의 "메타 언어"로 사용되는 XML ... 49
Microsoft .NET의 목표 달성 방법 ... 49
소프트웨어 개발의 단순화 ... 49
분산도가 높은 시스템 ... 50
개선된 웹 사용자 인터페이스 ... 51
단순해진 배포 ... 51
다양한 언어 지원 ... 51
플랫폼의 확장성 ... 52
향후 이식성 ... 52
COM의 역할 ... 52
DNA의 역할 ... 53
추가적인 장점들 ... 53
Visual Basic이 받은 영향 ... 54
요약 ... 54
제2장 VB.NET와 VS.NET의 소개
Visual Studio .NET ... 56
내 프로필 ... 56
도움말 사용자 지정 ... 57
IDE의 새로운 기능들 ... 57
Windows 응용 프로그램 만들기 ... 57
솔루션 탐색기 ... 58
네임스페이스와 Imports 키워드 ... 59
Windows 응용 프로그램의 게본 네임스페이스 ... 61
탭 vs. MDI 인터페이스 ... 62
새로운 코드 편집기 ... 63
속성 창 ... 65
코드 살펴보기 ... 66
코드에서 설정되는 폼 속성 ... 66
AssemblyInfo.vb 파일 ... 68
어셈블리 특성 ... 68
예제 응용 프로그램의 개선 ... 69
컨트롤 추가하기 ... 70
이벤트 처리기 추가하기 ... 70
코드 변경하기 ... 71
Hello World 예제의 단계별 따라하기 ... 74
빌드 구성 ... 74
응용 프로그램 빌드하기 ... 76
응용 프로그램 실행하기 ... 78
VS.NET의 유용한 기능들 ... 78
작업 목록 ... 78
명령 창 ... 79
서버 탐색기 ... 81
VS.NET에서의 매크로 기록과 사용 ... 82
요약 ... 83
제3장 공용 언어 런타임
.NET 응용 프로그램의 개요 ... 86
어셈블리 ... 86
모듈 ... 87
형식 ... 87
번전 관리와 배포 ... 88
버전 관리 기능의 개선 ... 88
배포의 개선 ... 89
메모리 관리 ... 89
개선된 가비지 수집 ... 90
객체에 대한 메모리 할당 속도 증가 ... 95
가비지 수집기 최적화 ... 95
언어들 간의 통합 ... 98
공용 형식 시스템 ... 98
메타데이터 ... 100
메타데이터 지원의 개선 ... 100
특성 ... 101
리플렉션 API ... 103
IL 디스어셈블러 ... 103
요약 ... 104
제4장 변수와 형식
값 형식과 참조 형식 ... 108
값 형식(구조체) ... 110
기본 형식 ... 110
명시적 변환 ... 118
Option Strict, Option Explicit, Option Compare ... 119
명시적 변환의 수행 ... 121
참조 형식(클래스) ... 123
Object 클래스 ... 123
String 클래스 ... 125
DBNull 클래스 ... 128
배열 ... 129
Collections ... 132
매개변수 전달 ... 134
박싱(Boxing) ... 135
없어진 키워드와 함수 ... 137
VB.NET에서 없어진 VB6 요소들 ... 137
요약 ... 138
제5장 객체 문법 소개
객체 지향 용어 ... 140
객체로 작업하기 ... 145
객체 선언 및 인스턴스 생성 ... 145
객체 참조 ... 148
객체의 참조 해제 ... 149
초기 바인딩 vs. 후기 바인딩 ... 149
클래스 작성 ... 153
기본 클래스 작성 ... 153
생성자 메서드 ... 174
객체의 소멸 및 정리 작업 ... 176
고급 개념 ... 180
고급 메서드 ... 180
클래스 vs. 구성 요소 ... 196
요약 ... 200
제6장 상속과 인터페이스
상속 ... 204
상속의 구현 ... 206
다중 인터페이스 ... 261
객체 인터페이스 ... 262
부가 인터페이스 ... 263
요약 ... 271
제7장 객체 및 구성 요소의 적용
추상화 ... 273
캡슐화 ... 276
다형성 ... 279
메서드 서명 ... 279
다형성의 구현 ... 280
상속 ... 292
상속을 사용하는 경우 ... 292
상속과 다중 인터페이스 ... 296
상속 단계의 깊이 ... 303
설계상 결함이 있는 기본 클래스의 문제 ... 304
요약 ... 308
제8장 네임스페이스
네임스페이스의 정의 ... 310
네임스페이스와 참조 ... 313
공용 네임스페이스 ... 315
네임스페이스 가져오기와 별칭 부여하기 ... 318
네임스페이스 가져오기 ... 318
네임스페이스에 별칭 부여하기 ... 320
네임스페이스 만들기 ... 320
요약 ... 322
제9장 오류 처리
CLR 예외 처리기 ... 323
오류 처리의 표준화 ... 324
On Error 문 ... 325
예외 처리기 ... 326
Try…Catch…Finally ... 327
Exception 클래스의 속성과 메서드 ... 331
관리되는 코드와 관리되지 않는 코드의 오류 처리 ... 338
오류 로깅 ... 340
이벤트 로그 ... 341
추적 파일에 기록하기 ... 345
디버깅과 성능 측정 ... 347
Trace 클래스를 통한 성능 측정 ... 348
요약 ... 352
제10장 VB.NET에서 XML 사용하기
XML 소개 ... 354
XML 순차화 ... 356
Source Code Style 애트리뷰트 ... 361
System.Xml 문서 지원 ... 363
XML Stream-Style 파서 ... 363
XML 스트림 기록하기 ... 364
XML 스트림 읽기 ... 367
MemoryStream 객체 사용하기 ... 374
문서 객체 모델(DOM) ... 378
XSLT 변환 ... 385
XML 표준들 간의 XSLT 변환 ... 389
System.Xml.Xsl의 다른 클래스와 인터페이스 ... 392
ADO.NET ... 392
ADO.NET와 SQL서버 XML 기능 ... 394
형식화된 DataSet 객체 ... 397
형식화된 DataSet 생성하기 ... 397
요약 ... 402
제11장 ADO.NET을 통한 데이터 액세스
ADO.NET이 필요한 이유 ... 406
ADO.NET아키텍처 ... 407
ADO.NET 구성 요소 ... 407
ADO와 ADO.NET의 차이점 ... 408
.NET 데이터 공급자 ... 412
Connection 객체 ... 412
Command 객체 ... 413
DataReader 객체 ... 414
DataAdapter 객체 ... 416
SQL Server .NET 데이터 공급자 ... 418
OLE DB .NET 데이터 공급자 ... 419
DataSet 구성 요소 ... 419
DataTableCollection ... 420
DataRelationCollection ... 420
ExtendedProperties ... 420
DataSet 객체 작성 및 사용 ... 421
ADO.NET의 DataTable 객체 ... 426
ADO.NET에서 연결 풀링 ... 426
저장 프로시저와 ADO.NET을 함께 사용하기 ... 427
저장 프로시저 만들기 ... 427
저장 프로시저 호출하기 ... 430
데이터 액세스 구성 요소 만들기 ... 432
생성자 ... 434
속성 ... 435
저장 프로시저 XML 구조 ... 436
매서드 ... 436
DataGrid에 DataSet 객체 바인딩하기 ... 448
요약 ... 451
제12장 Windows Form
System.Windows.Forms 네임스페이스 ... 453
클래스로서의 폼 ... 455
.NET에서 폼의 정의 ... 456
디자인시의 폼 ... 456
디자인시의 모눈 ... 457
시작 폼 설정하기 ... 458
폼 테두리 ... 458
최상위 폼 설정 ... 460
시작 위치 ... 460
폼 투명도(transparency) ... 460
가시적 상속 ... 461
MDI 폼 ... 461
폼의 한계 크기 설정 ... 463
스크롤이 가능한 폼 ... 463
런타임시의 폼 ... 464
컨트롤 ... 465
컨트롤의 탭 이동 순서 ... 465
컨트롤 배열 ... 466
컨트롤의 자동 크기 조정과 자동 이동 ... 468
데이터 내용의 검증 및 ErrorProvider ... 471
메뉴 ... 474
Toolbar ... 479
공용 대화상자 컨트롤 ... 480
드래그 앤 드롭 ... 483
표준 Windows.Forms 컨트롤의 요약 ... 485
VB.NET에서 사라진 컨트롤 ... 490
ActiveX 컨트롤의 사용 ... 491
편리한 프로그래밍 팁들 ... 491
요약 ... 492
제13장 Windows 컨트롤 생성하기
컨트롤의 소스들 ... 494
내장 컨트롤 ... 494
기존 ActiveX 컨트롤 ... 494
써드 파티 컨트롤 ... 494
사용자 지정 컨트롤 ... 495
.NET에서 사용자 지정 컨트롤 작성 ... 495
다른 컨트롤에서 상속 ... 495
합성 컨트롤 작성 ... 496
처음부터 직접 컨트롤 작성 ... 496
컨트롤 작성을 위한 기본 클래스 ... 497
Control 클래스 ... 497
UserControl 클래스 ... 499
다른 컨트롤에서 상속받기 ... 500
사용자 지정 컨트롤의 작성 절차 개요 ... 501
수치 전용 Textbox 만들기 ... 501
사용자 지정 컨트롤의 로직 변경시의 주의 사항 ... 504
사용자 지정 컨트롤의 디버깅 ... 504
사용자 지정 컨트롤에 로직 추가하기 ... 504
사용자 지정 컨트롤의 속성 생성 ... 505
상속된 컨트롤의 사용자 지정 이벤트 정의 ... 508
선택할 수 있는 항목의 개수에 제한을 두는 검사 리스트 ... 508
합성 UserControl ... 513
합성 UserControl 작성 ... 514
크기 변경의 작동 원리 ... 515
컨트롤의 최소 크기 설정 ... 516
서브 컨트롤의 속성 나타내기 ... 516
합성 UserControl 작성 예제 ... 516
컨트롤을 처음부터 작성하기 ... 520
GDI+를 사용해서 사용자 지정 컨트롤 나타내기 ... 520
TextRotator 컨트롤의 완벽한 구현 ... 526
TreeView 컨트롤 확장하기 ... 526
파일과 디렉토리 탐색하기 ... 527
프로그램의 실행 ... 531
요약 ... 531
제14장 Web Form
Web Form 사용의 실제 ... 533
환경 설정 ... 534
HelloWorld Web Form ... 534
Web Form 자세히 보기 ... 539
화면 표시용 템플릿 ... 540
코드 구성 요소 ... 540
좀더 복잡한 예제 ... 541
ASP.NET Web Form의 처리 흐름 ... 544
Web Form에서 이용할 수 있는 컨트롤 ... 547
서버측 컨트롤 개념 ... 548
HTML 서버 컨트롤 ... 550
ASP.NET 서버 컨트롤 ... 551
유효성 검사 컨트롤 ... 553
사용자 컨트롤 ... 555
Web Form의 이벤트 ... 555
Web Form의 생명 주기 ... 556
이벤트의 범주 ... 557
Web Form vs. ASP ... 558
Web Form 사이의 컨트롤 전송 ... 559
마지막 예제 ... 560
요약 ... 574
제15장 웹 컨트롤 작성하기
사용자 자신의 컨트롤을 만들어야 하는 이유 ... 579
사용자 자신의 컨트롤을 작성하는 경우 ... 576
사용자 정의 웹 컨트롤의 종류 ... 577
웹 사용자 컨트롤 ... 577
웹 사용자 지정 컨트롤 ... 578
합성 컨트롤 ... 579
템플릿 컨트롤 ... 580
사용자 정의 웹 컨트롤을 사용해야 하는 경우 ... 582
웹 사용자 컨트롤 만들기 ... 583
웹 사용자 컨트롤을 프로젝트에 추가하기 ... 591
웹 사용자 컨트롤에서 코드 재사용하기 ... 593
Control 지시문 ... 594
웹 사용자 컨트롤과 Register 지시문 ... 594
웹 사용자 컨트롤의 내부에 접근하기 ... 595
웹 사용자 컨트롤 끄집어내기 ... 607
그밖의 웹 사용자 컨트롤의 특징들 ... 609
웹 사용자 지정 컨트롤 작성하기 ... 610
시험대(test bed) 프로젝트 설정하기 ... 610
웹 사용자 지정 컨트롤 및 웹 사용자 정의 컨트롤 템플릿 ... 612
Render 메서드 ... 614
사용자 지정 컨트롤 개발 ... 617
요약 ... 626
제16장 데이터 바인딩
데이터 나타내기 ... 627
변경 사항의 저장 ... 630
Update 문의 프로파일링 ... 633
마스터/디테일 데이터 바인딩 ... 636
단일 DataGrid 내부의 다중 관계 테이블 ... 636
데이터 보기의 개선 ... 639
폼 ... 643
데이터 탐색 ... 646
변경 사항 저장 ... 650
데이터 바인딩이 가능한 데이터 ... 654
항목들의 리스트 ... 654
객체의 속성 ... 655
요약 ... 657
제17장 기존의 COM 및 인터페이스 이용하기
고전적 COM ... 660
COM 및 .NET의 실제 ... 661
레거시 구성 요소 ... 662
.NET 응용 프로그램 ... 664
응용 프로그램 실행 ... 667
TlbImp 직접 사용하기 ... 667
후기 바인딩 ... 668
ActiveX 컨트롤 ... 674
레거시 ActiveX 컨트롤 ... 674
.NET 응용 프로그램 ... 677
응용 프로그램 실행하기 ... 678
.NET 구성 요소를 COM에서 사용하기 ... 679
.NET 구성 요소 ... 680
RegAsm ... 681
TlbExp ... 684
요약 ... 684
제18장 구성 요소 서비스
트랜잭션 ... 686
ACID 테스트 ... 686
트랜잭션 구성 요소 ... 688
트랜잭션 : 예제 ... 689
트랜잭션의 다른 측면 ... 704
수동 트랜잭션 ... 704
적시 활성화 ... 704
객체 풀링 ... 705
잠시 멈추기 ... 705
큐 구성 요소 ... 706
큐 구성 요소 예제 ... 707
큐 구성 요소를 사용한 트랜잭션 ... 713
요약 ... 714
제19장 스레딩
스레드의 정의 ... 715
프로세스 vs. 스레드 ... 716
스레드를 사용하는 경우 ... 720
스레딩 예제 ... 722
ThreadWorker 작성하기 ... 722
SpinUp 호출 ... 724
동기화 ... 725
블로킹, 대기 상태, 신호 ... 726
동기화 실행 ... 730
데드락 ... 747
스레드 풀링(pooling) ... 747
Worker 객체 ... 749
Worker 객체 작성하기 ... 752
스레드 풀을 사용한 ManualResetEvent.WaitOne 시나리오의 개선 ... 759
다른 예제 ... 759
요약 ... 765
제20장 리모팅
리모팅의 개요 ... 768
싱클턴 vs. 단일 호출 ... 771
클라이언트 활성 객체 ... 772
간단한 클라이언트/서버 예제 ... 772
서버 만들기 ... 772
리모팅에 객체 등록하기 ... 775
클라이언트 만들기 ... 780
참조에 의한 전달 및 값에 의한 전달 ... 783
Serializable 특성 ... 784
복잡한 순차화 ... 788
CallContext 사용하기 ... 791
SecurityToken 만들기 ... 792
클라이언트 만들기 ... 793
서버에 PingSecurityToken 추가하기 ... 796
메타데이터에 포함되어야 하는 것들 ... 797
요약 ... 799
제21장 Windows 서비스
Windows 서비스 예제 ... 801
Windows 서비스의 특징 ... 802
Windows 서비스와 상호작용하기 ... 803
Windows 서비스 생성 ... 804
Windows 서비스 작성을 위한 .NET Framework 클래스 ... 804
다른 종류의 Windows 서비스 ... 808
VB.NET을 사용하여 Windows 서비스 작성하기 ... 808
Counter Monitor 서비스 작성 ... 810
서비스 설치 ... 811
서비스 시작 ... 812
서비스 제거 ... 813
성능 카운터 모니터하기 ... 814
성능 카운터 작성 ... 815
카운터와 서비스의 연동 ... 815
성능 카운터 값 변경 ... 816
서비스와의 통신 ... 817
ServiceController 클래스 ... 818
ServiceController를 예제에 통합하기 ... 819
ServiceController에 대한 상세 사항 ... 821
사용자 지정 명령 ... 821
서비스에 문자열 전달 ... 823
파일 감시자 작성하기 ... 824
이벤트 로그를 사용한 이벤트 기록 ... 824
FileSystemWatcher 작성 ... 825
서비스 디버깅 ... 829
서비스 디버깅 ... 830
요약 ... 832
제22장 웹 서비스
웹 서비스 소개 ... 833
웹 서비스의 실체 ... 834
이전의 아키텍처 설계 ... 835
네트워크 관점 ... 835
응용 프로그램 개발 ... 835
웹으로 두 가지를 결합하기 ... 835
웹 서비스의 기초 ... 836
문제점 ... 838
다른 기술들 ... 839
아직 알아보지 않은 것들 ... 840
웹 서비스 구축하기 ... 845
웹 서비스 개발에 Visual Basic IDE 사용하기 ... 847
VB.NET과 System.Web.Services 네임스페이스 ... 852
System.Web.Services 네임스페이스 ... 852
System.Web.Services.Description 네임스페이스 ... 854
System.Web.Services.Discovery 네임스페이스 ... 855
System.Web.Services.Protocols 네임스페이스 ... 855
웹 서비스 아키텍처 ... 856
웹 서비스가 필요한 이유 ... 856
다른 것들과의 호환성 ... 857
웹 서비스 프록시 ... 857
상태 문제 ... 858
모델로 DNS 사용 ... 858
웹 서비스에서의 보안 ... 862
SSL : Secure Sockets Layer ... 863
디렉토리 수준 보완 ... 863
협업하기 ... 865
다른 유형의 보안 ... 865
단점 ... 865
보안 ... 865
상태 ... 866
트랜잭션 ... 866
속도와 연결성 ... 866
미래의 발전 방향 ... 866
요약 ... 867
제23장 VB.NET과 인터넷
인터넷 리소스 다운로드 ... 869
소켓 ... 873
응용 프로그램 작성하기 ... 874
Conversation 창 생성하기 ... 877
메시지 보내기 ... 885
응용 프로그램 끝내기 ... 891
응용 프로그램에서 Internet Explorer 사용하기 ... 896
Internet Explorer 인터롭(interop) 디자인 패턴 ... 896
요약 ... 904
제24장 .NET Framework의 보완
보안의 개념과 정의 ... 906
System.Security.Permissions 네임스페이스에서의 권한 ... 908
코드 액세스 권한 ... 910
역할 기반 권한 ... 912
ID 권한 ... 914
코드 액세스 권한 권리 ... 915
보안 정책 관리 ... 920
보안 도구 ... 933
암호화의 기초 ... 934
해시 알고리즘 ... 935
요약 ... 959
제25장 어셈블리 및 배포
어셈블리 ... 962
매니페스트 ... 963
ID 섹션 ... 964
참조 어셈블리 ... 966
어셈블리 및 배포 ... 968
응용 프로그램 전용 어셈블리 ... 968
공유 어셈블리 ... 969
버전 관리 문제 ... 971
응용 프로그램 격리 ... 972
동시 실행(side-by-side execution) ... 973
자기 기술 ... 973
버전 정책 ... 974
구성 파일 ... 975
응용 프로그램 배포 ... 979
DLL HELL ... 980
XCOPY 배포 ... 981
.NET 이전의 배포 옵션들 ... 982
VS.NET에서의 응용 프로그램 배포 ... 984
VS.NET 배포 프로젝트 ... 984
프로젝트 템플릿 ... 984
배포 프로젝트 생성 ... 987
연습 ... 987
배포 프로젝트 수정 ... 999
프로젝트 속성 ... 999
파일 시스템 편집기 ... 1004
레지스트리 편집기 ... 1008
파일 형식 편집기 ... 1011
사용자 인터페이스 편집기 ... 1013
사용자 지정 작업 편집기 ... 1016
시작 조건 편집기 ... 1018
빌드하기 ... 1021
요약 ... 1022
부록A Visual Basic 호환 라이브러리 사용하기
호환 라이브러리의 정체 ... 1023
변환 도구가 호환 라이브러리를 사용하는 경우 ... 1023
프로젝트에서 호환 라이브러리를 사용하는 경우 ... 1025
호환 라이브러리 참조하기 ... 1025
호환 라이브러리 예제 ... 1026
호환 라이브러리 참조 목록 ... 1030
선언 문법 변경 ... 1031
메서드에 의해 대체된 요소들 ... 1031
데이터 형식 변경 ... 1032
불 연산자 변경 ... 1032
클래스와 인터페이스의 변경 ... 1032
찾아보기 ... 1037