찰스 페졸드의
Programming Windows, 6판
: C#과 XAML을 이용한 윈도우 앱 개발
저자 찰스 페졸드
역자 여동준, 윤병걸, 이길복, 최정우
출간예정일 2013년 12월 25일 (수)
정가 52,000원
페이지 1,261쪽
판형 190 * 245
ISBN 978-89-94774-55-8 (93000)
원서정보 Programming Windows, Sixth Edition: Writing Windows 8 Apps with C# and XAML
책 소개
찰스 페졸드의 C#과 XAML을 사용한 윈도우 앱 개발
새로운 윈도우와 발맞추어, 이번 6판에서는 프로그래밍과 사용자 경험의 장을 완전히 새로 재구성했다. 전설적인 개발자의 『찰스 페졸드의 Programming Windows, 6판』과 함께 이미 알고 있는 C# 기술과 새로운 윈도우 런타임을 이용한 터치 기반의 윈도우 앱을 만드는 법을 배워보자.
기본을 마스터한다
- 코드와 XAML을 이용해 객체를 생성하고 초기화한다
- 탭과 같은 사용자 입력 이벤트를 다룬다
- 동적 레이아웃을 다루고 사용한다
- 컨트롤의 외양을 시각적으로 재정의한다
- 윈도우 런타임 라이브러리를 생성한다
- 데이터 바인딩과 제어를 위해 MVVM을 사용한다
- 비동기 메서드를 사용하고 스스로 만든다
- 애니메이션 전환기법을 익히고 2D, 3D 효과를 생성한다
- 해상도, 스케일링, 네비게이션을 다룬다
기술과 앱을 확장한다
- 포인터, 조작, 탭, 홀딩 등의 이벤트를 다룬다
- 비트맵과 리치텍스트를 다룬다
- GPS와 방향센서를 사용한다
- Win32*와 DirectX* 기능들을 사용한다
- 공유, 검색, 인쇄 기능을 활성화한다
제6판에서는
- 윈도우 8을 위해 완전히 새로 작성
- C#과 XAML, 윈도우 런타임을 활용한 앱개발에 초점
- Part I 기본편에서 기본적인 스킬을 배울 수 있음
- Part II 고급편에서 확장된 윈도우 앱 개발 기술을 다룸
- C#과 C++로 샘플코드를 제공
독자 대상
이 책을 집필하면서 필자는 여러분, 즉 독자에 대한 몇 가지 가정을 했다. 첫 번째는 여러분이 C# 언어를 다루는 데 있어서 친숙하다는 점이다. 만약 그렇지 않다면 C# 튜토리얼을 병행하면서 보충하기를 바란다.
두 번째는 여러분이 가장 기본적인 XML 문법에 대해서 알고 있다는 가정이다. 그 이유는 XAML 이 결국 XML에 기반을 두고 있기 때문이다. 하지만 여러분이 XAML과 XAML 기반의 개발 인터 페이스와는 친숙하지 않다고 가정한다.
샘플코드 다운로드
http://examples.oreilly.com/9780735671768-files/
이 책에서 중요하게 다루는 사항들
이 책에서는 윈도우 스토어 용도의 응용 프로그램을 개발하는 데 초점을 맞출 것이다. 이미 충분히 많은 다른 책들이 Win32 데스크톱 응용 프로그램 개발에 대해 소개를 하고 있다. 물론 가끔 Win32 API와 데스크톱 응용 프로그래밍 기법을 참고하겠지만, 이 책은 순수하게 새로운 윈도우8 응용 프로그램의 개발 방법을 알리는 데 그 목적이 있다.
이러한 응용 프로그램을 개발하기 위해 새로운 객체 지향적인 API가 소개되었는데, 이름하여 윈도우 런타임 혹은 WinRT라고 불린다. (ARM 프로세서 기반에서 작동하는 윈도우 8을 지칭하는 윈도우 RT와 WinRT를 혼동하지 말자.) 내부적으로 윈도우 런타임은 COM(컴포넌트 객체 모델)을 기반으로 하고 있으며, 인터페이스는 메타데이타 파일을 통해 외부로 노출된다. 여기서 언급한 메타데이타는 .winmd 확장자를 가지며 /Windows/System32/WinMetadata 디렉터리에 위치한다. 따라서 외부적으로 봤을 때에는 상당히 객체 지향적이다.
대부분의 윈도우 8 응용 프로그램들은 코드뿐만 아니라 마크업을 통해서도 개발된다. 이 마크업은 산업 표준인 하이퍼텍스트 마크업 언어(HTML) 또는 마이크로소프트의 확장 가능한 마크업 언어(XAML)를 지원한다. 응용 프로그램을 코드와 마크업으로 구분하는 것의 한 가지 장점은 잠재적으로 응용 프로그램의 개발 과정에서 프로그래머와 디자이너의 역할을 분리할 수 있다는 것이다.
현재 윈도우 8 응용 프로그램을 개발하는 방법에는 세 가지 핵심 선택 사항들이 있다. 각각의 선택 사항들은 프로그래밍 언어와 마크업 언어로 구성되어 있다.
- C++과 XAML
- C# 또는 비주얼 베이직과 XAML
- 자바스크립트와 HTML5
윈도우 런타임은 모든 세 가지의 선택 사항에 대해 공통적이지만 특정 언어에 적합한 다른 프로그래밍 인터페이스에 의해서도 보충할 수 있다. 물론 단일 응용 프로그램 내에서 여러 개의 언어를 섞어서 사용할 수는 없지만, 윈도우 런타임 컴포넌트라는 라이브러리를 생성하여 자체적인 .winmd 파일을 갖고 다른 윈도우 8 언어들이 접근할 수 있게끔 해준다.
수많은 고민을 하고 (비록 고통스러웠지만) 필자는 이 책의 거의 대부분을 C#과 XAML에 집중하여 소개하기로 결정했다. 거의 10년 가량 필자는 개발 및 디버깅에 있어서 매니지드 언어가 갖는 장점에 대해 확신을 가졌으며, 또한 C#이 윈도우 런타임을 사용하기에 가장 적합한 언어라고 느꼈기 때문이다. 한 가지 소망하는 바는 C++ 프로그래머들이 C# 언어를 쉽게 이해하고 이 책으로부터 많은 부분을 얻을 수 있기를 바란다.
또한 필자는 한 가지 언어에 집중하는 것이 동일한 구조를 여러 개의 언어로 소개하는 것보다 훨씬 가치가 있다고 믿는다. 게다가 다른 선택 사항을 사용하여 윈도우 8 응용 프로그램을 작성하는 방법을 소개하는 다른 책들이 충분히 출판되리라 믿어 의심치 않는다.
저자소개
찰스 페졸드
찰스 페졸드는 25년간 윈도우 프로그래밍에 관한 저술을 해왔다. Windows Pioneer 어워드의 수상자인 그는 전통적인 Programming Windows 시리즈의 저자이며 그의 수십권에 달하는 저서들은 많은 호평을 받고 있다.
역자소개
여동준
Exchange와 OCS 기반의 UC 구축 프로젝트를 수행했고, 개발 및 운영 업무를 담당하다가 2012년부터 다수의 Sharepoint 기반의 시스템 개발 프로젝트를 수행했다. 현재 Sharepoint 개발에 전념하고 있으며 IT 기술 전문가 그룹 GoDev의 Windows/Sharepoint 전문가로 활동중이다.
윤병걸
(주)휴즈플로우에서 XAML과 C# 기반으로 진행하는 다수의 프로젝트에 참여했고, 커뮤니티 훈스닷넷에서 2년간 시삽으로 활동하며 다수의 세미나와 강의를 진행했다. 2013년에 마이크로소프트에서 기술 전문가들에게 수여하는 MVP Award를 수상하였으며, 현재는 런던에서 어학연수 중이다.
이길복
2007년 (주)휴즈플로우를 공동 창업하여 CTO를 맡아오고 있다. (주)휴즈플로우를 XAML 기반의 기술인 실버라이트, WPF, 윈도우폰 앱 개발에 전문적인 기업으로 키우는 한편 강연자, 강사로 활동하며, 마이크로소프트에서 수여하는 관련분야의 MVP Award를 2008년부터 6년 연속 수상해왔다.
최정우
(주)이피언스에서 Lotus Domino 개발자로 6년의 경력을 쌓았고 2006년부터 닷넷플랫폼 기반의 각종 개발을 하고 있다. SharePoint Korea 커뮤니티 리더 중의 한 사람이며, SharePoint 분야 MVP를 4년째 수상하고 있다. 현재 SK C&C에 재직중이며, 그룹웨어 구축 프로젝트를 수행하고 있다.
목차
PART I. 기본편
제1장 마크업과 코드
- 첫 번째 프로젝트
- 그래픽을 이용한 인사말
- 다양한 텍스트 처리
- 미디어 파일
- 코드로 대체하기
- 코드로 이미지 다루기
- 페이지조차 없는 응용 프로그램
제2장 XAML 문법
- 코드로 그라데이션 브러쉬 다루기
- 속성 엘리먼트 문법
- Content 속성
- TextBlock의 콘텐츠 속성
- 브러쉬 공유하기
- 리소스는 공유된다
- 벡터 그래픽
- Viewbox로 늘이기
- 스타일
- 데이터 바인딩 맛보기
제3장 기본적인 이벤트 처리
- Tapped 이벤트
- 라우트된 이벤트 처리
- Handled 설정 재정의하기
- 입력, 맞춤, 배경
- 크기와 방향 변경하기
- Run 객체 바인딩
- 타이머와 애니메이션
제4장 패널
- Border 엘리먼트
- Rectangle과 Ellipse
- StackPanel
- 가로로 쌓기
- 바인딩과 컨버터를 쓰는 WhatSize
- ScrollViewer 해결책
- 이상하거나 정상인 레이아웃
- E-Book 만들기
- 더 화려한 StackPanel 아이템들
- UserControl에서 파생하기
- 윈도우 런타임 라이브러리 생성하기
- Wrap으로 대체하기
- Canvas와 연결된 속성
- Z-Index
- Canvas의 기묘함
제5장 컨트롤 상호작용
- 컨트롤과 엘리먼트의 차이
- 범위를 위한 Slider
- Grid
- 방향과 화면비
- Slider와 서식 있는 문자열 컨버터
- 툴팁과 변환
- 슬라이더로 스케치하기
- 다양한 버튼 활용
- 종속속성의 정의
- RadioButton 태그
- 키보드 입력과 TextBox
- 터치와 썸컨트롤
제6장 WinRT와 MVVM
- 간소하고 단순한 MVVM
- 데이터 바인딩 알림
- ColorScroll에 대한 뷰 모델
- 문법적 단축키
- DataContext 속성
- 바인딩과 TextBox
- 버튼과 MVVM
- DelegateCommand 클래스
제7장 비동기성
- 스레드와 사용자 인터페이스
- MessageDialog 사용하기
- 람다 함수로서의 콜백
- 놀라운 await 연산자
- 비동기 작업 취소하기
- 파일 입출력에 대한 접근
- 파일 선택기(File Pickers)와 파일 입출력
- 예외 다루기
- 비동기 호출 통합하기
- 간소화된 파일 입출력
- 응용 프로그램 수명 주기 이슈들
- 여러분의 비동기 메서드
제8장 앱 바와 팝업
- 컨텍스트 메뉴 구현하기
- Popup 대화창
- 앱 바
- 앱 바 버튼 스타일
- Segoe UI Symbol 폰트의 내부
- 앱 바의 CheckBox와 RadioButton
- 메모장을 위한 앱 바
- XamlCruncher 소개
- 응용 프로그램 설정과 뷰 모델들
- XamlCruncher 페이지
- XAML 해석하기
- XAML 파일 입출력
- 설정 대화창
- 윈도우 런타임을 넘어
제9장 애니메이션
- Windows.UI.Xaml.Media.Animation 네임스페이스
- 애니메이션 기초
- 애니메이션 변화 감상
- 기타 더블형 실수 애니메이션
- 연결된 속성 움직이기
- 감속 함수들
- 모든 XAML 애니메이션
- 사용자 정의 클래스 움직이기
- 키 프레임 애니메이션
- Object 애니메이션
- 미리 정의된 애니메이션과 변이
제10장 트랜스폼
- 개요
- 회전(수동과 자동)
- 비주얼 피드백
- 이동
- 트랜스폼 그룹
- 스케일 트랜스폼
- 아날로그 시계 만들기
- 왜곡
- 입장 효과 만들기
- 트랜스폼 수학
- 합성 트랜스폼
- 기하학적 트랜스폼
- 브러쉬 트랜스폼
- 엘리먼트의 위치
- Projection 트랜스폼
- Matrix3D 파생하기
제11장 세 가지 템플릿
- 버튼 내부의 데이터
- XAML에서 제어문 구현하기
- 컬렉션 컨트롤과 DataTemplate의 실제 사용 방식
- 컬렉션과 인터페이스
- 탭과 선택
- 패널과 가상화 패널
- 사용자 정의 패널
- 항목 템플릿으로 막대 그래프 구현하기
- FlipView 컨트롤
- 기본적인 컨트롤 템플릿
- 비주얼 스테이트 매니저
- generic.xaml 사용하기
- 템플릿 파트
- 사용자 정의 컨트롤
- 템플릿과 항목 컨테이너
제12장 페이지와 탐색
- 화면 해상도
- 배율
- 스냅 뷰
- 화면 전환
- 간단한 페이지 탐색
- 백스택 활용하기
- 탐색 이벤트와 페이지 복원
- 응용 프로그램 상태 저장 및 복원
- 탐색 가속기 키와 마우스 버튼
- 데이터 전달 및 반환
- 비주얼 스튜디오 표준 템플릿
- 뷰 모델과 컬렉션
- 항목을 그룹으로 나누기
PART II. 고급편
제13장 터치, 기타
- Pointer 로드맵
- 핑거 페인팅 시작하기
- 포인터 캡처하기
- 팝업 메뉴를 써서 수정하기
- 압력 감도
- 테이퍼 부드럽게 만들기
- 그림 저장하기
- 현실적이면서 비현실적인 핑거 페인팅
- 터치 피아노
- 조작, 손가락 엘리먼트
- 관성 이용하기
- XYSlider 컨트롤
- 중심을 기준으로 한 크기조정과 회전
- 한 손가락 회전
제14장 비트맵
- 픽셀 비트
- 투명도와 Premultiplied alpha
- 방사형 그라데이션 브러쉬
- 이미지 파일의 로딩과 저장
- 포스터화와 단색화
- -핑거 페인트 작품 저장하기
- HSL 색상 선택
- 반전그림 그리기
- 사진 라이브러리 접근하기
- 카메라 사진 캡처하기
제15장 네이티브로 개발하기
- P/Invoke 소개
- 작은 도움
- 시간대 정보
- DirectX를 위한 윈도우 런타임 컴포넌트 래퍼
- DirectWrite와 폰트
- 설정과 플랫폼
- 폰트 메트릭 해석하기
- SurfaceImageSource 위에 그리기
제16장 서식 있는 텍스트
- 전용 폰트
- Glyphs 엘리먼트 맛보기
- 로컬 저장소에 있는 폰트 파일
- 타이포그래피 개선하기
- RichTextBlock 클래스와 Paragraph 엘리먼트
- RichTextBlock 엘리먼트 선택하기
- RichTextBlock 엘리먼트와 오버플로우
- 페이지 나누기의 위험성
- RichEditBox를 이용한 서식 편집
- 자신만의 텍스트 입력 방식 구현
제17장 공유와 인쇄
- 설정 참과 팝업
- 클립보드로 공유하기
- 공유 참
- 인쇄의 기본
- 인쇄 가능한 여백과 불가능한 여백
- 페이지 매김 처리
- 사용자 정의 인쇄 속성
- 월간 플래너 인쇄하기
- 페이지 범위 인쇄하기
- 양이 많은 인쇄 작업
- FingerPaint 인쇄하기
제18장 센서와 GPS
- 방향
- 가속도와 힘, 중력, 벡터
- 굴러다니는 공을 다루기
- 두 개의 북극
- Inclinometer = Accelerometer + Compass
- OrientationSensor = Accelerometer + Compass
- 방위각과 고도
- Bing 맵과 Bing 맵 타일
제19장 펜(스타일러스)
- InkManager 컬렉션
- 잉크와 관련된 속성
- 지우기와 다른 향상 기능들
- 스트로크 선택
- 노란색 메모장
상세 이미지
프로페셔널 TFS (0) | 2013.12.13 |
---|---|
데이터가 보인다: 원리로 깨우치는 데이터 분석 기법 (0) | 2013.11.28 |
표적형 공격 보안 가이드: APT 공격, 실전 방어 및 대응 (0) | 2013.11.12 |
댓글 영역