목차 일부
Part 1. 업그레이드에 대한 소개
Chapter 1. Visual Basic .NET은 Visual Basic 7 이상의 의미
왜 호환성이 지원되지 않는가? ... 27
신기능 추가 ... 27
개발 언어 수정 ... 28
개발 언어를 현대적으로 ... 29
그래도 Visual Bas...
더보기
목차 전체
Part 1. 업그레이드에 대한 소개
Chapter 1. Visual Basic .NET은 Visual Basic 7 이상의 의미
왜 호환성이 지원되지 않는가? ... 27
신기능 추가 ... 27
개발 언어 수정 ... 28
개발 언어를 현대적으로 ... 29
그래도 Visual Basic은 Visual Basic ... 29
미묘한 차이 ... 30
95%의 자동화된 업그레이드를 위한 계획 ... 31
왜 업그레이드를 해야 하는가? ... 32
개발 언어의 신기능들 ... 32
윈도우 폼 ... 37
새로운 웹 개발 기능들 ... 38
더욱 향상된 개발 환경 ... 39
Visual Basic은 Visual Basic 개발자에게 여전히 최상의 선택인가? ... 41
결론 ... 43
Chapter 2. Visual Basic 6과 Visual Basic .NET의 차이
.NET Framework vs. ActiveX ... 46
.NET Framework ... 47
메모리 관리 ... 49
형 정체성(Type Identity) ... 53
스레딩 모델 ... 57
개발 환경에서의 차이점 ... 58
메뉴 편집기 ... 58
도구 상자 ... 60
속성 창 ... 62
탭 순서 편집기 ... 63
폼 패키지(Forms Packages) ... 64
윈도우 폼의 단일 표준 ... 64
한번의 수고로 두 개의 폼 패키지 이용 ... 64
개발 언어의 차이점 ... 65
모든 서브루틴 호출은 괄호로 처리되어야 한다 ... 68
ByVal 또는 ByRef가 필요하다 ... 68
이것이 나의 이벤트? ... 69
배열은 하한이 0이어야 한다 ... 71
고정 길이 문자열은 지원되지 않는다 ... 71
Variant 데이터 형은 제거되었다 ... 72
중첩 범위(Nested Scopes)에서 선언된 변수의 가시성은 한정되어 있다 ... 73
디버거에서 바뀐 점 ... 74
Edit and Continue 기능이 없다 ... 74
에러 발생 후에는 계속 진행할 수 없다 ... 75
중단 모드에서는 다시 그려지지 않는다 ... 75
결론 ... 76
Chapter 3. 업그레이드 옵션
업그레이드는 필수가 아닌 선택 ... 78
업그레이드하지 않는 경우 ... 78
부분적인 업그레이드를 하는 경우 ... 79
완전히 업그레이드시키는 경우 ... 80
상호 연동성을 부여한 업그레이드 ... 80
업그레이드 마법사의 역할 ... 81
업그레이드 보고서 ... 81
테스트 ... 82
Visual Basic 6 이전 버전에서의 업그레이드 ... 83
업그레이드할 프로젝트 선택 ... 84
장점 평가하기 ... 85
업그레이드에 필요한 요소 평가하기 ... 90
업그레이드 계획 만들기 ... 93
결론 ... 94
Chapter 4. 프로젝트를 Visual Basic .NET으로 업그레이드하기 위한 준비
왜 변경해야 하는가? ... 96
레거시 코드를 간결하게 만든다 ... 96
VarPtr, Deflnt와 사라지 사라진 것들 ... 97
DAO와 RDO 데이터 바인딩 ... 98
좋은 Visual Basic 6 코딩 습관 ... 99
Variant와 변수 ... 99
추상화(Abstraction) ... 101
얼리 바인딩 vs. 레이트 바인딩 vs. 소프트 바인딩 ... 105
Null과 Empty에 대하여 주의하자 ... 110
묵시적인 객체 인스턴스화(Instantiation) ... 111
결론 ... 115
Part 2. 애플리케이션 업그레이드
Chapter 5. 첫 번째 업그레이드
메모 ... 118
업그레이드 연습 ... 120
어떤 일이 일어났는가? ... 126
개발 언어의 변화 ... 130
프로젝트의 다른 파일들 ... 136
프로젝트 그룹 업그레이드하기 ... 138
커맨드 라인을 사용하여 업그레이드하기 ... 142
결론 ... 144
Chapter 6. Visual Basic .NET에서의 일반적인 작업
Visual Basic .NET에서의 작업에 대한 가이드 ... 146
Visual Basic .NET 프로젝트 만들기 ... 147
Visual Basic .NET IDE 배우기 ... 149
프로젝트 실행하기 ... 151
디버깅에 대한 간단한 설명 ... 152
그 밖의 항목들 ... 154
빌드 에러 처리하기 ... 154
작업 목록 사용하기 ... 155
중단점(Breakpoint) 사용하기 ... 156
참조(References) ... 156
문제를 해결하는 기법 ... 158
System.Diagnostics 라이브러리 사용하기 ... 158
CorDbg 사용하기 ... 159
복잡한 표현식을 간단하게 만들기 ... 160
결론 ... 161
Chapter 7. 업그레이드 마법사의 기능들
업그레이드 철학 ... 164
그건 당신 코드야 ... 164
동작만 하게 만들어 ... 165
호환성 라이브러리(Compatibility Library) ... 166
업그레이드 마법사의 능력과 한계 ... 166
마법사의 방법론 ... 166
프로젝트 업그레이드 ... 169
폼과 고유 컨트롤 ... 175
ActiveX 컨트롤과 ActiveX 참조 ... 185
Visual Basic 코드 ... 189
전역 객체(Global Objects) ... 196
클래스 모듈과 사용자 컨트롤 ... 196
데이터 액세스용 객체 ... 198
디자이너 ... 199
결론 ... 199
Chapter 8. 에러, 경고, 문제들
다양한 종류의 EWI ... 206
업그레이드 문제 ... 206
Upgrade ToDo ... 207
런타임 경고 ... 208
디자인 문제 ... 209
업그레이드 노트와 전역적 경고 ... 210
업그레이드 보고서 이해하기 ... 210
수정 시간 예측하기 ... 212
EWI 사용하기 ... 214
다양한 업그레이드 EWI ... 215
업그레이드 문제 ... 216
ToDo 항목 업그레이드 ... 218
UPGRADE_WARNING ... 219
디자인 에러 ... 222
전역적 경고(Global Warnings) ... 224
업그레이드 노트(Upgrade Notes) ... 225
어떤 문제가 탐지되지 않는가? ... 226
결론 ... 229
Chapter 9. Visual Basic 6과 Visual Basic .NET 사용하기 : COM Interop
COM Interop이 활약하는 부분 ... 233
ActiveX 컨트롤 ... 234
.NET 클라이언트와 COM 서버 컴포넌트 간의 통신 ... 234
COM 클라이언트와 .NET 서버 컴포넌트 간의 통신 ... 234
Visual Basic 6 클라이언트/서버 애플리케이션 업그레이드하기 ... 235
COM 서버와 통신하는 .NET 클라이언트 만들기 ... 237
Visual Basic .NET 클라이언트와 Visual Basic 6 서버 간의 디버깅 ... 239
VB 6 프로젝트가 Visual Studio .NET에서 디버깅될 수 있도록 준비하기 ... 239
VB 6 클라이언트가 VB .NET 컴포넌트를 호출할 수 있도록 공개하기 ... 242
Visual Basic 6 클라이언트와 .NET 서버 간을 디버깅하기 ... 246
이제 전부 시도해보자 ... 247
COM을 .NET과 교체하기 : 이진형 호환성 ... 248
간접 교체 모델 ... 249
Visual Basic .NET 클래스에서 이진형 호환성을 가능하게 만들기 ... 250
결론 ... 256
Part 3. 프로젝트 동작하게 만들기
Chapter 10. 10가지 일반적인 업그레이드 문제들
기본 속성들 ... 260
COM 객체에서의 AddItem과 ToString ... 263
수명 결정과 가비지 컬렉션 ... 265
가능한 한 원하는 시기로 수명 결정하기 ... 268
일반(Generic) 객체들(Control/Form/Screen) ... 268
Dim...As New ... 270
Sub Main(또는 Default Form) ... 272
폰트의 차이 ... 273
부적절한 상수(Bad Constants) ... 275
드래그 앤 드롭 ... 277
Visual Basic 6에서의 드래그 앤 드롭 ... 277
Visual Basic .NET에서의 드래그 앤 드롭 ... 280
컬렉션 클래스(Collection Class) ... 284
결론 ... 288
Chapter 11. 개발 언어와 관련된 문제 해결하기
개발 언어 요소들 ... 290
If...End If 프리 컴파일문 ... 291
상수와 상수 수식 ... 291
제어문의 흐름(Control Flow) ... 295
파일 함수 ... 301
형과 형 연산 ... 309
Object가 Variant를 대체 ... 309
배열 ... 314
구조체(Structures) ... 319
코드를 스레드 안정형으로 만들기 ... 323
Windows API ... 327
형 변경 ... 327
As Any는 더 이상 지원되지 않는다 ... 328
AddressOf 변경 ... 330
사용자 정의 형을 API 함수에 전달하기 ... 335
ObjPtr과 StrPtr은 지원되지 않는다 ... 339
결론 ... 341
Chapter 12. 폼 문제 해결하기
폼 구조상의 유사점 ... 344
일반적인 문제들 ... 346
기술의 차이 ... 349
폼과 관련된 문제 ... 355
이벤트 발생의 차이점 ... 355
기본 폼 : DefInstance ... 359
애플리케이션의 수명과 폼 ... 361
MDI 폼 ... 366
결론 ... 367
Chapter 13. ActiveX 컨트롤과 컴포넌트 업그레이드하기
ActiveX 컨트롤을 사용할 수 있다 ... 370
ActiveX 업그레이드 전략 ... 371
ActiveX 컨트롤 호스팅의 제약 사항 ... 371
ActiveX .NET 컨트롤 : 최상의 선택 ... 374
ActiveX Interop Ax 랩퍼(Wrapper) : 윈도우 폼 랩퍼 ... 374
속성과 파라미터 형의 매핑 ... 376
표준 컴포넌트 랩퍼와 ActiveX 컨트롤 하위객체(Subobject) ... 379
형 변환이 필요한 일반적 예외 사항 ... 381
이름의 충돌(Name Collision) ... 383
이벤트 이름 충돌 ... 384
.NET에서 ActiveX 컴포넌트 사용하기 ... 384
ByRef에 문제가 있는 경우 ... 384
컬렉션이 컬렉션이 아닌 경우 ... 387
Nonzero-Bound 배열 ... 388
형 별칭(Alias Type)은 지원되지 않는다 ... 390
모듈 메서드는 지원되지 않는다 ... 390
결론 ... 392
Chapter 14. 데이터 액세스 문제 해결하기
Visual Basic의 데이터 액세스 ... 394
코드 ... 394
데이터 바인딩 ... 396
ADO Data Environment ... 397
업그레이드되지 않는 컴포넌트 ... 397
미래는 ADO.NET ... 398
데이터 액세스 코드에 대한 일반적인 문제들 ... 399
DAO와 RDO 모듈 메서드 ... 399
ADO 버전 2.7 ... 401
이벤트에서의 에러 ... 401
RDO 연결 ... 404
Null, vbNullString, vbNullChar ... 406
ADO Data Environment ... 407
Dispose 호출하기 ... 408
Initialize 이벤트 ... 408
Microsoft Access 데이터베이스의 커서위치 ... 408
ADO 데이터 바인딩 ... 409
ADO Data 컨트롤의 컨트롤 배열 ... 411
결론 ... 411
Chapter 15. 재디자인이 필요한 문제들
OLE Container 컨트롤 대체하기 ... 414
페인팅 함수 대체하기 ... 419
클립보드 코드 다시 작성하기 ... 423
컨트롤 컬렉션 사용하기 ... 425
폼 컬렉션 사용하기 ... 428
PrintForm 코드 업그레이드하기 ... 431
속성 페이지 대체하기 ... 433
ObjPtr, VarPtr, StrPtr 제거하기 ... 436
결론 ... 439
Chapter 16. COM+ 컴포넌트 업그레이드하기
COM+ 애플리케이션 형 ... 442
Visual Basic .NET에서 COM+ 사용하기 ... 443
Visual Basic .NET에서의 COM+ 요구사항 ... 445
ServicedComponent 클래스에서 상속받기 ... 446
특성(Attribute) 다루기 ... 447
어셈블리에 대한 강력한 이름(Strong Name) 만들기 ... 453
COM+ 애플리케이션 등록하기 ... 454
COM+ 컴포넌트 업그레이드하기 ... 457
.NET과 COM 컴포넌트가 연동되게 만들기 ... 462
결론 ... 462
Chapter 17. VB 응용 프로그램 마법사 프로젝트 업그레이드하기
App.Revision ... 468
frmAbout 폼 ... 470
frmLogin 폼 ... 471
frmMain 폼 ... 472
API Declare 명령문 ... 472
mnuHelpAbout_Click 이벤트 프로시저 ... 473
App.HelpFile ... 474
MDI 프로젝트의 ActiveMdiChild ... 475
frmMain_Closed의 폼 컬렉션 ... 478
MDI 프로젝트의 클립보드 ... 479
frmSplash 폼 ... 481
frmBrowser 폼 ... 484
데이터 폼 ... 485
Module 1 모듈 ... 485
LoadResStrings 메서드 ... 485
결론 ... 488
Part 4. 가치를 높이는 기법
Chapter 18. 애플리케이션의 가치 높이기
예제 애플리케이션에 대한 설명 ... 492
새로운 파일 함수 ... 493
디렉터리의 내용 읽기 ... 494
DLL에서 모든 폼 발견하기 ... 495
다이나믹하게 폼 로딩하기 ... 496
파일 읽고 쓰기 ... 497
다이나믹 속성 사용하기 ... 498
새로운 윈도우 기능 ... 500
레지스트리에 접속하기 ... 500
컨트롤 엥커(Control Anchoring) 설정 ... 503
그랙픽 기능 ... 503
Windows XP 스타일의 컨트롤 ... 508
XCopy 전개 ... 510
결론 ... 512
Chapter 19. ActiveX 컨트롤을 윈도우 폼 컨트롤로 바꾸기
컨트롤 업그레이드의 장점 ... 514
100% .NET 호환성 ... 514
버전 부여 기능의 강화 ... 515
더 쉬워진 전개 ... 516
컨트롤을 대체하는 과정 ... 516
컨트롤을 수작업으로 업그레이드하기 ... 517
Visual Basic 6 ActiveX 컨트롤의 매핑 ... 525
ActiveX 컨트롤 vs. 윈도우 폼 컨트롤 ... 525
결론 ... 529
Chapter 20. ADO를 ADO.NET으로 전환하기
ADO 프로그래머를 위한 ADO.NET ... 532
ADO.NET의 소개 ... 532
DataSet ... 534
ADO 코드를 Visual Basic .NET 애플리케이션과 통합하기 ... 536
ADO Recordset을 .NET 컨트롤에 연결하기 ... 536
ADO에서 XML 웹 서비스 사용하기 ... 538
ADO 객체를 ADO.NET에 매핑하기 ... 540
Connection과 Command 객체 ... 541
Recordset ... 543
DataView 사용하기 ... 546
데이터 바인딩 ... 547
윈도우 폼 컨트롤에 연결하기 ... 547
성능에 대한 설명 ... 549
결론 ... 552
Chapter 21. 분산형 애플리케이션 업그레이드하기
느슨하게 연결된 애플리케이션 vs. 밀접하게 연결된 애플리케이션 ... 555
메서드 호출(Invocation)의 부하 ... 555
컴포넌트화(Componentization)의 논리적 조직 ... 558
.NET의 분산형 기술 ... 559
XML 웹 서비스 ... 559
간단한 XML 웹 서비스 만들기 ... 560
기존의 애플리케이션에서 웹 서비스 지원하기 ... 566
리모팅(Remoting) ... 573
Simple Remoting 예제 ... 574
리모팅을 위한 아키텍처 ... 578
분산형 COM+ 애플리케이션 ... 584
COM+와 리모팅 ... 585
SOAP 서비스 사용하기 ... 585
.NET에서의 COM+ 애플리케이션 프록시 ... 587
결론 ... 588
Part 5. Appendix
Appendix A. 객체 매핑 참조
Appendix B. 함수 매핑 참조
INDEX ... 662
더보기 닫기