RAD Studio 2007은 C++ 애플리케이션을 개발하는 데 있어 중요한 새로운 기능들을 제공합니다.
C++빌더 2007
다음과 같은 핵심 기능들이 새로 도입되거나 현저히 변경되었습니다.
새로운 MSBuild 빌드 엔진 도입: C++ 프로젝트를 빌드할 때 MSBuild가 빌드 프로세스를 수행합니다. 프로젝트 파일의 구조도 XML로 변경되었으며 MSBuild에 필요한 옵션들을 포함합니다. 프로젝트 파일의 확장자는 .cbproj로 바뀌었습니다. MSBuild 명령 문법을 이용하여 컴맨드라인에서 프로젝트를 빌드할 수 있습니다.
빌드 순서 변경: MSBuild는 이전에 사용자가 순서를 지정할 수 있었던 것과는 달리 파일 타입(확장자)에 따라 파일들을 빌드합니다. 새로운 빌드 순서는 델파이(.pas), C/C++ (.c/.cpp), 어셈블러 (.asm), 그리고 리소스 (.rc) 입니다. 각 폴더 혹은 가상 폴더 내에서 파일들은 각각의 파일 타입에 따른 순서로 빌드됩니다.
확장성 있는 빌드 설정: 빌드 설정(build configuration)도 변경되었습니다. 빌드 설정은 Project | Options의 여러 페이지에서 설정하는 옵션들을 포함합니다. 빌드 설정은 컴파일러/링커/MSBuild 등의 빌드 툴들을 위한 컴맨드라인 옵션들을 저장합니다. 여러분은 자신만의 설정을 만들 수 있으며, 세 가지 디폴트 설정이 있습니다.(Base, Debug, Release)
새 Build Configuration Manager에서 빌드 설정을 활성화:Project | Configuration Manager를 선택하여 선택한 프로젝트(들)에 대해 활성화할 빌드 설정을 선택할 수 있습니다. Configuration Manager는 C++ 프로젝트에 대해 활성 설정을 지정하는 기존의 방법을 대체합니다.
프로젝트 옵션 다이얼로그가 재구성되었습니다.Project | Options 다이얼로그에 새로운 페이지들이 추가되었으며 옵션들을 더 잘 구성하기 위해 일부 기존의 페이지들이 이름이 바뀌었습니다. 새 옵션들도 추가되었는데, 예를 들어 -Vb 옵션은 표준에서 더 이상 지원되지 않는 C++ 구문을 지원합니다. 새 Project Properties 페이지는 C++ 컴파일러가 라이브러리 패스를 관리할지, 패키지 임포트를 검증할지, 헤더 의존성을 보여줄지, 자동으로 의존성 체크를 할지 등을 설정할 수 있게 해줍니다.
프로젝트 옵션을 통합할 수 있습니다. 일부 프로젝트 옵션들은 Merge 체크 박스를 가지고 있습니다. 여기에 체크하면 IDE는 현재의 빌드 설정의 직접 조상의 옵션 값들을 포함합니다. 현재 설정의 옵션들은 실제로 바뀌지 않습니다.
새로운 이름 지정 옵션 셋:Project | Options 다이얼로그의 빌드 관련 페이지들에서 이름을 가진 옵션 셋을 만들고 적용할 수 있습니다. 이름을 가진 옵션 셋은 .optset 확장자를 가진 파일로 저장됩니다.
빌드 이벤트를 지정할 수 있습니다. 빌드 과정의 특정 시점에 실행될 명령을 지정할 수 있습니다(pre-링크 이벤트는 새로 추가되었으며, pre-빌드 및 post-빌드 이벤트는 이전 버전에서 존재했습니다). 프로젝트 매니저에서 빌드 가능한 파일을 오른쪽 클릭한 후 Build Events를 선택하십시오.
.targets 파일을 생성하고 프로젝트에 추가할 수 있습니다. .targets 파일은 MSBuild 스크립트를 포함할 수 있는 XML 파일입니다. 이 스크립트에는 실행할 작업 리스트와 같은 것들이 지정될 수 있습니다.
데모 코드의 위치가 변경되었습니다. 데모 코드는 이제 MyDocuments\RAD Studio\Demos 디렉토리에 있습니다. 데모 코드를 Program Files 디렉토리 외의 위치로 이동한 것은 마이크로소프트 비스타의 제한 때문입니다.
델파이로 C++ 패키지를 컴파일할 수 있습니다. C++빌더는 델파이 소스 파일을 포함하는 디자인타임 패키지의 컴파일을 지원합니다. 하지만 그 델파이 소스들 중 하나가 DesignIDE100.bpl에 존재하는 DesignIntf, DesignEditors, ToolsAPI 같은 IDE에서 제공하는 디자인타임 유닛을 참조하면 C++빌더 패키지에서 해당 레퍼런스가 해석될 수 있다는 것을 확실히 하기 위한 절차가 필요합니다.
C++ 유닛 테스트
유닛 테스트 지원은 DUnit 테스트 프레임워크로 통합되어 있습니다. DUnit 프레임워크는 JUnit 테스트 프레임워크에 기반한 것으로, 많은 동일 기능들을 공유합니다.
테스트 프로젝트의 뼈대 템플릿과 setup 및 teardown 메소드, 기본 테스트들을 빠르게 생성하기 위해 C++빌더 유닛 테스트 위저드를 사용할 수 있습니다. 그런 후 여러분의 특정 메소드를 테스트하기 위해 특정 테스트 로직을 추가하여 템플릿을 수정할 수 있습니다.
테스트를 실행하기 위해 콘솔 테스트 러너 혹은 DUnit GUI 테스트 러너를 실행할 수 있습니다. 콘솔 테스트 러너는 테스트 결과를 콘솔에 내놓습니다. DUnit GUI 테스트 러너는 성공 혹은 실패를 표시하는 컬러로 구분된 결과와 함께 테스트 결과를 GUI 윈도우에 인터랙티브하게 보여줍니다.
C++빌더 웹 서비스 지원 강화
C++빌더 웹 서비스 지원은 이제 다음과 같은 기능들을 포함합니다.
unbounded elements
optional elements
nullable elements
WSDL and schema that import external schemas
이런 개선으로 C++빌더 웹 서비스 지원은 델파이의 최신 수준을 지원하여 여러분의 애플리케이션이 eBay, Amazon, MapPoint같은 견고한 웹 서비스와 연동할 수 있게 해줍니다.
IDE
다음과 같은 핵심 기능들이 IDE에 새로 도입되거나 현저히 변경되었습니다.
비스타 및 XP 테마: IDE는 이제 윈도우 비스타 및 XP 테마를 지원합니다. 테마 지원은 기본적으로 켜져 있지만 IDE나 각각의 애플리케이션에 대해 테마를 비활성시킬 수 있습니다.
중복된 파일 이름: 이제 한 프로젝트에서 같은 이름을 가진 여러 파일들을 포함할 수 있습니다. 예를 들면 프로젝트에 Common\source1.cpp와 Product\source1.cpp 모두 포함시킬 수 있습니다. 혼란이 일어나지 않도록 IDE가 오브젝트 파일의 생성을 관리하며, 두 파일의 오브젝트 모두 프로젝트 빌드에 사용됩니다.
새 메모리 매니저 문서화: BDS 2006에서 포함된 새 메모리 매니저가 RAD Studio 2007 (C++빌더 2007) 릴리즈에서 완전히 문서화되었습니다. 헬프에는 다음과 같은 내용들이 포함되어 있습니다. 메모리 매니저의 설정, 메모리 매니저 모니터링, 메모리 매니저를 공유하기 위해 ShareMem 및 SimpleShareMem 사용하기. 새 메모리 매니저 루틴들과 변수들은 이 문서의 VCL 아래에 리스트되어 있습니다.
프로젝트 매니저에서 복수 선택 가능:Project Manager에서 CTRL 키를 누르고 파일을 여러 개 선택하여 Open, Save, Save As, Remove from Project 등의 컨텍스트 메뉴 명령을 한꺼번에 실행할 수 있습니다.
새 파일 브라우저:View | File Browser 메뉴를 선택하여 File Browser를 실행하여 기본적인 파일 명령이나 파일의 SVN 상태를 볼 수 있습니다.
스트럭쳐 뷰의 새 툴바: C++에서만 사용 가능한 새 툴바로 알파벳 순으로 정렬, 타입별 그룹, 타입 보기, 비저빌리티 보기 등의 기능을 수행할 수 있습니다.
프로젝트 매니저의 버추얼 폴더: 트리의 아이템들 사이에 가상의 관계를 만들 수 있습니다. 버추얼 폴더를 만들어 빌드 순서를 조정할 수 있습니다.
디버거
다음과 같은 핵심 기능들이 새로 도입되거나 현저히 변경되었습니다.
이벤트 로그의 스크롤 방지:Tools | Options | Debugger Options | Event Log 페이지에 이벤트 로그의 스크롤을 막는 새 옵션이 생겼습니다.
CPU 윈도우: 이제 Disassembly, CPU Stack, Registers 영역 등 CPU 윈도우의 각각의 영역을 열 수 있습니다. 이런 CPU 윈도우의 단일 영역은 도킹이 가능하므로 각 영역을 드래그해서 여러분이 원하는 IDE의 어디에든 도킹할 수 있습니다. 또한 CPU 윈도우는 디버그 세션을 끝내면 자동으로 닫히며, Disassembly 영역은 두 가지 새 옵션을 가지게 되었습니다. (Show Opcodes 및 Show Addresses).
Call Stack 윈도우: 이제 특정 프레임에 브레이크포인트를 설정할 수 있습니다.
사용자가 지정하지 않은 브레이크포인트 무시: 이제 IDE에서 명확하게 설정하지 않은 브레이크포인트를 디버거가 무시하도록 지정할 수 있습니다.
디버그 소스 패스: 디버그를 위한 소스 패스는 이제 Project | Options | Debugger 페이지에서 지정하는 전역 설정이 되었습니다.
새 툴바 버튼: Notify on Language Exceptions 명령은 이제 View | Toolbars | Customize | Commands | Categories | Run 페이지에서 아이콘으로 표시됩니다. 이 아이콘을 툴바로 드래그하여 빠르게 사용할 수 있습니다.
투명한 툴팁: 디버거 이밸류에이터 툴팁을 투명하게 하려면 툴팁이 나타날 때 CTRL 키를 누르면 됩니다. 툴팁을 투몀하게 하면 툴팁 뒤의 화면을 읽을 수 있게 됩니다.
투게더 모델링
C++ 언어에 대한 투게더 모델링 툴 지원이 새로 추가되었습니다.
제한적인 투게더 모델링 지원: C++빌더 2007에서 IDE에 완전히 통합된 투게더 모델링 툴은 코드 비주얼라이제이션(읽기 전용), 문서 생성, 다이어그램 프린트 기능만을 제공합니다. 하지만 온라인 헬프에서는 투게더 기능의 전체가 설명되어 있습니다.
C++ 클래스 다이어그램 (코드 비주얼라이제이션): C++ 클래스 다이어그램은 읽기 전용 모드로만 동작합니다. 여러분의 C++ 프로젝트에서 다이어그램을 디자인할 수 있지만 Model View에서 클래스, 인터페이스 등을 생성할 수는 없습니다.
디자인 다이어그램: 디자인 다이어그램의 전체 기능은 엔터프라이즈 에디션에서만 지원됩니다. 여기에는 시퀀스 다이어그램, 컬레버레이션(collaboration) 다이어그램, 스테이트 차트, 디플로이먼트 다이어그램, 유즈 케이스 다이어그램, 액티비티 다이어그램, 컴포넌트 다이어그램 등이 여기에 해당됩니다.
다이어그램 프린트 및 문서 생성: 프로페셔널과 엔터프라이즈 에디션 모두 다이어그램 프린트를 지원합니다. 또한 엔터프라이즈 에디션에서는 문서 생성도 지원합니다.
노트: |
제품의 특정 에디션에서만 헬프에서 설명하는 투게더의 전체 기능을 지원합니다. 현재 릴리즈에서는 제한된 기능들만 포함하고 있습니다. |
데이터베이스
C++빌더 2007에서는 데이터베이스 애플리케이션 개발 지원을 개선하기 위한 많은 변경이 이루어졌습니다.
dbExpress
유니코드 지원이 오라클, Interbase, MySQL dbExpress 드라이버에 추가되었습니다.
새 드라이버 클라이언트가 Interbase 2007과 MySQL 4.1 및 5 버전에 대해 추가되었습니다.
새 dbExpress 프레임워크가 도입되었습니다. 기존의 드라이버와 인터페이스하거나 dbExpress 프레임워크의 추상 클래스들을 확장하여 새 드라이버를 개발하기 위해 이 프레임워크를 사용할 수 있습니다. 이 프레임워크는 네이티브 및 매니지드 애플리케이션에서 직접 사용될 수 있습니다.
델리게이트 드라이버는 애플리케이션과 실제 드라이버 사이의 드라이버입니다. 델리게이트 드라이버는 dbExpress 4 프레임워크의 모든 퍼블릭 메소드 및 프로퍼티의 처리 전 혹은 후에 특정 작업을 할 수 있게 해줍니다. 델리게이트 드라이버는 연결 풀링, 드라이버 프로파일링, 추적, 감사에 유용합니다. 예제 델리게이트 드라이버가 제공됩니다.
dbExpress VCL 컴포넌트의 API가 약간 변경되었습니다. 대부분의 애플리케이션은 dbExpress VCL의 변경에 영향을 받지 않습니다. 하지만 몇몇 메소드, 프로퍼티, 이벤트, 상수, enum 들은 제거되거나 유사 기능으로 대체되었습니다.
네이티브 및 매니지드 애플리케이션 모두를 위한 프레임워크의 위에 레이어가 되는 dbExpress VCL 컴포넌트를 이용할 수 있습니다. TSQLConnection 클래스(메소드 변경), TSQLDataSet(새 프로퍼티), 데이터 구조(일부 제거되거나 대체됨) 등 VCL 컴포넌트들에 몇가지 소소한 API 변경이 있었습니다.
dbExpress 드라이버 프레임워크:
델파이 언어로 완전히 새로 작성되었으며 드라이버를 델파이로 개발할 수 있게 해줍니다.
포인터 대신 강력하게 타입된 데이터 액세스를 이용합니다. 예로, 프레임워크는 문자열에 대해 포인터 대신 String 타입을 이용합니다.
단일 소스 기반입니다. 이것은 단일 소스로 네이티브 DCC32 혹은 매니지드 DCCIL 컴파일러로 컴파일 가능하다는 것을 의미합니다.
드라이버, 연결, 명령, 리더 등을 위해 추상 베이스 클래스들만을 사용합니다.
에러 코드를 리턴하는 대신 예외 기반의 에러 처리를 이용합니다.
VCL과 RTL
AJAX: C++빌더 2007은 AJAX 기반의 VCL for the Web 개발을 지원합니다.
마이크로소프트 비스타 호환성: C++빌더 2007은 비스타 OS의 룩&필과 호환되는 컴포넌트, 클래스, 메소드, 프로퍼티들을 제공합니다.
새 VCL 컴포넌트들: 다음의 새 클래스들이 VCL에 추가되었습니다.
TFileOpenDialog
TFileSaveDialog
TTaskDialog
TCustomFileDialog
TCustomFileOpenDialog
TCustomFileSaveDialog
TCustomTaskDialog
TFavoriteLinkItem
TFavoriteLinkItems
TFavoriteLinkItemsEnumerator
TFileTypeItem
TFileTypeItems
TTaskDialogBaseButtonItem
TTaskDialogButtonItem
TTaskDialogButtons
TTaskDialogButtonsEnumerator
TTaskDialogProgressBar
TTaskDialogRadioButtonItem
새 메모리 매니저 루틴 및 변수들: 다음과 같은 새 시스템 루틴들과 변수들이 메모리 매니저를 지원하기 위해 추가되었습니다.
AttemptToUseSharedMemoryManager
GetMemoryManagerState
GetMemoryMap
GetMinimumBlockAlignment
RegisterExpectedMemoryLeak
SetMinimumBlockAlignment
ShareMemoryManager
UnregisterExpectedMemoryLeak
NeverSleepOnMMThreadContention
ReportMemoryLeakOnShutdown