Microsoft Corporation

2003년 6월

적용 대상:
Microsoft Windows Mobile 2003 기반의 Pocket PC
Microsoft Windows CE .NET 4.2
Microsoft .NET Compact Framework

요약: Windows Mobile 2003 기반의 Pocket PC용 SDK(Software Development Kit)에 익숙한 Pocket PC 개발자를 위한 주요 변경 내용과 새로운 내용을 익히고 Pocket PC 2003 장치 및 Pocket PC 2003 SDK로 전환하는 방법에 대해 배웁니다. (17페이지/인쇄 페이지 기준)

목차

소개
Pocket PC 2003의 개발자 변경 내용
Pocket PC 2003 개발자를 위한 새로운 내용
결론

소개

Microsoft Windows Mobile 2003 기반의 Pocket PC는 Pocket PC 사용자 및 개발자에게는 획기적인 제품입니다. Pocket PC 2003은 새로운 운영 체제인 Microsoft Windows CE .NET 4.2를 기반으로 하며 Microsoft Windows .NET Compact Framework를 ROM에 통합한 최초의 장치입니다. 이러한 성능 향상 및 여러 추가 기능을 통해 모바일 응용 프로그램 환경의 새로운 기초를 마련했다고 할 수 있습니다. 이 백서의 목적은 Windows Mobile 2003 기반의 Pocket PC용 SDK에 친숙한 Pocket PC 개발자를 위한 주요 변경 내용 및 새로운 내용과 Pocket PC 2003 장치 및 Pocket PC 2003 SDK로 전환하는 방법에 대해 설명하기 위한 것입니다. Pocket PC 2003 SDK from the Mobile Devices Developer  를 다운로드하십시오.

개요

다음은 본 문서의 내용을 간략하게 요약한 것입니다.

  • Microsoft Windows .NET Compact Framework - 새로운 모든 Pocket PC 2003 장치에서 .NET Compact Framework가 ROM에 통합되었으며 Pocket PC 2000 및 Pocket PC 2002 장치의 경우 RAM에 설치할 수 있습니다.
  • Microsoft Visual Studio .NET 2003 - Pocket PC 2003 SDK는 Visual Studio .NET 2003 IDE에 통합되었고 Microsoft Visual Basic .NET 및 Microsoft Visual C#™ .NET 모두에서 사용할 수 있습니다.
  • eMbedded Visual Tools 3.0 - Pocket PC 2003 장치를 대상으로 하기 위해 더 이상 이 개발 환경을 지원하지 않습니다. 기본 코드 지원이 필요한 경우 eMbedded Visual C++ 4.0(SP2 포함)을 사용해야 하며 관리되는 코드(.NET) 개발을 위해 Visual Studio .NET 2003이 필요합니다.
  • eMbedded Visual C++ - 주요 변경 내용은 새로운 운영 체제인 Windows CE .NET 및 디버깅과 원격 도구에 대한 것입니다.
  • eMbedded Visual Basic - 주요 변경 내용 중 하나는 Pocket PC 2003 SDK가 eMbedded Visual Basic 개발을 지원하지 않는다는 것입니다. 이전 버전과의 호환성을 보장하기 위해 기존 eMbedded Visual Basic 응용 프로그램을 Pocket PC 2003 장치에서 계속 실행할 수 있습니다. 최신 제품을 사용하려는 eMbedded Visual Basic 개발자는 Visual Basic .NET으로 마이그레이션하여 새 도구의 이점을 활용할 수 있습니다.

새로운 내용을 간추리면 다음과 같습니다.

  • 새로운 핵심 운영 체제 - Pocket PC 2003 장치에서는 Windows CE .NET 4.2가 실행됩니다. 이 새로운 운영 체제를 사용하면 장치의 기능을 강화하고 장치를 빠르게 실행할 수 있습니다. 가장 크게 향상된 영역은 Microsoft Pocket Internet Explorer, 에뮬레이터 기술, 네트워킹 서비스 및 Microsoft Windows Media™ 기술입니다
  • 에뮬레이터 향상 - 에뮬레이션 환경이 보다 강력해졌으며 WaveCom WMOD2B 외부 GSM 라디오 모듈을 사용하여 외부 라디오를 지원하는 Pocket PC 2003, Pocket PC Phone Edition 2003 및 Virtual Radio를 사용하는 Pocket PC Phone Edition 2003의 세 모드를 지원합니다. 또한 에뮬레이터 자체 기능으로 가상 스위치 지원, 드라이버 매핑 및 GAPI 지원이 새롭게 포함되었습니다.
  • 원격 구성 - Pocket PC 및 Smartphone을 구성하는 기능은 사용자가 장치를 로컬 및 원격으로 지정할 수 있는 강력한 방법입니다. 이 기능은 OTA(Over The Air) 시나리오에도 사용할 수 있습니다.
  • 브라우저 업데이트 - 이제 Pocket Internet Explorer도 명실공히 HTML 4.01, CSS, XHTML 및 WML 2.0을 지원하는 인터넷 브라우저로 발전했습니다.
  • Phone Edition 지원 - 들어오는 SMS(Short Message Service) 메시지 트랩 등의 기능을 지원합니다.
  • 기타 기능 - 그밖에 유용한 많은 기능이 새롭게 추가되었습니다.

다음 페이지에 개요 정보가 계속됩니다.

Microsoft Windows Pocket PC and Smartphone Developer Portal

Embedded Developer Center 

Mobility Developer Community 

.NET Compact Framework

eMbedded Visual C++ 4.0 

Pocket PC 2003의 개발자 변경 내용

이 장에서는 Pocket PC 2003 SDK로 전환할 때 Pocket PC 개발자에게 필요한 변경 내용에 대해 설명합니다.

eMbedded Visual Tools 3.0

Pocket PC 2003용 응용 프로그램을 개발하는 경우 더 이상 eMbedded Visual Tools 3.0을 사용할 수 없습니다. 그러나 Pocket PC 2000 및 2002용 응용 프로그램 개발에는 여전히 이 도구 모음이 필요합니다. 기존 응용 프로그램을 유지 관리하고 지원해야 하는 경우가 있으므로 새 도구 또한 기존 도구와 공존할 수 있도록 설계되었습니다. 따라서 eMbedded Visual Tools 3.0을 설치한 상태에서 eMbedded Visual C++ 4.0(Pocket PC 2003은 더 이상 eMbedded Visual Basic 개발을 지원하지 않으므로 아래의 해당 절 참조)과 Visual Studio .NET 도구(Visual Studio .NET 2003, .NET Compact Framework 등)를 설치할 수 있습니다.

eMbedded Visual C++ 개발자 변경 내용

Pocket PC용 C++을 사용하여 관리되지 않는 응용 프로그램(기본 코드)을 개발해야 하는 경우 eMbedded Visual C++을 계속 사용해야 합니다. 새 도구(Visual Studio .NET 2003)로는 관리되지 않는 응용 프로그램을 작성할 수 없습니다. Pocket PC 2003 또는 차세대 Smartphone을 대상으로 하는 경우 서비스 팩 2를 설치한 상태에서 eMbedded Visual C++ 4.0을 사용해야 합니다. eMbedded Visual C++ 3.0을 사용해서는 Pocket PC 2003 및 차세대 Smartphone 응용 프로그램을 개발, 배포 또는 디버깅할 수 없습니다. 그러나 두 개의 도구 모음이 공존할 수 있으므로 동일한 개발 PC에서 Pocket PC 2000 및 2002 응용 프로그램을 계속 유지 관리하고 지원할 수 있습니다.

eMbedded Visual C++ 3.0에서 eMbedded Visual C++ 4.0으로 응용 프로그램을 이동할 때 가장 먼저 알 수 있는 사실은 프로젝트 파일의 자동 업그레이드를 지원하지 않는다는 것입니다. 이 문제를 해결하기 위한 가장 손쉬운 방법은 비어 있는 새 eMbedded Visual C++ 4.0 프로젝트를 작성하고 수동으로 소스 파일을 추가하는 것입니다.

eMbedded Visual C++ 4.0의 대부분의 변경 내용은 Pocket PC 2003의 새로운 운영 체제인 Windows CE .NET과 관련된 것이지만 도구 자체 또한 여러 가지 추가 기능을 보유하고 있습니다. 이러한 기능 대부분은 디버깅 및 원격 도구와 관련된 것입니다.

eMbedded Visual C++ 4.0에서 디버깅하는 경우 C++ 예외 처리를 지원합니다. 이제 표준 Microsoft Win32 API SEH(Structured Exception Handling) 뿐만 아니라 원하는 모든 유형의 예외 처리를 이용할 수 있게 되어 코드의 이식성 및 유연성이 향상되었습니다. 또한 개체 유형을 판별하는 데 사용할 수 있는 RTTI(Run Time Type Information)에 액세스할 수도 있습니다.

한 가지 흥미로운 디버깅 기능은 활성 프로세스에 연결할 수 있는 기능입니다. 즉, 디버거를 시작하지 않았는데 응용 프로그램이 중단된 경우 메뉴 옵션 빌드, 디버깅 시작 및 Windows CE 프로세스에 연결을 선택하여 프로세스에 연결할 수 있습니다. 활성 프로세스 목록에서 선택하고 PC에 실행 파일 경로를 제공하면 디버거가 시작되어 선택된 프로세스에 연결됩니다. 또 다른 새 기능은 응용 프로그램을 종료하지 않고 처리되지 않은 예외를 진단할 수 있는 JIT(Just-In-Time) 디버깅 연결입니다. 또한 중단점을 설정하는 경우 이제 다중 스레드 응용 프로그램에서 모든 스레드를 중지할 수 있습니다.

eMbedded Visual C++ 4.0에는 원격 호출 프로파일러라는 새 도구가 있습니다. 이 도구를 사용하면 여러 가지 방법으로 실행되는 응용 프로그램 내 호출을 추적할 수 있습니다. 개발자가 여러 가지 미리 정의된 메트릭을 실시간으로 모니터할 수 있는 원격 성능 모니터(Microsoft Windows XP 성능 모니터와 유사) 또한 훌륭한 기능입니다.

다른 기능으로는 내장 함수(함수 호출이 아닌 인라인 코드로 함수가 컴파일됨), ATL out-of-process 프로젝트 마법사(COM out-of-process 서버 작성용) 및 STL(Standard Template Library, 가장 널리 사용되는 알고리즘 및 데이터 구조의 하위 집합에 대한 액세스 제공)을 지원합니다.

eVC 4.0 및 Windows CE .NET으로의 업그레이드 의미에 대한 자세한 내용은 백서 eMbedded Visual C++ 4.0 and Windows CE .NET  을 참조하십시오.

eMbedded Visual Basic 개발자 변경 내용

Microsoft는 2001년 가을, 더 이상 eMbedded Visual Basic의 후속 버전을 내놓지 않고 새로운 .NET 플랫폼 및 장치 도구로 대신할 것이라고 발표했습니다. 따라서 Pocket PC 2003 SDK는 eMbedded Visual Basic 개발을 지원하지 않으며 Pocket PC 2003 장치의 ROM에는 eMbedded Visual Basic 또는 ADOCE 런타임이 포함되지 않습니다. 그러나 eMbedded Visual Basic 및 ADOCE 런타임은 인터넷( Pocket PC. Downloads, eMbedded Visual Basic)에서 다운로드하여 Pocket PC 2003 장치의 RAM에 설치할 수 있습니다. 즉, Pocket PC 2003에서 기존 eMbedded Visual Basic 응용 프로그램을 계속 실행할 수 있으며 개발자가 Pocket PC 2002 SDK와 eMbedded Visual Basic을 계속 함께 사용하여 Pocket PC 2003 장치를 대상으로 할 수 있습니다.

새로운 제품을 사용하려는 eMbedded Visual Basic 개발자는 Visual Basic .NET으로 마이그레이션하여 새로운 도구의 이점을 활용할 수 있습니다. 언어 측면에서 가장 중요한 변경 내용은 Visual Basic .NET이 개체 지향 현대 언어라는 점과 공용 메서드, 속성 및 이벤트로 공용 .NET Compact Framework 클래스 라이브러리(예: Windows Forms의 경우 System.Windows.Forms, 데이터베이스 관리의 경우 System.Data)를 사용하여 해당 코드가 작성된다는 점입니다. 강력한 유형, 클래스 사용, XML 웹 서비스 호출 및 구조화된 예외 처리 구현과 같은 일반 작업에 대한 고유한 지원을 통해 과거 eMbedded Visual Basic 개발자가 비효율적으로 대처할 수 밖에 없었던 문제가 해결됩니다.

eMbedded Visual Basic 코드를 Visual Basic .NET 코드로 변환시키는 마법사 또는 자동화 프로세스는 없습니다. 코드는 수동으로 이식해야 하며 이를 위해서는 다음을 고려하여 수정하는 작업이 필요합니다.

  • 언어 문법 - eMbedded Visual Basic은 VB Script 언어이므로 코드 유형에 따라 문법이 크게 다를 수 있습니다.
  • 일반 코드 라이브러리 구현 - 기존 eMbedded Visual Basic 일반 코드 라이브러리는 이식이 필요합니다. 이제 클래스 사용을 지원하므로 코드 라이브러리의 구현과 사용 방법이 다를 수 있습니다. .NET Compact Framework는 .NET Framework의 하위 집합이므로 이제 Pocket PC 개발에 기존 Visual Basic .NET 클래스 라이브러리를 부분적으로 이용할 수 있습니다.
  • 응용 프로그램 탐색과 제어 흐름 - 폼 관리 및 응용 프로그램 탐색은 System.Windows.Forms 유형으로 처리되며 eMbedded Visual Basic과 다르게 구현됩니다.
  • 데이터베이스 - 데이터 액세스는 ADO.NET의 하위 집합을 통해 처리됩니다. Microsoft는 Microsoft SQL Server 2000 Windows CE Edition 2.0(SQL Server CE 2.0)에 관리되는 데이터 공급자를 제공합니다. .NET Compact Framework에는 eMbedded Visual Basic 개발자 사이에 널리 사용되는 로컬 데이터 저장소(CEDB 또는 Pocket Access라고도 함)에 액세스하는 데 필요한 관리되는 유형이 없습니다.
  • XML - XML 관리 및 조작은 기본적으로 지원됩니다.
  • XML 웹 서비스 - eMbedded Visual Basic에서는 기본적으로 원격 구성 요소를 호출하는 기능을 제공하지 않습니다. 따라서 원격 구성 요소를 호출 및 사용하려면 타사 제품을 사용해야 했습니다. XML 웹 서비스에 대한 지원은 .NET Compact Framework의 핵심 유형 중 하나로 전체 .NET Framework의 기본 통합 메커니즘으로 간주됩니다. 대부분의 개발 프로젝트에 있어 시스템 통합과 관련한 작업에 많은 노력이 들어가므로 시스템 통합 코드를 다시 작성해야 할 가능성이 높습니다.
  • 예외 처리 - eMbedded Visual Basic에서의 오류 처리는 "On Error Resume Next"로 구성되며 "If Err.Number <> 0 Then" 문으로 끝나지 않습니다. Try . . .Catch . . . Finally 블록을 사용한 구조화되고 효율적인 예외 처리로 코드 견고성 및 내결함성이 향상됩니다.

한 예로 eMbedded Visual Basic 대 Visual Basic .NET에서의 예외 처리에 대해 살펴보겠습니다. 다음 샘플 코드는 텍스트 파일을 열어 파일이 끝날 때까지 한 줄씩 읽습니다. 이는 대부분의 Basic 프로그래머에게 친숙한 개념입니다.

eMbedded Visual Basic의 경우 모든 예외를 발견해서 고치려면 다음과 같이 If Err.Number <>0을 한 줄 추가해야 합니다.

' Open file
' Variables
Dim sLine As String
Dim file As FILECTL.file
Set file = CreateObject("FILECTL.file")

Screen.MousePointer = 11

' Error handling by "resuming next"
On Error Resume Next

' Open application settings
file.Open "\appdata.txt", fsModeInput

' Check if error occurred
If Err.Number <> 0 Then
    MsgBox "File could not be opened!", vbCritical, "Error"
    Exit Sub
End If

' Loop through file
Do While Not file.EOF
    ' Read line-by-line
    sLine = file.LineInputString
    ' Check if error occurred
    If Err.Number <> 0 Then
        MsgBox "Data could not be retrieved!", vbCritical, "Error"
        Exit Sub
    End If
Loop

Screen.MousePointer = 1

' Close file
file.Close

이 코드는 On Error Resume Next 문으로 시작됩니다. 즉, 이 명령문은 오류가 발생해도 다음 줄을 계속 실행합니다. Err 개체에는 발생 가능한 오류에 대한 정보가 들어 있습니다. 개발자는 각 코드 줄 다음에서 Err 개체의 Err.Number 속성이 기본값 0과 다른지 확인하여 오류를 처리하는 코드를 삽입할 수 있습니다. 즉, 개발자는 전체 기본 코드에서 오류를 발생시킬 수 있는 줄을 예상할 수 있어야 합니다. 동일한 작업을 수행하면서 보다 개선된 예외 처리 방법을 제공하는 Visual Basic .NET 코드는 다음과 같습니다.

' Open data file

' Variables
Dim sLine As String
Dim file As StreamReader

Cursor.Current = Cursors.WaitCursor

' Error handling by Try-Catch-Finally
Try
    file = New System.IO.StreamReader("\appdata.txt")

    While file.ReadLine <> Nothing
        sLine = file.ReadLine
    End While

    file.Close()

Catch ex As Exception
    Select Case ex.Message
        Case "FileNotFoundException"
            MsgBox("File could not be opened!", MsgBoxStyle.Critical, 
              "Error")
        Case Else
            MsgBox("Data could not be retrieved!", MsgBoxStyle.Critical, 
              "Error")
            file.Close()
    End Select
Finally
    Cursor.Current = Cursors.Default
End Try

파일 관리를 처리하는 모든 필수 코드는 Try 블록에 배치되고 오류를 처리하는 코드는 Catch 블록에 배치되며 실행될 코드는 Try 및 Catch 블록 다음에 실행됩니다. 코드가 보다 잘 정렬되고 발생 가능한 모든 예외를 처리하여 코드 가독성 및 응용 프로그램 견고성이 향상됩니다.

eMbedded Visual Basic에서 Visual Basic .NET으로의 이동에 대한 자세한 내용은 백서 Moving From eMbedded Visual Basic to Visual Basic .NET  을 참조하십시오. Application Development Landscape for Windows CE .NET  및 Choosing a Windows Embedded API: Win32 vs. the .NET Compact Framework에 대한 자료는 특정 프로그래밍 작업에 필요한 API 선택에 대한 세부 사항을 제공합니다. API를 선택하면 궁극적으로 개발 도구, Embedded Visual C++ 3.0/4.0 또는 Visual Studio .NET을 선택하게 됩니다.

Pocket PC 2003 개발자를 위한 새로운 내용

이 절에서는 Pocket PC 2003 SDK로 전환하는 경우 Pocket PC 개발자에게 필요한 변경 내용에 대해 설명합니다. Pocket PC 2003 SDK 문서(C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Help에 설치)에는 기본적으로 개발자에게 필요한 새로운 정보가 많이 들어 있습니다. 다음은 그러한 문서 중 몇 가지입니다.

"Microsoft Windows Powered Pocket PC 2003의 새로운 내용"

"Pocket PC 에뮬레이터에 대한 작업"

"Pocket PC 프로그래밍"

"Pocket PC 사용자 인터페이스 지침"

SDK 문서에는 또한 여러 가지 중요한 샘플 프로젝트도 들어 있습니다.

새로운 핵심 운영 체제

Pocket PC 2003은 Windows CE 4.20 위에 빌드되고 Pocket PC 2000 및 Pocket PC 2002는 Windows CE 3.0 위에 빌드됩니다. Windows CE는 모듈 방식으로 빌드되는 운영 체제로 이는 운영 체제의 새 인스턴스 빌드 시 사용되는 모듈 및 서비스가 핵심 운영 체제에 포함되어 있다는 것을 의미합니다. Windows CE 4.20 위에 빌드되는 장치에 Windows CE 4.20의 모든 기능이 자동으로 포함되는 것은 아니며 Pocket PC 2003의 경우에도 마찬가지입니다. 다음 그림에서는 Windows CE 4.20의 모듈 방식을 보여 줍니다.

그림 1: Windows CE 4.20이 모듈 방식 운영 체제인 경우

Windows CE 4.20의 새로운 운영 체제 기능은 실제 장치 및 Pocket PC 2003 SDK 모두에 일정 부분 영향을 미칩니다. 이 기능은 다음과 같습니다.

  • 에뮬레이터 개선
  • 새롭고 개선된 Bluetooth 지원
  • 성능 향상 및 ROM 크기 축소 효과를 얻을 수 있도록 커널 개선
  • 차세대 네트워크 계층 프로토콜(예: TCP/IPv6 support) TCP/IPv6이 지원하는 주소 영역 확대
  • 디스플레이 드라이버 개선
  • Pocket PC 2003 장치가 NOR 또는 NAND 플래시 메모리를 지원하도록 한 후 RAM에서의 실행을 위한 페이지 필수 모듈을 요구하는 새로운 파일 시스템(이진 ROM 이미지 파일 시스템). 따라서 OEM은 해당 장치에서 NAND, NOR, RAM 중에서 선택할 수 있습니다.

새로운 기능 및 관련 정보에 대한 자세한 내용은 Windows CE 4.20 documentation  을 확인하십시오.

새 도구

Pocket PC 2003 SDK(Software Development Kit) 문서는 메시지 큐(MSMQ)와 같은 Windows for Pocket PC, HTTP Server for Pocket PC 및 SQL Server CE의 모든 새로운 SDK 도구 및 추가 도구에 대해 설명합니다. 이 도구는 다음 파일로 구성됩니다.

  • CabWiz.ddf - CAB 파일을 작성하기 위한 템플릿 지시문 파일
  • CabWiz.exe - 명령 파일을 매개 변수로 사용하고 프로그램 파일 및 설치 명령이 들어 있는 .cab 파일을 작성하는 명령줄 유틸리티 자세한 내용은 SDK 도움말 문서의 "Using CABWiz" 항목을 참조하십시오.
  • EmuASCfg.exe - 이 도구는 이더넷 가상 스위치를 통한 ActiveSync 파트너 관계를 구축할 수 있도록 ActiveSync 및 Pocket PC 에뮬레이터를 구성합니다. 이 도구를 실행하려면 VirtualSwitch 옵션으로 eMbedded Visual C++을 사용하여 Pocket PC 에뮬레이터를 부팅해야 합니다. 사용 정보를 보려면 명령줄에 "emuascfg.exe /?"를 입력하십시오.
  • RapiConfig.exe - RapiConfig를 사용하면 ActiveSync를 통해 연결된 에뮬레이터나 장치에서 구성 XML을 실행할 수 있습니다. 사용법을 보려면 명령줄에 "rapiconfig /?"를 입력하십시오.

에뮬레이터 향상

Pocket PC 2003 SDK에는 Windows CE에서 실행되는 하드웨어를 복제하는 실제 가상 컴퓨터로 구현되는 새로운 에뮬레이션 환경이 포함됩니다. 새 에뮬레이터는 Windows CE 운영 체제 및 Pocket PC 구성 요소를 정확히 나타낸 것이므로 실제 Pocket PC 장치와 장치 에뮬레이션 환경 사이의 높은 수준의 충실도 및 유사성을 달성할 수 있습니다. 또한 새 에뮬레이터는 영어 Pocket PC를 에뮬레이션하는 것만으로 제한되지 않습니다. 개발 관점에서 볼 때 에뮬레이터의 안정성 및 견고성 또한 크게 향상되었습니다.

Pocket PC 2003 에뮬레이터는 WaveCom WMOD2B 외부 GSM 라디오 모듈을 사용하여 외부 라디오를 지원하는 PC 2003, Pocket PC Phone Edition 2003 및 Virtual Radio를 사용하는 Pocket PC Phone Edition 2003 등 세 가지 에뮬레이션 모드를 가집니다.

그림 2: Pocket PC 2003 에뮬레이터

기타 강조 사항:

  • 에뮬레이터의 드라이브 매핑 지원

    이제 에뮬레이터는 폴더 공유를 통한 시뮬레이션된 저장소 카드를 지원합니다. 에뮬레이터가 폴더를 공유하면 폴더는 저장소 카드로 나타나고 에뮬레이터는 자신이 실제 장치인 것처럼 응답합니다.

  • 에뮬레이터의 GAPI(Gaming API) 지원

    이제 Pocket PC 2003 에뮬레이터의 이미지가 GAPI를 지원합니다.

  • 새 에뮬레이터와 이전 버전과의 동시 실행 불가능

    새 에뮬레이터(버전 4.2)는 이전 에뮬레이터 버전과의 동시 실행을 지원하지 않습니다. 그러나 새 에뮬레이터 인스턴스를 동시에 여러 개 실행할 수는 있습니다.

  • 에뮬레이터의 이더넷을 통한 동기화 지원

    이제 개발자는 VirtualSwitch 드라이버와 eMbedded Visual C++ 4.0을 함께 사용하여 이더넷을 통해 ActiveSync와 동기화할 수 있으며 따라서 더 이상 직렬 포트를 사용하지 않아도 됩니다.

원격 구성

Windows Powered Smartphone은 Pocket PC에서 여러 기능을 상속했으나 Smartphone 2002에 대해 처음 도입한 것은 구성 관리자 인프라였습니다. 이제 Pocket PC 2003은 Windows Powered Smartphone 2002와 동일한 구성 관리자 인프라를 지원합니다.

원격 구성을 처리하는 주 구성 요소는 장치의 구성 관리자입니다. 구성 관리자는 모든 구성 요청을 처리하여 여러 CSP(Configuration Service Provider)로 전달합니다. 몇몇 중요한 CSP는 네트워크 연결, 전자 메일 설정, 보안 정책, 동기화 옵션 및 응용 프로그램 설치(또는 제거)를 처리합니다.

이러한 CSP 중 브라우저 즐겨찾기를 처리하는 CSP에 대해 살펴보고 이를 사용하여 Pocket PC용 Internet Explorer에 대한 즐겨찾기 링크를 추가하는 방법을 알아보겠습니다. CSP는 구축된 XML 파일을 제공하는 방식으로 제어됩니다. 이 파일의 예는 다음과 같습니다.

<wap-provisioningdoc>
  <characteristic type="BrowserFavorite">
    <characteristic type="Business Anyplace">
      <parm name="URL" value="http://www.businessanyplace.net"/>
    </characteristic>
  </characteristic>
</wap-provisioningdoc>

이 표준 XML 파일은 두 개의 중요한 섹션으로 구성됩니다. 첫 번째 섹션은 여러 가지 설치 옵션을 지정하는 설치 섹션입니다. 한 예는 설치되어 있는 응용 프로그램 목록에 구성이 나타나지 않도록 하는 "NoUninstall" 옵션입니다(설정/시스템/프로그램 제거). 두 번째 섹션은 실제 CSP 구성으로 여기서 개발자 커뮤니티 사이트에 대한 즐겨찾기 링크를 추가합니다. 즐겨찾기 이름은 "Business Anyplace"이고 즐겨찾기 URL은 "http://www.businessanyplace.net"입니다.

자세한 내용은 SDK의 장치 관리 항목을 참조하십시오. Pocket PC 2003에서 사용할 수 있는 CSP(Configuration Service Provider)에 대한 자세한 내용은 SDK의 참조 섹션에 있는 CSP 문서를 참조하십시오.

구성 관리자에는 다음과 같은 몇 가지 방법으로 액세스할 수 있습니다.

  • 로컬 구성

    구성 관리 기능에 대한 로컬 액세스 권한은 DMProcessConfigXML 함수를 통해 부여됩니다. 이 함수를 사용하면 XML(Extensible Markup Language) 데이터를 전송할 수 있으므로 모바일 장치 설정이 변경됩니다.

  • 원격 구성

    Pocket PC 2003 Phone Edition은 Smartphone 2002에서와 동일한 WAP(Wireless Application Protocol) 푸시 전송 메커니즘 및 보안 메서드를 통한 원격 OTA(Over-The-Air) 구성을 지원합니다. 수신된 OTA 제공 XML 데이터는 모바일 장치가 처리합니다.

  • CPF(CAB Provisioning Format)

    장치에서 제공 XML 파일을 읽을 수 있도록 하려면 이 파일 이름을 _setup.xml로 지정하고 캐비닛(.cab) 파일 또는 확장자가 .cpf인 CPF(CAB Provisioning Format) 파일로 압축해야 합니다. 이러한 압축을 수행하는 명령은 다음과 같습니다.

    makecab.exe /D COMPRESS=OFF _setup.xml balink.cpf
    

    CPF 파일(balink.cpf)을 장치로 가져오는 방법은 여러 가지가 있습니다. Pocket PC로 파일을 복사한 후 그 파일을 눌러서 설치를 실행하거나 OTA를 제공할 수 있습니다. OTA 옵션은 여러 가지가 있지만 가장 간단한 방법은 웹 서버로 파일을 옮긴 후 Internet Explorer 또는 Pocket PC에 URL을 입력하는 것입니다. 예를 들어 SMS 메시지를 사용하여 구성 설정을 푸시하도록 하는 WAP 푸시 사용 옵션도 있습니다.

    응용 프로그램을 설치할 때도 CPF 파일을 사용하지만 이 파일을 작성하는 방법은 매우 다릅니다. 표준 makecab 유틸리티를 사용하는 대신 CABWiz 유틸리티를 사용하십시오(Smartphone 설치의 경우 CABWizSP 사용). 표준 Pocket PC 설치 시 사용되는 것과 유사한 표준 설치 정보 파일(.inf)을 사용합니다.

추가 정보

원격 구성 사용 방법에 대한 자세한 내용은 Pocket PC 2003 SDK에 들어 있는 Adaptation Kit for Mobile Operators 도움말 파일을 참조하십시오.

브라우저 업데이트

Pocket PC 2003에 들어 있는 Pocket Internet Explorer는 이전 버전에 비해 현격히 업그레이드된 버전입니다. HTML 4.01, XHTML, CSS(Cascading Style Sheet) 등에 대한 지원으로 대부분의 사용자에게 올바른 브라우저 클라이언트 기능을 수행합니다. HTML 4.01은 웹 서버의 현재 표준이며 CSS 지원을 통해 페이지 레이아웃 표준화라는 효율적인 방법을 사용하여 기존 사이트를 열 수 있습니다. 표준 XML 형식으로 HTML 콘텐트를 제공할 수 있는 표준 또한 훌륭한 추가 기능으로 인정받고 있습니다. 특히 XHTML은 휴대폰에 웹 콘텐트를 제공하는 일반 표준이기 때문에 더 많은 인정을 받고 있습니다. WML 2.0의 업데이트 또한 많이 사용됩니다. WML 2.0은 주로 XHTML로 변환된 WML 1.x 표준이며 일반 휴대폰 표준이기도 합니다.

이제 Microsoft JScript®(JScript 5.5)의 지원 수준이 Microsoft Internet Explorer 5.5와 동일한 수준까지 향상되어 보다 복잡한 DOM(Document Object Model)과 결합하여 데스크톱 응용 프로그램용으로 작성된 대부분의 스크립트를 Pocket PC 2003에서 실행할 수 있습니다. JScript의 버전별 전체 기능 개요에 대한 설명은 Version Information  을 참조하십시오. 언어 참조, 자습서 및 샘플을 비롯하여 JScrip 사용에 대한 자세한 설명서를 보려면 Windows Script  를 참조하십시오.

"차세대 인터넷"인 IPv6에 대한 지원으로 앞으로 필요하게 될 모든 모바일 장치의 고유 주소 및 진정한 피어 투 피어 무선 통신을 실현할 수 있는 환경을 구축했습니다. 아직 준비가 되지 않았다면 MSDN의 IPv6 페이지를 더 숙지하십시오.

Pocket PC 2003에서는 Internet Explorer 5와 동일한 방법으로 XML이 지원됩니다. 그러나 Internet Explorer 4의 XML DOM 지원에 있어 이전 버전과 잘 호환되지 않으며 데이터 바인딩 또한 지원되지 않습니다. 그러나 DOM은 Jscript를 통해 XML에 액세스할 수 있습니다.

Pocket PC 2003 장치가 웹 사이트에 연결되는 것을 감지하면 새 에이전트 문자열을 확인할 수 있습니다(Internet Information Server의 경우 HTTP_USER_AGENT 서버 변수에 제공됨).

Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)

이 수행 방법에 대한 자세한 내용은 Make Your Web Applications Support Pocket PC  를 참조하십시오.

이미징 지원 또한 크게 향상되었습니다. 기본적으로 PNG, JPEG, GIF, WMBP, 2BP 및 BMP 형식이 지원됩니다. 이제 이미지 맵과 애니메이션 GIF 또한 사용할 수 있습니다. 확장 가능한 이미징 라이브러리를 통해 타사에서도 다른 형식에 대한 지원을 추가할 수 있습니다.

추가 정보

Pocket PC용 Internet Explorer에 대한 자세한 내용은 Pocket PC 2003 SDK에 포함된 Writing Application for Pocket PC 도움말 파일의 Creating Online Content for Pocket PC 섹션을 참조하십시오.

Phone Edition 지원

Pocket PC Phone Edition 2003에 대한 지원 기능 또한 향상되었습니다. 좋은 예로 응용 프로그램이 들어오는 SMS 메시지를 인식할 수 있는 기능을 들 수 있습니다. Pocket PC 2003 SDK에 이 기능을 보여주는 MapiRule이라는 샘플이 포함되어 있습니다. 이 샘플은 IMailRuleClient 인터페이스를 구현하는 COM 구성 요소입니다. 개발자는 이 인터페이스 및 해당 메서드를 사용하여 들어오는 메시지에 대해 사용자 지정 필터링 규칙을 수행하고 이 메시지를 해당 응용 프로그램에서 적절히 처리할 수 있습니다. 이 기능은 Pocket PC 2003 및 차세대 Smartphone 플랫폼에서 모두 사용할 수 있습니다.

IMailRuleClient 인터페이스에 대한 샘플의 ProcessMessag 메서드 구현에 대해 살펴보겠습니다(매개 변수: IMsgStore *pMsgStore, ULONG cbMsg, LPENTRYID lpMsg, ULONG cbDestFolder, LPENTRYID lpDestFolder, ULONG *pulEventType, MRCHANDLED *pHandled).

SizedSPropTagArray(1, sptaSubject) = { 1, PR_SUBJECT}; 
SizedSPropTagArray(1, sptaEmail) = { 1, PR_SENDER_EMAIL_ADDRESS}; 
ULONG cValues = 0;
SPropValue *pspvSubject = NULL;
SPropValue *pspvEmail = NULL;
IMessage *pMsg = NULL;

// 항목 ID에서 메시지를 가져옵니다.
pMsgStore->OpenEntry(cbMsg, lpMsg, NULL, 0, NULL, (LPUNKNOWN *) &pMsg);
    
// SMS의 경우 제목 또한 메시지 본문입니다.
pMsg->GetProps((SPropTagArray *) &sptaSubject, MAPI_UNICODE, &cValues, 
  &pspvSubject);

// 보낸 사람의 주소 또는 전화 번호를 가져옵니다.
pMsg->GetProps((SPropTagArray *) &sptaEmail, MAPI_UNICODE, &cValues, 
  &pspvEmail);

// 메시지에서 "zzz"를 확인합니다.
if (wcsstr(pspvSubject->Value.lpszW, L"zzz") != NULL)
{
  MessageBox(NULL, pspvSubject->Value.lpszW, pspvEmail->Value.lpszW, 
    MB_OK);

  // 메시지를 삭제하고 받은 편지함에 나타나지 않도록 처리되었다는
    표시를 합니다.
  DeleteMessage(pMsgStore, pMsg, cbMsg, lpMsg, cbDestFolder, lpDestFolder, 
    pulEventType, pHandled);
}
else 
  // a 'normal' message, pass it on
  *pHandled = MRC_NOT_HANDLED;

먼저 메시지(pMsg)가 검색되고 메시지에서 항목(pspvSubject, SMS 메시지 본문)과 발신자(pspvEmail, 주소 또는 전화 번호)가 추출됩니다. 메시지 텍스트에 "zzz"가 포함된 경우 메시지 텍스트 및 발신자가 있는 메시지 상자가 캡션으로 표시됩니다. 이런 경우 메시지가 받은 편지함에서도 제거됩니다. 위의 코드 조각은 실제 샘플에 비해 약간 단순화된 것입니다.

기타 기능

이 절에서는 몇 가지 추가 변경 내용 및 새로운 기능에 대해 설명합니다.

변경 내용

  • COM 개체의 자유 스레드 모델 사용 - 모든 새로운 COM 개체(Active X 컨트롤 포함)는 성능 최적화를 위해 자유 스레드가 되어야 합니다. 이전에 개발된 COM 개체는 해당 스레딩 모델에 관계없이 계속 올바르게 실행됩니다. OS가 올바른 스레딩 모델 사용에 대해 런타임 검사를 수행하기 때문입니다.
  • 다른 헤더 파일로의 SIPSTATE 열거 이동 - SIPSTATE 열거가 aygshell.h에서 shellapi.h로 이동되었습니다. 이전에 shellapi.h 없이 컴파일했던 코드의 경우 이제는 해당 헤더 파일을 포함시켜야 합니다.
  • 일부 CEMAPI 문자열 상수를 더 이상 지원하지 않음 - 이전에 cemapi.h에 정의되어 있던 문자열 상수, kszCapAmountToFetch, kszCapAttachAmount, kszCapAgeFilter, kszCapSMTPAuthenticate 및 kszCapMoveToTrash가 더 이상 지원되지 않습니다.

새로운 기능

  • WAP 푸시 라우터 확장성으로 메시지의 사용자 지정 처리 허용 - 응용 프로그램이 다른 유형의 WAP 푸시 메시지를 차단하여 pushclient.h에 선언된 PushRouter_xxx 함수를 통한 사용자 지정 처리를 위해 다른 푸시 클라이언트로 전달할 수 있습니다. 푸시 클라이언트는 사용자 지정 처리를 위해 장치에서 특정 유형의 푸시 메시지를 수신하도록 푸시 라우터에 등록됩니다. 이 기능은 SMS 차단 기능과 반대되는 것입니다. 이 기능은 GSM 장치에서만 지원되며 CDMA 장치에서는 지원되지 않습니다.
  • CAB 파일을 사용하여 모바일 장치 제공 가능 - CAB 파일을 전달 메커니즘으로 사용하여 Pocket PC 2003 장치를 제공할 수 있습니다.
  • L2TP/IPSec VPN 지원 - 이 기술을 사용하면 모바일 장치가 IPSec(Internet Protocol security)과의 L2TP(Layer Two Tunneling Protocol) 연결을 사용할 수 있습니다. L2TP와 IPSec의 조합(L2TP/IPSec이라고도 함)은 인터넷과 같은 공용 네트워크를 통한 원격 액세스 VPN(Virtual Private Network) 연결을 위한 수준 높은 보안 기술입니다.
  • 파일 탐색기의 상황에 맞는 메뉴 확장 지원 - 이제 파일 탐색기가 등록된 파일 유형에 대한 상황에 맞는 메뉴 확장자를 지원합니다. 이러한 지원은 IContextMenu 인터페이스를 구현하고 몇 가지 레지스트리 항목을 추가하는 방식으로 수행됩니다.
  • 입력 창의 문맥상의 속성 제어 가능 - SHSetInputContext 및 SHGetInputContext 함수를 사용하면 입력 창의 문맥상의 속성을 런타임에 수정 및 쿼리할 수 있습니다. 이러한 속성에는 필드에 대한 자동 고침 및 자동 완료가 활성화되는지 여부가 포함됩니다. SHSetInputContext는 몇몇 문맥상의 기능에 대한 특정 설정 그룹을 포함하는 미리 정의된 문맥상의 클래스(예: "phone" 또는 "e-mail")도 지원합니다.
  • 알림으로 장치 켜기 강제 실행 - 새로운 #define, SHNF_DISPLAYON이 aygshell.h에 정의되어 알림 발생 시 디스플레이가 켜지도록 합니다.
  • 자동 제스처 인식 제어 가능 - commctrl.h에 정의되어 있는 NM_RECOGNIZEGESTURE 알림 코드는 Pocket PC 2003 응용 프로그램 개발자가 공용 컨트롤로 자동 제스처 인식을 이용할지 여부를 결정하는 기능을 제공합니다.
  • 구성 관리자를 통한 보다 많은 전자 메일 서비스 구성 가능 - 전자 메일 CSP(Configuration Service Provider)를 사용하면 장치의 구성 관리자 인프라를 통해 인터넷 프로토콜 전자 메일 서비스(예: IMAP4 및 POP3)를 구성할 수 있습니다.
  • 받은 편지함의 사용자 지정 읽기 또는 쓰기 폼 등록 가능 - 개발자들은 cemapi.h에 선언되는 IMessageFormEx 및 IFormProviderEx 인터페이스를 사용하여 해당 응용 프로그램 요구와 일치하는 받은 편지함 읽기 또는 쓰기 폼에 대한 사용자 지정 세트를 등록할 수 있습니다. 이 폼은 EMS 또는 MMS 클라이언트를 구성하는 데 사용할 수 있습니다.
  • IPv6 지원 - 대부분의 Pocket PC 2003 API 및 구성 요소가 이제 IPv6 스타일 주소 지정을 지원합니다. IDccManSink2가 IPv6을 지원하는 새 싱크 인터페이스이며 장치 연결에 대해 클라이언트 응용 프로그램에 알리는 데 사용됩니다.
  • Bluetooth 기능에 대한 제어 향상 - bthutil.h에 선언되는 BthGetMode 및 BthSetMode 함수는 Bluetooth 제어판의 현재 상태를 쿼리하고 그 상태(Bluetooth Power Off, Connectable, Discoverable 등)를 수정하는 기능을 제공합니다.
  • SMS를 통한 WAP 지원 - Pocket PC 2003은 Smartphone과의 연결을 통해 SMS를 통한 WAP를 지원합니다.

결론

새로운 Pocket PC 2003 SDK에는 새 플랫폼 및 장치에 맞는 모바일 응용 프로그램을 디자인 및 개발하는 데 필요한 모든 것이 들어 있습니다. Visual Studio .NET 및 Visual C# 또는 Visual Basic .NET을 사용하면 구조화된 .NET 프로그래밍의 모든 이점을 활용할 수 있으며 eMbedded Visual C++ 4.0을 사용하여 기본 장치 응용 프로그램을 계속 작성할 수 있습니다. Pocket PC 2002용으로 작성된 대부분의 응용 프로그램이 Pocket PC 2003을 설치한 장치에서도 계속 실행된다는 사실은 지속적인 투자 수익을 보장합니다.

Pocket PC 2003의 새로운 기능을 시작 및 활용하여 사용자 경험 및 응용 프로그램의 양적 측면을 강화하십시오. Pocket PC 2003 SDK  를 다운로드하십시오.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기
2007/08/21 22:32 2007/08/21 22:32
TAG 이올린 태그검색올블로그 태그검색티스토리 태그검색

trackback url :: http://dewily.com/tc/dew/trackback/146

댓글을 달아 주세요

  1. quest 2018/10/09 20:16

    I believe еverything posted made a ton of sense.

    But, think about this, supρose you composed a catchier
    post title? I am not sugɡesting your information isn't gоod, ƅut suppose yߋu added something to possibly get folk's attention? I mean ♡ 이슬처럼 ♡ :: Windows Mobile
    2003 기반의 Pocket PC 개발자를 위한 새로운 기능 is a little vanilla.
    You could glance at Yahoo's home page and see how they create news headlines to grab viewers to click.

    Υou might try adding a video or a related ρicture or two to grab readers intereѕteⅾ about everything've got to say.
    In my opіnion, it might bring your website a little livelier.

write a comment

[로그인][오픈아이디란?]