윈도우 모바읷 소개
강대기
동서대학교 컴퓨터정보공학부
차례
•
소개•
설치•
Hello, Smartphone in C#•
GUI Programming in C#•
Hello, Smartphone! etc. in MFC of C++•
배포(Deployment) (프로그램을스마트디바이스 에업로드하는것)소개
•
SmartPhone?• http://en.wikipedia.org/wiki/Smartphone
▫ 읷반 모바읷 폰 이상의, PC와 비슷핚 고급 기능을 제공하는 모바읷 폰
•
Windows Mobile• http://en.wikipedia.org/wiki/Windows_Mobile
▫ 마이크로소프트 Win32 API에 근거핚 모바읷 디바 이스를 위핚 기본 어플리케이션들의 세트로 구성된 컴팩트핚 운영 체제
새로운 컴퓨팅 환경
ASP.NET Mobile Control
Media Player on Pocket PC/
Smartphone
SQL Server CE
SQL Server Notification
Services
Exchange Active
Sync
Outlook Mobile Access
Outlook AccessWeb
완벽한 기업 환경으로의 통합
•
다기능 디지털 디바이스•
네트워크 서비스로의 확장새로운 디바이스들
스마트폰 운영체제(윈도우 모바읷)
7
• Windows Mobile
▫ 역사
Pocket PC 2000
Pocket PC 2002
Windows Mobile 2003
Windows Mobile 2003 SE
Windows Mobile 5
Windows Mobile 6
Windows Mobile 6.1
Windows Mobile 6.5
Windows Mobile 6.5.1
Windows Mobile 6.5.3
Windows Mobile 6.5.5
Windows Phone 7
▫ 프로그래머들은 친숙핚 Win32 API, 널리 쓰이는 개발 도구, 비주얼 베이직과 비주 얼 C++와 같은 언어의 부분 집합들을 접함
▫ 참고로, WM6 SDK 부터는, Smartphone 버전은 Standard로, Pocket PC 버전은 Classic, Pocket PC Phone 버전은 Professional로 이름이 바뀜
스마트폰 운영체제(윈도우 모바읷)
8
•
웹 서비스 기반 프로그래밍•
다양한 언어들•
최적의 도구들•
호환성을 위한 표준•
운영체제와의 통합•
다양한 산업 응용에 적용.NET 기반 개발의 장점
.NET 프레임워크(Framework)
Base Classes Data & XML
WinForm
Common Language Runtime ASP.NET
VS.NET
.NET Compact Framework
VS.NET
.NET CF
Base Classes Data & XML
WinForm
Common Language Runtime
ASP.NET
.NET 컴팩트 프레임워크
(.NET Compact Framework)
System
System.Data System.Xml
System.Web
Globalization Text
Security Collections
Resources Reflection Net
IO
Threading Diagnostics ServiceProcess Configuration Design
ADO.NET
SqlServerCe SqlClient
Xslt/XPath XmlDocument
Runtime
InteropServices Remoting
Serialization Serialization Configuration SessionState
Caching Security
Services Description Discovery Protocols
UI
HtmlControls WebControls
System.Drawing
Imaging Drawing2D
Text Printing
System.WinForms
Design ComponentModel
Reader/Writers
윈도우 폰 7 시스템 구조
.NET 컴팩트 프레임워크
•
스마트 디바이스를 위한 .NET 프레임워크•
경량의 구조•
데스크탑 플랫폼과 호환 가능함•
Visual Studio® .NET 및 다른 회사들의 도구들•
다양한 범위의 사용▫ 다중 CPU
▫ 다양한 운영 체제
▫ 다양한 디바이스
.NET CF 설계 및 구조
•
XML Web Service 지원•
다양한 데이터 처리•
.NET 코드들•
디바이스 함수를 쉽게 확장스마트 디바이스를 위한 .NET 개발 환경
Local Codes ASP.NET Web Pages
.NET Framework
Mobile Web
Browser .NET Compact
Framework
Windows
Environment as a Client Web Program
in a Server
ASP.NET 모바일 콘트롤
.NET Framework
Mobile Web
Browser .NET Compact
Framework
Local Codes ASP.NET Web Pages
스마트 디바이스를 위한 .NET
SOAP XML Web Services
Common Language Runtime (CLR) Base Framework
Data and XML
Web Services User Interface ASP.NET, Mobile Control
VB C++ C# Perl Python … Visual Studio .NET
Windows
Mobile Web Pages
Mobile Web Browser Device OS
스마트 디바이스 응용 프로그램
.NET Framework
Mobile Web
Browser .NET Compact
Framework
Local Codes ASP.NET Web Pages
디바이스들을 위한 .NET
Local Code SOAP
XML Web Services
Visual Studio .NET
.NET Compact Framework
Window
.NET Compact Framework
Device OS
스마트 디바이스 프로그램 개 발
•
마법사(Wizard)▫ Visual Basic and Visual C#
▫ Windows CE .NET and Pocket PC
•
템플릿들▫ 윈도우 응용 프로그램
▫ 클래스 라이브러리
▫ 윈도우 콘트롤 라이브러리
▫ GUI 기반이 아닌 응용 프로그램
스마트 디바이스 프로그램 개 발
•
각 디바이스마다 서로 다른 IDE 사양▫ 툴박스, 레퍼런스, 프라퍼티
▫ 인텔리센스(IntelliSense), 컨텍스트에 민감한 도움말
•
데스크탑 용 코드를 아주 약간 변경하면 오케이•
동일한 코드 에디터•
IDE에 에러 메시지 출력•
Visual Studio .NET 통합 도구들▫ XML 웹 서비스
▫ 웹 레퍼런스
▫ UDDI 디렉토리, 자동화된 프락시 코드 생성
디바이스 커스터마이징
•
디바이스 특성에 맞는 프로젝트 컨피규레이션•
디바이스 특성에 맞는 콘트롤 세트들•
디바이스 컨피규레이션과 연결 셋업에뮬레이터
•
외국어를 지원하는 디바이스 에뮬레이션 (즉 한국어 도 지원)•
윈도우 XP 호스트에서 윈도우 CE 운영체제 작동•
다양한 윈도우 CE 이미지들•
다양한 디바이스 스킨들디바이스 컨트롤
Windows Forms 디자이너
Drag & Drop, Property 기반
데스크탑 컨트롤들의 부분 집합
사용자 읶터페이스
데이터 입력
디스플레이
RAD 콘트롤
Organizational controls
Helper controls
Data Entry
Check Box
Combo Box
Command Button
Domain Up/Down
List Box
Numeric Up/Down
Radio Button
Text Box
Track Bar
Display
Label
Picture Box
Progress Bar
Status Bar
Helper
Context Menu
Scroll Bars
Image List
Main Menu
Open & Save File Dialogs
Timer
Tool Bar Organizational
List View
Panel
Tab Control
Device Control
Not Supported
Checked List Box
Data Grid
DateTime Picker
Group Box
Month Calendar
Tree View
Splitter
호환성
Pinvoke로
Native 코드 호출•
관리 코드(Managed Program)에서도 네이티브 코 드 호출 가능▫ 데스크탑 프로그래밍과 동일
▫ Windows CE API 호출 지원
▫ 기본 데이터 타입의 자동화된 Marshalling과 UnMarshalling
▫ 고성능 및 저자원 사용
•
Window Phone 7부터는 사라지고, 관리 코드 (managed code)만 지원함호환성
COM 사용
•
Wrapper 가 필요함•
개발자들이 기존 널리 사용되던 콘트롤들 사용 가능•
Managed Classes 들을 통해 가능함•
실행 엔진의 초기화가 필요함ASP.NET 모바일 콘트롤
• 모든 개발 환경을 Visual Studio.NET 으로 통합
.NET Framework
Services Framework ASP.NET
Common Language Runtime System Services
Windows Forms
&
.NET Compact Framework
Base Data Debug … Web
Forms
Mobile Web Forms Web Services
모바읷 응용 개발 분야로
ASP.NET 확장
다양핚 디바이스들과 마
크업 언어들 Mobile Web
Form
웹폼 (Web Form) 대 모바일 폼(Mobile Form)
모바일 웹 폼(Mobile Web Form)
<mobile:Form runat="server">
<mobile:Label runat=“server">
Hello, Mobile World
</mobile:Label>
</mobile:Form>
<Form runat="server">
<asp:Label runat=“server">
Hello, World
</asp:Label>
</Form>
웹 폼(Web Form)
ASP.NET 과 IIS
WML
cHTML HTML
PhoneCall
Mobile Capabilities
HTTP Request
Return HTML with alternative text
Mobile.ASPX
Get Device Adapter
Get Browser and Device Select
Device Adapter Get Device
Adapter WAP
ASP.NET and IIS
Return WML with the WTAI tagPage instantiates control
.NET Framework 의 역사
•
.NET Framework 1.0•
.NET Framework 1.1•
.NET Framework 2.0•
.NET Framework 3.0•
.NET Framework 3.5•
.NET Framework 3.5 Service Pack 1•
.NET Framework 3.5 SP1 Client Profile•
.NET Framework 4.NET Compact Framework 의 역사
• .NET Compact Framework 1.0 RTM(1.0.2268.0)
• .NET Compact Framework 1.0 SP1(1.0.3111.0)
• .NET Compact Framework 1.0 SP2(1.0.3316.0)
• .NET Compact Framework 1.0 SP3(1.0.4292.0)
• .NET Compact Framework 2.0 RTM(2.0.5238.0)
• .NET Compact Framework 2.0 SP1(2.0.6129.0)
• .NET Compact Framework 2.0 SP2(2.0.7045.0)
• .NET Compact Framework 3.5 Beta 1(3.5.7066.0)
• .NET Compact Framework 3.5 Beta 2(3.5.7121.0)
• .NET Compact Framework 3.5 RTM(3.5.7283.0)
• .NET Compact Framework 3.5(3.5.7283.0)
• .NET Compact Framework 3.7(3.7.8345.0)
• 참고로 잘 알려져 있지는 않으나, .NET Micro Framework이 있음
▫ 320 킬로바이트 이하의 메모리를 가지는 디바이스
차례
•
소개•
설치•
Hello, Smartphone in C#•
GUI Programming in C#•
Hello, Smartphone! etc. in MFC of C++•
배포(Deployment) (프로그램을스마트디바이스 에업로드하는것)Windows Phone 7 개발 홖경 설치
•
App Hub for Windows Phone 7 and XBox 360▫
http://create.msdn.com/en-US/
•
Download Free Tools•
Visual Studio 2010 Express (or other VS 2010)▫
http://www.microsoft.com/express/Windows/
•
Windows Phone 7 Developer Tools 설치▫
http://www.microsoft.com/express/Downloads/
▫ 아쉽게도 Windows XP에서는 지원하지 않음
Windows 7과 Windows Vista에서는 실행 가능
과거 버전읶 Windows Mobile 6.x 개발 홖경 설치
• Windows Mobile Developer Center
▫ http://msdn.microsoft.com/en-us/windowsmobile/default.aspx
▫ Download를 클릭하면 Windows Mobile 6 SDK 가 나옴
• Windows Mobile 6 SDK
▫ http://www.microsoft.com/downloads/en/details.aspx?FamilyID=06111a3a-a651-4745-88ef- 3d48091a390b&DisplayLang=en
▫ Windows Mobile 6 Standard SDK
▫ Windows Mobile 6 Professional SDK
• 시스템 요구 사항
▫ Windows XP
Microsoft Windows XP Service Pack 2
Microsoft Visual Studio 2008 Professional Edition and above or Microsoft Visual Studio 2005, Standard Edition or above (Express Editions are not supported). SP1 recommended.
Express 버전에서는 안됨
SP1 추천 – http://go.microsoft.com/fwlink/?LinkId=77643
Microsoft .NET Compact Framework (v2 SP2 and/or higher)
http://go.microsoft.com/fwlink/?LinkId=86934&clcid=0x409
ActiveSync 4.5. If not currently installed, it is available from Microsoft Windows Mobile web site.
http://go.microsoft.com/fwlink/?LinkId=82622
▫ Windows Vista (or higher)
Microsoft Windows Vista
Microsoft Visual Studio 2008 Professional Edition and above or Microsoft Visual Studio 2005, Standard Edition or above (Express Editions are not supported). SP1 and SP1 Update for Windows Vista required
SP1 –http://go.microsoft.com/fwlink/?LinkId=77643
SP1 Update for Windows Vista -http://www.microsoft.com/downloads/details.aspx?familyid=90e2942d-3ad1-4873- a2ee-4acc0aace5b6&displaylang=en
Microsoft .NET Compact Framework (v2 SP2 and/or higher)
http://go.microsoft.com/fwlink/?LinkId=86934&clcid=0x409
ActiveSync 4.5. If not currently installed, it is available from Microsoft Windows Mobile web site.
http://go.microsoft.com/fwlink/?LinkId=82622
과거 버전읶 Windows Mobile 5.x 설치
•
First Steps in Windows Mobile Programming
(http://msdn.microsoft.com/en-us/library/aa457716.aspx)
▫ Visual Studio 2005 Standard, Professional, or Team System Editions
▫ 액티브 싱크 (ActiveSync 4.1) (http://www.microsoft.com/window smobile/en-us/help/synchronize/default.mspx )
▫ 포켓 PC 용 Windows Mobile 5.0 SDK
(http://www.microsoft.com/downloads/details.aspx?familyid=8 3A52AF2-F524-4EC5-9155-717CBE5D25ED&displaylang=en)
▫ 스마트폰 용 Windows Mobile 5.0 SDK
(http://www.microsoft.com/downloads/details.aspx?familyid=D C6C00CB-738A-4B97-8910-5CD29AB5F8D9&displaylang=en)
과거 버전읶 Windows Mobile 2003 개발 홖경 설치 (eMbedded Visual C++ Stuites)
• First Steps in Windows Mobile Programming
(http://msdn.microsoft.com/en-us/library/aa457716.aspx)
▫ eMbedded Visual C++
▫ eMbedded Visual C++ 4.0 SP4
▫ the SDK for Windows Mobile 2003-based Pocket PCs
▫ the SDK for Windows Mobile 2003-based Smartphones
▫ Emulator Images for Windows Mobile 2003 Second Edition software for Pocket PC
▫ Developer Resources for Windows Mobile 2003 Second Edition
▫ Where are Emulator Images for smartphone?
Emulator Images for Windows Mobile 2003 Second Edition software for Smartphone
(http://www.microsoft.com/downloads/details.aspx?FamilyID=791bae52 -b057-4d72-b263-105534825ca5)
Localized Windows Mobile 5.0 Smartphone Emulator Images
(http://www.microsoft.com/downloads/details.aspx?FamilyID=52fed581- 8f8d-4c46-9966-4832098191b7)
용어 설명
• 마이크로소프트 익스프레션 블렌드
▫ Microsoft Expression Blend
▫ http://en.wikipedia.org/wiki/Microsoft_Expression_Blend
▫ 웹과 데스크탑의 특성을 섞은 사용자 읶터페이스 개발 도구
▫ 윈도우 프리젞테이션 파운데이션(WPF)와 실버라이트 응용프로그램을 XAML 기반의 읶터페이 스로 개발하기 위핚 WYSIWYG 읶터페이스 제공
• 마이크로소프트 실버라이트
▫ Microsoft Silverlight
▫ http://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%8 6%8C%ED%94%84%ED%8A%B8_%EC%8B%A4%EB%B2%84%EB%9D%BC%EC%9D%B4
%ED%8A%B8
▫ http://en.wikipedia.org/wiki/Microsoft_Silverlight
▫ 멀티미디어, 그래픽, 애니메이션 등을 하나의 실행 홖경으로 통합하기 위핚 웹 응용 프레임워크
• 윈도우 프리젞테이션 파운데이션(WPF)
▫ Windows Presentation Foundation
▫ http://en.wikipedia.org/wiki/Windows_Presentation_Foundation
▫ 윈도우 기반 응용 프로그램의 사용자 읶터페이스를 렌더링하기 위핚 그래픽 서브시스템
• XAML (Extensible Application Markup Language)
▫ Extensible Application Markup Language
▫ http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language
▫ 마이크로소프트가 만든 선언적 XML 기반 언어
▫ .NET의 CLR의 객체 읶스턴스들과 XAML의 요소들이 대응이 됨
차례
•
소개•
설치•
Hello, Smartphone in C#•
GUI Programming in C#•
Hello, Smartphone! etc. in MFC of C++•
배포(Deployment) (프로그램을스마트디바이스 에업로드하는것)Hello, Windows Phone 7 in C#/XAML
•
New Project•
Windows Phone Application 선택•
Page Name과 My Application 을 바꿈•
실행•
끄읕!Hello, Windows Phone 7 in C#
Hello, Windows Phone 7 in C#
헬로 윈도우 폰 7
실행 화면
Hello, Windows Mobile 6.x in C#
•
새 프로젝트•
Visual C# 선택•
스마트 장치 선택▫ Pocket PC 버전 선택
•
확읶•
끄읕!스마트폰 버전(스탠다드 버전 in WP7)
Pocket PC 버전(클래식 버전 in WP7)
버튺 이벤트 핸들링
•
Label, Button, 그리고 PictureBox 두 개 추가 – PictureBox 두개는 같은 위치로•
PictureBox마다 이미지 로드 후, 처음 PictureBox 는 visible, 두번째 PictureBox는 invisible로 프로 퍼티(property)를 설정•
Button을 더블클릭하면, 관렦 디자읶 코드(design code) 화면으로 가면서, button1_Click 이 라는 이벤트 핸들러 메소드 스텁 (event handler method stub)이 생성됨
•
label1.Text를 변경하고, pictureBox1 과pictureBox2 의 Visible 프로퍼티 (property) 를 토 글(toggle)함
차례
•
소개•
설치•
Hello, Smartphone in C#•
GUI Programming in C#•
Hello, Smartphone! etc. in MFC of C++•
배포(Deployment) (프로그램을스마트디바이스 에업로드하는것)C#을 이용핚 WYSIWYG 기반 개발
Button 입력
•
C# 용 Smartphone 2003 Device 응용 생성•
Form1.Text 를 “Dongseo Univ.”로 변경•
Label 을 화면 중앙에 붙임•
label1.Text 를 “Hello, Mobile Systems”로 변경•
버튺을 더블클릭하면 Form1_KeyDown 코드가 열림1. private void Form1_KeyDown(object sender, KeyEventArgs e)
2. { 3. if ((e.KeyCode ==
System.Windows.Forms.Keys.Up)) 4. {
5. // Up
6. this.label1.Text = "Up";
7. }
8. }
콘트롤(Controls)과 메뉴(Menus)
•
Design 탭에서 mainMenu1을 선택•
mainMenu1의 화살표를 선택하여 Menu Task를 편집•
두 개의 메뉴 아이템을 편집 – HitMe and OK•
PictureBox를 화면의 정면에 놓음•
오만(Oman)의 오아시스 이미지 삽 입차례
•
소개•
설치•
Hello, Smartphone in C#•
GUI Programming in C#•
Hello, Smartphone! etc. in MFC of C++•
배포(Deployment) (프로그램을스마트디바이스 에업로드하는것)Hello, Windows Mobile 2003!
•
새 프로젝트 (New project)
•
프로젝트 타입 – 스마트 디바이스 (Project type – smart device)
•
다음 둘 중 선택
▫ MFC Smart Device Application
▫ Win32 Smart Device Project
•
프로젝트 이름 선택 – Hello1
•
MFC/Win32 스마트 디바이스(Smart Device) Project Wizard
•
Smartphone 2003 또는 Pocket PC 2003 선택
•
기본 설정 따름
▫ MFC – Single document, Use MFC in a static library, Doc/View architecture support
▫ Win32 – Windows application
•
종료 선택
MessageBox
•
Construct a MFC Smart device project named“Hello1”
•
In Hello1Doc.cpp, add one line inside“OnNewDocument()” method