티스토리 뷰

반응형
Washington State Ferry
Raven

위그림은 WPF SDK에 포함되어 있는 기본 클립아트입니다.



clipXart02.zip 파일을 다운로드 받아 보세요. 아래 두 파일이 있습니다.
WashingtonStateFerry.xaml
Raven.xaml

WPF 응용프로그램에서 XAML을 어떻게 사용하는가.
XAML (Extensible Application Markup Language) 는 오브젝트단위 언어라서
UI를 짤때도, 로직을 짤때도, 하다못해 텍스트박스나, 메모장 같은거에도 많이 쓰일 겁니다.
근데, XAML은 대부분 디자이너나 전용개발툴이 만들게 되지요.

XAML파일은 WPF에 쓰이기 전에 일단 중간 단계인 BAML로 번역이 됩니다.
BAML은 XAML 소스의 속성등을 정의하고, 객체 계층으로 나누는 바이너리 개념입니다.
따라서 BAML 파일로 미리 분석되어 쪼개지면 WPF가 런타임시 xml로 파싱하는 시간, 요소의 유효성 검사, 속성값 설정 시간 등등을 로딩할 때 런타임에서 줄일 수가 있게 된답니다.

XAML to BAML diagram

WPF프로젝트에서 빌드를 해보면 XAML파일마다 리소스파일로 BAML파일이 생성되어 있을 것입니다.
기본적으로 App.xaml을 포함하고 있으나 <Application.Resources> 가 정의되어 있어야만 합니다.
솔루션 탐색기 툴바에서 "파일 전체 보기"를 클릭하면 BAML 파일을 볼 수 있습니다만 바이너리 방식으로 돼 있어서 보기에는 편하지 않을 겁니다.

VS Solution Explore


자 아래에 보시면 파일 사이즈를 볼 수 있습니다.
Ferry.xaml 과 Ferry.baml 과 Ferry_Windows_App.exe

Files sizes of XAML, BAML, and .exe

보통 BAML파일이 XAML파일 보다 대략 30%정도 용량이 작게 나옵니다.
그 이유는 xaml에서 연결지어야 하는 대상등 정의해 놓은 속성들중에 공통적인 것은 exe파일이 가져가고 나머지 꼭필요한 내용을 baml파일에 모아두기 때문이지요.

- Lorin 씀

반응형
댓글