자료유형 | 단행본 |
---|---|
서명/저자사항 | (한글)Visual Basic .NET과 .NET 플랫폼/ Andrew Troelsen 저; 원유태...[등]역. |
개인저자 | Troelsen, Andrew 원유태 |
발행사항 | 서울: 인포북, 2002. |
형태사항 | 1076 p.: 삽화; 24 cm. |
원서명 | Visual Basic .NET and the .NET platform: an advanced guide |
ISBN | 8980544731 |
서지주기 | 색인포함 |
분류기호 | 005.117 |
언어 | 한국어 |
캠퍼스간대출 소재불명도서 자료배달서비스 인쇄
No. | 등록번호 | 청구기호 | 소장처 | 도서상태 | 반납예정일 | 예약 | 서비스 | 매체정보 |
---|---|---|---|---|---|---|---|---|
1 | M0226032 | 005.117 T843vㅇ | 삼성캠퍼스/종합자료실/ | 대출가능 | false|true|true|false |true|true |
|
CHAPTER 1. .NET에 담긴 철학
현재 상황 이해하기 ... 46
.NET 솔루션 ... 50
.NET 블록의 설계(CLR, CTS 그리고 CLS) ... 51
.NET 지원 프로그래밍 언어들 ... 53
VB .NET의 포장 뜯어보기 ... 56
.NET 바이너리(혹은 어셈블리)가 뭐지? ... 57
MSIL(...
CHAPTER 1. .NET에 담긴 철학
현재 상황 이해하기 ... 46
.NET 솔루션 ... 50
.NET 블록의 설계(CLR, CTS 그리고 CLS) ... 51
.NET 지원 프로그래밍 언어들 ... 53
VB .NET의 포장 뜯어보기 ... 56
.NET 바이너리(혹은 어셈블리)가 뭐지? ... 57
MSIL(Microsoft Intermediate Language)이 하는 일 ... 58
메타데이터가 하는 일 ... 62
IL을 특정 플랫폼의 명령어 집합 형태로 컴파일 하기 ... 63
.NET 타입과 .NET 네임스페이스 ... 64
CLR(Common Language Runtime) 이해하기 ... 65
CTS(Common Type System) 이해하기 ... 66
CLS(Common Language specification) 이해하기 ... 71
네임스페이스 사용하기 ... 73
.NET 네임스페이스와 함께 여행을! ... 74
외부 어셈블리 참조하기 ... 77
조금 더 네임스페이스를 파보자 ... 78
요약 ... 85
CHAPTER 2. VB .NET 애플리케이션
명령 행 컴파일러로 VB .NET 애플리케이션 만들기 ... 88
처음으로 만드는 VB .NET 애플리케이션 ... 89
Visual Studio .NET IDE로 VB .NET 애플리케이션 만들기 ... 94
여러분의 VS .NET Test 애플리케이션 만들기 ... 98
VB .NET 프로젝트 구성하기 ... 100
속성 창(Properties Window) ... 104
약간의 코드 추가해 보기 ... 105
XML 관련 편집기 ... 109
VB 6.0에 무슨 일이? ... 112
VB 6.0 프로젝트를 VB .NET으로 바꾸기! ... 116
Microsoft.VisualBasic.Compatability.VB6 네임스페이스 ... 119
업그레이드를 해야 하는가? ... 119
요약 ... 120
CHAPTER 3. VB .NET 언어 기초 다지기
Module 타입의 역할 ... 122
Main 메소드 ... 124
데이터 타입과 변수의 선언 ... 125
System 데이터 타입 알아보기 ... 129
데이터 형 변환(Data Type Conversions) ... 132
인접 연산자(Concatenation Operators) ... 134
Console 클래스로 간단한 입·출력 배워보기 ... 135
VB .NET의 문자열 형식 ... 136
간단한 VB .NET 클래스 해부하기 ... 138
객체 만들기 : 생성자가 뭐지? ... 139
디폴트 값 ... 144
프로그램 상수(Constants) 정의하기 ... 146
값 타입(Value Type)과 참조 타입(Reference Type) 이해하기 ... 148
System.Object는 우두머리 ... 153
VB .NET의 반복문 ... 160
VB .NET 제어문 ... 164
그 밖의 VB .NET 연산자들 ... 166
커스텀 클래스 메소드 정의하기 ... 167
메소드 매개변수 수정자(ByRef와 ByVal) ... 173
shared 메소드 ... 179
Static(Shared가 아닌) 데이터 ... 183
VB .NET의 배열 조작 ... 185
VB .NET의 문자열 조작 ... 190
VB .NET 열거형 ... 193
VB .NET의 구조체 ... 198
커스텀 네임스페이스 정의하기 ... 200
요약 ... 205
CHAPTER 4. VB .NET과 객체지향 프로그래밍
VB .NET의 객체지향 관련 키워드들 ... 208
VB .NET 클래스의 정의 ... 209
객체지향 프로그래밍(OOP, Object Oriented Programming)의 세 기둥 ... 217
첫 번째 이야기 : VB .NET의 캡슐화(Encapsulation) ... 223
가상 캡슐화(Pseudo-Encapsulation) : 읽기 전용(Read_Only)의 필드 만들기 ... 231
두 번째 이야기 : VB .NET의 상속(Inheritance) 지원 ... 233
우리끼리의 비밀이야! : 'Protected' 키워드 ... 237
중첩된 타입 정의(Nested Type Definitions) ... 244
마지막 세 번째 이야기 : VB .NET의 다형성 지원 ... 245
클래스 타입의 캐스팅(CType) ... 255
예외 처리(Exception Handling) ... 257
객체의 수명(lifetime)은 어디까지? ... 268
객체 참조 끝내기(Finalizing) ... 270
임시적인 소멸 메소드(Ad Hoc Destruction Method) ... 272
가비지 컬렉터의 상호작용 ... 273
요약 ... 279
CHAPTER 5. 인터페이스(Interfaces)와 컬렉션(Collections)
인터페이스 기반 프로그래밍 이해하기 ... 282
커스텀 열거형 만들기(IEnumerabled과 IEnumerator) ... 296
복제 가능한 객체 만들기(ICloneable) ... 300
객체 비교하기(IComparable) ... 306
System.Collections 네임스페이스 탐험하기 ... 312
요약 ... 318
CHAPTER 6. 델리케이트(Delegate), 이벤트(Enevt), 그리고 콜백 인터페이스(Callback interfaces)
VB 6.0의 이벤트에 대한 짧은 복습 ... 320
이벤트 인터페이스 디자인하기 ... 324
VB .NET의 델리게이트(Delegate) 키워드 ... 328
간단한 예제 프로그램 ... 331
좀더 정교한 델리게이트 예제 만들기 ... 334
이벤트 이해하기(와 사용하기) ... 344
요약 ... 353
CHAPTER 7. 어셈블리(Assembly), 쓰레드(Thread)와 AppDomain
COM 바이너리의 문제점들 ... 356
.NET 어셈블리에 대해 간단하게 살펴보기 ... 359
테스트를 위한 단일 파일 어셈블리 만들어 보기 ... 367
VB .NET 클라이언트 애플리케이션 ... 371
C 클라이언트 애플리케이션 ... 372
교차-언어 상속 ... 374
CarLibrary의 매니페스트 살펴보기 ... 379
CarLibrary의 타입들에 대해 살펴보기 ... 383
다중 파일 어셈블리 만들기 ... 385
전용 어셈블리(Private assembly)에 대해 이해하기 ... 391
프로빙(Probing)에 대하여 ... 393
공유 어셈블리 이해하기 ... 399
공유 이름(Shared Name) 이해하기 ... 400
공유 어셈블리 사용해 보기 ... 406
.NET의 버전 정책 이해하기 ... 407
버전 정보 기록하기 ... 408
2.0 버전의 SaredAssembly 만들기 ... 411
커스텀 버전 표시하기 ... 412
.NET 관리 도구 사용하기(mscorcfg.msc) ... 414
Ngen.exe 유틸리트 ... 422
전형적인 Win32 쓰레드 프로그래밍에 대한 복습 ... 423
System.AppDomain 이해하기 ... 426
System.Threading 네임스페이스 ... 429
Thread에 이름 붙이기 ... 432
병행성 제어로의 회귀 ... 436
VB .NET의 'SyncLock' 키워드 ... 439
System.Threading.Interlocked ... 441
요약 ... 443
CHAPTER 8. 리플렉션(Reflection)과 애트리뷰트(Attribute)
리플렉션(Reflection) 이해하기 ... 446
System.Type 클래스 ... 446
System.Reflection 네임스페이스에 대해 알아보기 ... 452
어셈블리 동적으로 로딩하기 ... 453
동적 호출 이해하기(늦은 바인딩) ... 458
동적 어셈블리 이해하기와 만들어 보기 ... 462
애트리뷰트 기반 프로그래밍 이해하기 ... 470
커스텀 애트리뷰트 만들기 ... 473
VB .NET의 'AssemblyInfo.vb' 파일 ... 478
런타임에 애트리뷰트 찾아내기 ... 479
요약 ... 480
CHAPTER 9. 보다 나은 윈도우 설계를 위하여 윈도우 폼(Windows Forms) 소개
두 가지 GUI 네임스페이스 ... 482
윈도우 폼 네임스페이스 살펴보기 ... 483
직접 윈도우 폼 생성하기 ... 484
Visual Studio .NET 윈도우 폼 프로젝트 작업 공간 설계 ... 487
System.Windows.Forms.Application 클래스 ... 492
폼의 계층 구조 ... 497
Form의 기본 상속 기능 ... 497
System.ComponentModel.Component 클래스 ... 498
Control 클래스 ... 499
폼의 스타일 설정하기 ... 501
Control 이벤트 ... 504
키보드 이벤트 처리하기 ... 510
Control 클래스 다시 살펴보기 ... 512
ScrollableControl 클래스 ... 515
ContainerControl 클래스 ... 516
Form 클래스 ... 517
메뉴를 이용한 윈도우 폼 설계 ... 519
메뉴 시스템 설계하기 ... 522
Visual Studio .NET을 이용하여 메뉴 만들기 ... 529
StatusBar 이해하기 ... 532
Visual Studio .NET을 사용하여 상태바 만들기 ... 538
ToolBar 만들기 ... 540
디자인 타임에서 툴바 만들기 ... 545
최소한의 완벽한 윈도우 폼 애플리케이션 ... 549
시스템 레지스트리와 상호작용하기 ... 550
이벤트 뷰어(Event Viewer)와 상호작용하기 ... 554
MDI 애플리케이션 설계하기 ... 559
요약 ... 565
CHAPTER 10. 보다 나은 페인팅 프레임워크(Painting Framework) 설계(GDI+)
VB 6.0의 그래픽 프로그래밍 세계를 돌아보자 ... 568
GDI+ 네임스페이스 살펴보기 ... 568
System.Drawing 네임스페이스 살펴보기 ... 569
GDI+ 프로젝트 작업 공간 구성하기 ... 572
System.Drawing 유틸리트 타입 살펴보기 ... 572
Paint 부분 이해하기 ... 577
Graphics 클래스 이해하기 ... 581
디폴트 GDI+ 좌표 시스템 ... 583
색 설정하기 ... 587
폰트 다루기 ... 590
System.Drawing.Drawing2D 네임스페이스 살펴보기 ... 602
펜을 이용한 작업하기 ... 604
이미지 다루기 ... 619
Dragging, Hit Testing 그리고 PictrueBox 컨트롤 ... 622
.NET 리소스 형식 이해하기 ... 632
System.Resources 네임스페이스 ... 633
ResourccWriter 이용하기 ... 639
ResourceManager 사용하기 ... 640
Visual Studio .NET을 이용한 리소스 구성 자동 설정 ... 641
요약 ... 644
CHAPTER 11. 윈도우 폼 컨트롤을 이용한 프로그래밍
윈도우 폼 컨트롤 상속 관계 이해하기 ... 646
폼에 컨트롤 추가하기(어려운 방법) ... 647
폼에 컨트롤 추가하기(손쉽게 추가하는 방법) ... 651
TextBox 컨트롤 ... 652
강력한 Button 타입(그리고 ButtonBase 부모 클래스) 기능 살펴보기 ... 657
CheckBox 사용하기 ... 660
RadioButton과 GroupBox 사용하기 ... 662
ListBox와 ComboBox ... 667
텝 순서 설정하기 ... 672
TrackBar 컨트롤 ... 674
MonthCalendar 컨트롤 ... 677
System.DataTime 타입에 대해 좀더 살펴보기 ... 680
Spin 컨트롤 : DomainUpDown과 NumericUpDown ... 682
Panel 컨트롤 사용하기 ... 684
컨트롤에 툴팁 추가하기 ... 686
ErrorProvider 사용하기 ... 688
컨트롤의 앵커링(Anchoring) 기능 설정하기 ... 691
컨트롤의 도킹(Docking) 기능 설정하기 ... 692
커스텀 대화상자 만들기 ... 694
Form의 상속 관계 ... 702
커스텀 컨트롤 이해하기 ... 704
Class, Control, UserControl 그리고 Component의 구분 ... 704
커스텀 UserControl 만들기 ... 707
이미지 만들기 ... 708
디자인 타임 GUI 설계 ... 710
디폴트 Public 부분 구성하기 ... 711
커스텀 이벤트 정의하기 ... 713
커스텀 프로터티 제공하기 ... 713
애니메이션 다루기 ... 715
VB .NET 클라이언트 애플리케이션 설계하기 ... 716
System.ComponentModel 네임스페이스의 멤버 선택하기 ... 719
디자인 타임에서 CarControl의 모습 업그레이드하기!! ... 720
.NET(Data) 컴포넌트 설계 ... 723
Cars 데이터베이스에 연결하기 ... 724
커스텀 컴포넌트 사용하기 ... 726
요약 ... 730
CHAPTER 12. 입출력(Input, Output)과 객체 직렬화(Object Serialization)
System.IO 네임스페이스 살펴보기 ... 732
Directory(Info)와 File(Info) 타입 ... 733
DirectoryInfo 타입을 사용하여 파일 나열하기 ... 737
DirectoryInfo 타입으로 서브디렉토리 만들기 ... 738
Directory 클래스의 shared 멤버들 ... 740
FileInfo 클래스 ... 742
추상형의 Stream 클래스 ... 747
StreamWriter와 StreamReader ... 751
StringWriter에 대해 알아보기 ... 756
StringReader에 대해 알아보기 ... 758
바이너리 데이터 다루어 보기(BinaryReader와 BinaryWriter) ... 759
.NET 프레임워크에서의 객체 영속성(Object Persistence) ... 764
객체 그래프의 역할 ... 764
직렬화를 하기 위해 객체 구성하기 ... 765
바이너리 포맷터를 사용하여 직렬화하기 ... 770
SOAP 포맷터를 사용하여 직렬화하기 ... 772
커스텀 직렬화(와 ISerializable 인터페이스) ... 773
윈도우 폼의 Car Logger 애플리케이션 ... 778
요약 ... 785
CHAPTER 13. 비관리 코드(Unmanaged Code)와의 대화
상호운용성에 대해 이해하기 ... 788
아주 간단한 예제 : VB 6.0 COM 타입과 통신할 수 있는 VB .NET 애플리케이션 ... 789
System.Runtime.InteropServices 네임스페이스 ... 792
.NET의 COM에 대한 상호운용성 이해하기 ... 793
COM IDL의 역할 ... 797
타입 라이브러리 사용하기 ... 803
생성된 어셈블리의 매니페스트 살펴보기 ... 807
좀더 흥미로운 VB 6.0 COM 서버 만들어 보기 ... 809
연결 어셈블리에 대해 알아보기 ... 812
완전한 VB .NET 클라이언트 ... 817
COM의 .NET에 대한 상호운용성 이해하기 ... 819
CCW의 역할 ... 820
'클래스 인터페이스(Class Interface)' 이해하기 ... 821
여러분들만의 .NET 타입 만들기 ... 822
타입 라이브러리 만들기와 .NET 타입 등록하기 ... 824
타입 정보 살펴보기 ... 825
OLE/COM 개체 뷰어를 사용하여 타입 살펴보기 ... 828
등록된 목록들에 대해 알아보기 ... 829
Visual Basic 6.0용 테스트 클라이언트 만들어 보기 ... 830
COM과 .NET 사이의 타입 매핑에 대해서... ... 832
생성된 IDL 제어하기(나 Tlbexp.exe 가지고 놀아 보기) ... 836
COM+ 컴포넌트 서비스에 대하여... ... 838
COM+를 지원하는 타입 만들기 ... 842
COM+를 지원하는 VB .NET 타입 만들기 ... 843
구성 요소 서비스 탐색기 알아보기 ... 846
요약 ... 847
CHAPTER 14. ADO.NET을 이용한 데이터 접근
ADO.NET의 필요성 ... 850
ADO.NET 네임스페이스 이해하기 ... 852
System.Data의 타입들 ... 854
DataColumn 타입 살펴보기 ... 855
DataRow 타입 살펴보기 ... 862
DataTable 세부사항 살펴보기 ... 867
완전한 DataTable 설계하기 ... 868
DataView 타입 이해하기 ... 878
DataSet의 역할 이해하기 ... 881
DataRelation 타입을 이용하여 릴레이션 표현하기 ... 887
XML 기반의 데이터 셋 읽고 쓰기 ... 892
간단한 테스트 데이터베이스 만들기 ... 895
ADO.NET 관리화 프로바이더(Managed Providers) ... 896
OleDb 관리화 프로바이더 사용하기 ... 897
OleDbDataAdapter 타입 역할 이해하기 ... 908
SQL 관리화 프로바이더(Managed Provider) 사용하기 ... 911
SQL 명령어 자동 생성(Autoenerate)하기 ... 918
여러 개의 테이블을 갖는 데이터 셋 채우기(DataRelation 추가하기) ... 920
마법사 사용하기 ... 923
요약 ... 931
CHAPTER 15. 웹 개발과 ASP.NET
웹 애플리케이션과 웹 서버 ... 934
HTML 문서의 기본 구조 ... 937
HTML의 텍스트 표시 형식 태그들 ... 939
Visual Studio .NET HTML 에디터 ... 942
HTML 폼 만들기 ... 943
클라이언트 측 스크립트의역할 ... 949
폼 데이터를 전송하기(GET과 POST) ... 954
기존 ASP(Active Server Page) 페이지 만들기 ... 955
첫 번째 ASP.NET 애플리케이션 만들어 보기 ... 960
기존 ASP의 문제점 ... 961
ASP.NET의 장점 ... 962
ASP.NET 네임스페이스 ... 962
간단한 VB .NET 웹 애플리케이션 만들기 ... 964
ASP.NET 웹 애플리케이션의 구조 ... 969
애플리케이션(Application)과 세션(Session)의 차이 이해하기 ... 977
Globals.asax 파일과 HttpApplication 타입 ... 981
Page를 상속받은 클래스의 라이프 사이클 ... 982
뷰스테이트(ViewState) 이해하기 ... 986
ASP.NET 애플리케이션 디버깅하기와 추적(trace)하기 ... 988
웹 폼 컨트롤(Web Form)의 장점 ... 990
웹 폼 컨트롤 알아보기 ... 992
웹 폼 컨트롤의 범주 ... 995
서버 측에서 웹 폼 컨트롤 이벤트 핸들링 하기 ... 1006
ASP.NET 예제 애플리케이션 완성하기 ... 1011
요약 ... 1019
CHAPTER 16. 웹 서비스 만들기
웹 서비스의 역할 이해하기 ... 1022
웹 서비스의 해부 ... 1023
웹 서비스 네임스페이스의 개요 ... 1024
System.Web.Services 네임스페이스에 대해서 알아보기 ... 1024
간단한 웹 서비스 만들기 ... 1025
WebMethodAttribute 타입 ... 1031
WSDL(Web Service Description Language) 이해하기 ... 1036
웹 서비스 프로토콜 ... 1039
WSDL을 VB .NET 코드로(프록시 만들기) ... 1044
어셈블리 만들기 ... 1048
클라이언트 만들기 ... 1049
VB .NET으로 프록시 만들기 ... 1050
웹 서비스와 웹 클라이언트에 관한 좀더 재미있는 부분들 ... 1052
커스텀 타입 직렬화하기(좀더 자세히) ... 1057
디스커버리 서비스 프로토콜(Discovery Service Protocol) 이해하기 ... 1060
요약 ... 1061
찾아보기 ... 1063
CHAPTER 1. .NET에 담긴 철학
현재 상황 이해하기 ... 46
.NET 솔루션 ... 50
.NET 블록의 설계(CLR, CTS 그리고 CLS) ... 51
.NET 지원 프로그래밍 언어들 ... 53
VB .NET의 포장 뜯어보기 ... 56
.NET 바이너리(혹은 어셈블리)가 뭐지? ... 57
MSIL(Microsoft Intermediate Language)이 하는 일 ... 58
메타데이터가 하는 일 ... 62
IL을 특정 플랫폼의 명령어 집합 형태로 컴파일 하기 ... 63
.NET 타입과 .NET 네임스페이스 ... 64
CLR(Common Language Runtime) 이해하기 ... 65
CTS(Common Type System) 이해하기 ... 66
CLS(Common Language specification) 이해하기 ... 71
네임스페이스 사용하기 ... 73
.NET 네임스페이스와 함께 여행을! ... 74
외부 어셈블리 참조하기 ... 77
조금 더 네임스페이스를 파보자 ... 78
요약 ... 85
CHAPTER 2. VB .NET 애플리케이션
명령 행 컴파일러로 VB .NET 애플리케이션 만들기 ... 88
처음으로 만드는 VB .NET 애플리케이션 ... 89
Visual Studio .NET IDE로 VB .NET 애플리케이션 만들기 ... 94
여러분의 VS .NET Test 애플리케이션 만들기 ... 98
VB .NET 프로젝트 구성하기 ... 100
속성 창(Properties Window) ... 104
약간의 코드 추가해 보기 ... 105
XML 관련 편집기 ... 109
VB 6.0에 무슨 일이? ... 112
VB 6.0 프로젝트를 VB .NET으로 바꾸기! ... 116
Microsoft.VisualBasic.Compatability.VB6 네임스페이스 ... 119
업그레이드를 해야 하는가? ... 119
요약 ... 120
CHAPTER 3. VB .NET 언어 기초 다지기
Module 타입의 역할 ... 122
Main 메소드 ... 124
데이터 타입과 변수의 선언 ... 125
System 데이터 타입 알아보기 ... 129
데이터 형 변환(Data Type Conversions) ... 132
인접 연산자(Concatenation Operators) ... 134
Console 클래스로 간단한 입·출력 배워보기 ... 135
VB .NET의 문자열 형식 ... 136
간단한 VB .NET 클래스 해부하기 ... 138
객체 만들기 : 생성자가 뭐지? ... 139
디폴트 값 ... 144
프로그램 상수(Constants) 정의하기 ... 146
값 타입(Value Type)과 참조 타입(Reference Type) 이해하기 ... 148
System.Object는 우두머리 ... 153
VB .NET의 반복문 ... 160
VB .NET 제어문 ... 164
그 밖의 VB .NET 연산자들 ... 166
커스텀 클래스 메소드 정의하기 ... 167
메소드 매개변수 수정자(ByRef와 ByVal) ... 173
shared 메소드 ... 179
Static(Shared가 아닌) 데이터 ... 183
VB .NET의 배열 조작 ... 185
VB .NET의 문자열 조작 ... 190
VB .NET 열거형 ... 193
VB .NET의 구조체 ... 198
커스텀 네임스페이스 정의하기 ... 200
요약 ... 205
CHAPTER 4. VB .NET과 객체지향 프로그래밍
VB .NET의 객체지향 관련 키워드들 ... 208
VB .NET 클래스의 정의 ... 209
객체지향 프로그래밍(OOP, Object Oriented Programming)의 세 기둥 ... 217
첫 번째 이야기 : VB .NET의 캡슐화(Encapsulation) ... 223
가상 캡슐화(Pseudo-Encapsulation) : 읽기 전용(Read_Only)의 필드 만들기 ... 231
두 번째 이야기 : VB .NET의 상속(Inheritance) 지원 ... 233
우리끼리의 비밀이야! : 'Protected' 키워드 ... 237
중첩된 타입 정의(Nested Type Definitions) ... 244
마지막 세 번째 이야기 : VB .NET의 다형성 지원 ... 245
클래스 타입의 캐스팅(CType) ... 255
예외 처리(Exception Handling) ... 257
객체의 수명(lifetime)은 어디까지? ... 268
객체 참조 끝내기(Finalizing) ... 270
임시적인 소멸 메소드(Ad Hoc Destruction Method) ... 272
가비지 컬렉터의 상호작용 ... 273
요약 ... 279
CHAPTER 5. 인터페이스(Interfaces)와 컬렉션(Collections)
인터페이스 기반 프로그래밍 이해하기 ... 282
커스텀 열거형 만들기(IEnumerabled과 IEnumerator) ... 296
복제 가능한 객체 만들기(ICloneable) ... 300
객체 비교하기(IComparable) ... 306
System.Collections 네임스페이스 탐험하기 ... 312
요약 ... 318
CHAPTER 6. 델리케이트(Delegate), 이벤트(Enevt), 그리고 콜백 인터페이스(Callback interfaces)
VB 6.0의 이벤트에 대한 짧은 복습 ... 320
이벤트 인터페이스 디자인하기 ... 324
VB .NET의 델리게이트(Delegate) 키워드 ... 328
간단한 예제 프로그램 ... 331
좀더 정교한 델리게이트 예제 만들기 ... 334
이벤트 이해하기(와 사용하기) ... 344
요약 ... 353
CHAPTER 7. 어셈블리(Assembly), 쓰레드(Thread)와 AppDomain
COM 바이너리의 문제점들 ... 356
.NET 어셈블리에 대해 간단하게 살펴보기 ... 359
테스트를 위한 단일 파일 어셈블리 만들어 보기 ... 367
VB .NET 클라이언트 애플리케이션 ... 371
C 클라이언트 애플리케이션 ... 372
교차-언어 상속 ... 374
CarLibrary의 매니페스트 살펴보기 ... 379
CarLibrary의 타입들에 대해 살펴보기 ... 383
다중 파일 어셈블리 만들기 ... 385
전용 어셈블리(Private assembly)에 대해 이해하기 ... 391
프로빙(Probing)에 대하여 ... 393
공유 어셈블리 이해하기 ... 399
공유 이름(Shared Name) 이해하기 ... 400
공유 어셈블리 사용해 보기 ... 406
.NET의 버전 정책 이해하기 ... 407
버전 정보 기록하기 ... 408
2.0 버전의 SaredAssembly 만들기 ... 411
커스텀 버전 표시하기 ... 412
.NET 관리 도구 사용하기(mscorcfg.msc) ... 414
Ngen.exe 유틸리트 ... 422
전형적인 Win32 쓰레드 프로그래밍에 대한 복습 ... 423
System.AppDomain 이해하기 ... 426
System.Threading 네임스페이스 ... 429
Thread에 이름 붙이기 ... 432
병행성 제어로의 회귀 ... 436
VB .NET의 'SyncLock' 키워드 ... 439
System.Threading.Interlocked ... 441
요약 ... 443
CHAPTER 8. 리플렉션(Reflection)과 애트리뷰트(Attribute)
리플렉션(Reflection) 이해하기 ... 446
System.Type 클래스 ... 446
System.Reflection 네임스페이스에 대해 알아보기 ... 452
어셈블리 동적으로 로딩하기 ... 453
동적 호출 이해하기(늦은 바인딩) ... 458
동적 어셈블리 이해하기와 만들어 보기 ... 462
애트리뷰트 기반 프로그래밍 이해하기 ... 470
커스텀 애트리뷰트 만들기 ... 473
VB .NET의 'AssemblyInfo.vb' 파일 ... 478
런타임에 애트리뷰트 찾아내기 ... 479
요약 ... 480
CHAPTER 9. 보다 나은 윈도우 설계를 위하여 윈도우 폼(Windows Forms) 소개
두 가지 GUI 네임스페이스 ... 482
윈도우 폼 네임스페이스 살펴보기 ... 483
직접 윈도우 폼 생성하기 ... 484
Visual Studio .NET 윈도우 폼 프로젝트 작업 공간 설계 ... 487
System.Windows.Forms.Application 클래스 ... 492
폼의 계층 구조 ... 497
Form의 기본 상속 기능 ... 497
System.ComponentModel.Component 클래스 ... 498
Control 클래스 ... 499
폼의 스타일 설정하기 ... 501
Control 이벤트 ... 504
키보드 이벤트 처리하기 ... 510
Control 클래스 다시 살펴보기 ... 512
ScrollableControl 클래스 ... 515
ContainerControl 클래스 ... 516
Form 클래스 ... 517
메뉴를 이용한 윈도우 폼 설계 ... 519
메뉴 시스템 설계하기 ... 522
Visual Studio .NET을 이용하여 메뉴 만들기 ... 529
StatusBar 이해하기 ... 532
Visual Studio .NET을 사용하여 상태바 만들기 ... 538
ToolBar 만들기 ... 540
디자인 타임에서 툴바 만들기 ... 545
최소한의 완벽한 윈도우 폼 애플리케이션 ... 549
시스템 레지스트리와 상호작용하기 ... 550
이벤트 뷰어(Event Viewer)와 상호작용하기 ... 554
MDI 애플리케이션 설계하기 ... 559
요약 ... 565
CHAPTER 10. 보다 나은 페인팅 프레임워크(Painting Framework) 설계(GDI+)
VB 6.0의 그래픽 프로그래밍 세계를 돌아보자 ... 568
GDI+ 네임스페이스 살펴보기 ... 568
System.Drawing 네임스페이스 살펴보기 ... 569
GDI+ 프로젝트 작업 공간 구성하기 ... 572
System.Drawing 유틸리트 타입 살펴보기 ... 572
Paint 부분 이해하기 ... 577
Graphics 클래스 이해하기 ... 581
디폴트 GDI+ 좌표 시스템 ... 583
색 설정하기 ... 587
폰트 다루기 ... 590
System.Drawing.Drawing2D 네임스페이스 살펴보기 ... 602
펜을 이용한 작업하기 ... 604
이미지 다루기 ... 619
Dragging, Hit Testing 그리고 PictrueBox 컨트롤 ... 622
.NET 리소스 형식 이해하기 ... 632
System.Resources 네임스페이스 ... 633
ResourccWriter 이용하기 ... 639
ResourceManager 사용하기 ... 640
Visual Studio .NET을 이용한 리소스 구성 자동 설정 ... 641
요약 ... 644
CHAPTER 11. 윈도우 폼 컨트롤을 이용한 프로그래밍
윈도우 폼 컨트롤 상속 관계 이해하기 ... 646
폼에 컨트롤 추가하기(어려운 방법) ... 647
폼에 컨트롤 추가하기(손쉽게 추가하는 방법) ... 651
TextBox 컨트롤 ... 652
강력한 Button 타입(그리고 ButtonBase 부모 클래스) 기능 살펴보기 ... 657
CheckBox 사용하기 ... 660
RadioButton과 GroupBox 사용하기 ... 662
ListBox와 ComboBox ... 667
텝 순서 설정하기 ... 672
TrackBar 컨트롤 ... 674
MonthCalendar 컨트롤 ... 677
System.DataTime 타입에 대해 좀더 살펴보기 ... 680
Spin 컨트롤 : DomainUpDown과 NumericUpDown ... 682
Panel 컨트롤 사용하기 ... 684
컨트롤에 툴팁 추가하기 ... 686
ErrorProvider 사용하기 ... 688
컨트롤의 앵커링(Anchoring) 기능 설정하기 ... 691
컨트롤의 도킹(Docking) 기능 설정하기 ... 692
커스텀 대화상자 만들기 ... 694
Form의 상속 관계 ... 702
커스텀 컨트롤 이해하기 ... 704
Class, Control, UserControl 그리고 Component의 구분 ... 704
커스텀 UserControl 만들기 ... 707
이미지 만들기 ... 708
디자인 타임 GUI 설계 ... 710
디폴트 Public 부분 구성하기 ... 711
커스텀 이벤트 정의하기 ... 713
커스텀 프로터티 제공하기 ... 713
애니메이션 다루기 ... 715
VB .NET 클라이언트 애플리케이션 설계하기 ... 716
System.ComponentModel 네임스페이스의 멤버 선택하기 ... 719
디자인 타임에서 CarControl의 모습 업그레이드하기!! ... 720
.NET(Data) 컴포넌트 설계 ... 723
Cars 데이터베이스에 연결하기 ... 724
커스텀 컴포넌트 사용하기 ... 726
요약 ... 730
CHAPTER 12. 입출력(Input, Output)과 객체 직렬화(Object Serialization)
System.IO 네임스페이스 살펴보기 ... 732
Directory(Info)와 File(Info) 타입 ... 733
DirectoryInfo 타입을 사용하여 파일 나열하기 ... 737
DirectoryInfo 타입으로 서브디렉토리 만들기 ... 738
Directory 클래스의 shared 멤버들 ... 740
FileInfo 클래스 ... 742
추상형의 Stream 클래스 ... 747
StreamWriter와 StreamReader ... 751
StringWriter에 대해 알아보기 ... 756
StringReader에 대해 알아보기 ... 758
바이너리 데이터 다루어 보기(BinaryReader와 BinaryWriter) ... 759
.NET 프레임워크에서의 객체 영속성(Object Persistence) ... 764
객체 그래프의 역할 ... 764
직렬화를 하기 위해 객체 구성하기 ... 765
바이너리 포맷터를 사용하여 직렬화하기 ... 770
SOAP 포맷터를 사용하여 직렬화하기 ... 772
커스텀 직렬화(와 ISerializable 인터페이스) ... 773
윈도우 폼의 Car Logger 애플리케이션 ... 778
요약 ... 785
CHAPTER 13. 비관리 코드(Unmanaged Code)와의 대화
상호운용성에 대해 이해하기 ... 788
아주 간단한 예제 : VB 6.0 COM 타입과 통신할 수 있는 VB .NET 애플리케이션 ... 789
System.Runtime.InteropServices 네임스페이스 ... 792
.NET의 COM에 대한 상호운용성 이해하기 ... 793
COM IDL의 역할 ... 797
타입 라이브러리 사용하기 ... 803
생성된 어셈블리의 매니페스트 살펴보기 ... 807
좀더 흥미로운 VB 6.0 COM 서버 만들어 보기 ... 809
연결 어셈블리에 대해 알아보기 ... 812
완전한 VB .NET 클라이언트 ... 817
COM의 .NET에 대한 상호운용성 이해하기 ... 819
CCW의 역할 ... 820
'클래스 인터페이스(Class Interface)' 이해하기 ... 821
여러분들만의 .NET 타입 만들기 ... 822
타입 라이브러리 만들기와 .NET 타입 등록하기 ... 824
타입 정보 살펴보기 ... 825
OLE/COM 개체 뷰어를 사용하여 타입 살펴보기 ... 828
등록된 목록들에 대해 알아보기 ... 829
Visual Basic 6.0용 테스트 클라이언트 만들어 보기 ... 830
COM과 .NET 사이의 타입 매핑에 대해서... ... 832
생성된 IDL 제어하기(나 Tlbexp.exe 가지고 놀아 보기) ... 836
COM+ 컴포넌트 서비스에 대하여... ... 838
COM+를 지원하는 타입 만들기 ... 842
COM+를 지원하는 VB .NET 타입 만들기 ... 843
구성 요소 서비스 탐색기 알아보기 ... 846
요약 ... 847
CHAPTER 14. ADO.NET을 이용한 데이터 접근
ADO.NET의 필요성 ... 850
ADO.NET 네임스페이스 이해하기 ... 852
System.Data의 타입들 ... 854
DataColumn 타입 살펴보기 ... 855
DataRow 타입 살펴보기 ... 862
DataTable 세부사항 살펴보기 ... 867
완전한 DataTable 설계하기 ... 868
DataView 타입 이해하기 ... 878
DataSet의 역할 이해하기 ... 881
DataRelation 타입을 이용하여 릴레이션 표현하기 ... 887
XML 기반의 데이터 셋 읽고 쓰기 ... 892
간단한 테스트 데이터베이스 만들기 ... 895
ADO.NET 관리화 프로바이더(Managed Providers) ... 896
OleDb 관리화 프로바이더 사용하기 ... 897
OleDbDataAdapter 타입 역할 이해하기 ... 908
SQL 관리화 프로바이더(Managed Provider) 사용하기 ... 911
SQL 명령어 자동 생성(Autoenerate)하기 ... 918
여러 개의 테이블을 갖는 데이터 셋 채우기(DataRelation 추가하기) ... 920
마법사 사용하기 ... 923
요약 ... 931
CHAPTER 15. 웹 개발과 ASP.NET
웹 애플리케이션과 웹 서버 ... 934
HTML 문서의 기본 구조 ... 937
HTML의 텍스트 표시 형식 태그들 ... 939
Visual Studio .NET HTML 에디터 ... 942
HTML 폼 만들기 ... 943
클라이언트 측 스크립트의역할 ... 949
폼 데이터를 전송하기(GET과 POST) ... 954
기존 ASP(Active Server Page) 페이지 만들기 ... 955
첫 번째 ASP.NET 애플리케이션 만들어 보기 ... 960
기존 ASP의 문제점 ... 961
ASP.NET의 장점 ... 962
ASP.NET 네임스페이스 ... 962
간단한 VB .NET 웹 애플리케이션 만들기 ... 964
ASP.NET 웹 애플리케이션의 구조 ... 969
애플리케이션(Application)과 세션(Session)의 차이 이해하기 ... 977
Globals.asax 파일과 HttpApplication 타입 ... 981
Page를 상속받은 클래스의 라이프 사이클 ... 982
뷰스테이트(ViewState) 이해하기 ... 986
ASP.NET 애플리케이션 디버깅하기와 추적(trace)하기 ... 988
웹 폼 컨트롤(Web Form)의 장점 ... 990
웹 폼 컨트롤 알아보기 ... 992
웹 폼 컨트롤의 범주 ... 995
서버 측에서 웹 폼 컨트롤 이벤트 핸들링 하기 ... 1006
ASP.NET 예제 애플리케이션 완성하기 ... 1011
요약 ... 1019
CHAPTER 16. 웹 서비스 만들기
웹 서비스의 역할 이해하기 ... 1022
웹 서비스의 해부 ... 1023
웹 서비스 네임스페이스의 개요 ... 1024
System.Web.Services 네임스페이스에 대해서 알아보기 ... 1024
간단한 웹 서비스 만들기 ... 1025
WebMethodAttribute 타입 ... 1031
WSDL(Web Service Description Language) 이해하기 ... 1036
웹 서비스 프로토콜 ... 1039
WSDL을 VB .NET 코드로(프록시 만들기) ... 1044
어셈블리 만들기 ... 1048
클라이언트 만들기 ... 1049
VB .NET으로 프록시 만들기 ... 1050
웹 서비스와 웹 클라이언트에 관한 좀더 재미있는 부분들 ... 1052
커스텀 타입 직렬화하기(좀더 자세히) ... 1057
디스커버리 서비스 프로토콜(Discovery Service Protocol) 이해하기 ... 1060
요약 ... 1061
찾아보기 ... 1063