Microsoft .NET Compact Framework 개요
소개
.NET Compact Framework는 Microsoft .NET용 스마트 장치 개발 플랫폼으로서 언제 어디서 어떤 장치에서나 고객에게
최상의 경험을 제공한다는 Microsoft의 목표를 실현시켜 주는 중요한 부분입니다. .NET Compact Framework는 관리되는 코드와
XML 웹 서비스의 세계를 스마트 장치로 옮겨주어 PDA, 휴대폰 및 셋톱 박스와 같은 장치에서 다운로드 가능한 안전한 응용 프로그램을 실행할
수 있도록 만들어 줍니다.
.NET Compact Framework는 데스크톱 .NET Framework의 하위 집합이므로 개발자는 그 장치와 데스크톱 및 서버
환경에서 기존 프로그래밍 기술과 기존 코드를 어렵지 않게 다시 사용할 수 있습니다. Microsoft는 .NET Compact
Framework를 목표로 Visual Studio .NET을 확장한 Smart Device Programmability for Visual
Studio .NET을 제공할 예정입니다. 이는 .NET Framework 사용 경험이 있는 4백만의 Visual Studio 개발자라면 누구나
이 .NET Compact Framework를 실행하는 스마트 장치용 응용 프로그램을 개발할 수 있다는 것을 의미합니다. 따라서 Visual
Studio .NET 개발자는 누구나 스마트 장치 개발자가 될 것이므로 .NET Compact Framework를 위한 개발자가 다른 어떤
장치나 모바일 프로그래밍 플랫폼 개발자보다 현격히 많아질 것입니다.
이 외에도 .NET Compact Framework는 모든 .NET Framework의 도구 및 프로그래밍 모델을 공유하므로 스마트 장치용
응응 프로그램 개발 비용이 크게 줄어들고 효율성이 증가할 것입니다. 따라서 모바일 응용 프로그램의 개발 비용이 높아 개발이 어렵다고 믿었던
기업들도 이제는 광범위한 개발자 재교육을 필요로 하지 않는 보다 합리화된 장치 개발 프로세스를 경험하게 될 것입니다. 그리고 직원 효율성을
높여주는 새로운 모바일 응용 프로그램을 개발할 수 있게 됨에 따라 이들 기업은 비즈니스 비용을 더욱 줄일 수 있게 될 것입니다.
기회
지난 수년간 온라인 스마트 장치의 수가 놀라울 정도로 늘어났으며, 2000년 한 해에만 1,000만 개 이상의 PDA가 팔렸습니다. 스마트
휴대폰 시장도 급속도로 성장하고 있는 가운데, 디지털 TV 셋톱 박스와 자동차 컴퓨팅 장치 사용 또한 시간이 갈수록 증가하여 상당한 규모의
시장을 형성하게 될 것으로 보입니다. 무선 네트워크 기술(예:2.5G, 3G, 802.11b)의 확산은 스마트 장치를 통해 거의 모든 장소에서
전세계의 기업 네트워크를 연결할 수 있다는 것을 의미합니다. 이로 인해 개발자들과 기업은 이러한 새 장치의 파워와 이동성, 그리고 연결성을
이용할 수 있는 기회를 얻게 되었습니다.
하지만 이처럼 새롭게 떠오르는 온라인 장치 시장을 현실화하려면 수많은 장애물을 극복해야 합니다. 현재는 모바일 CPU와 모바일 운영 체제의
종류가 너무 많아서 개발자들이 어떤 응용 프로그램 작성 방법을 사용할지, 어떤 장치에 맞는 응용 프로그램을 작성할지를 선택하기가 아주 힘든
상태입니다. 그리고 CPU와 운영 체제의 다양한 기능 또한 통합된 대형 스마트 장치 응용 프로그램 시장의 형성을 불가능하게 만드는 요인입니다.
개발자는 어떤 응용 프로그램 모델이 무선 응용 프로그램 구축에 가장 적합한지 확신을 갖지 못하고 있습니다. 어떤 점에서는
WAP(Wireless Application Protocol)가 "정답"으로 여겨졌지만 WAP는 지속적인 연결을 필요로 하며 다수의 최종 사용자
응용 프로그램에 대한 풍부한 대화형 환경을 제공하지 못합니다. 게다가 WAP는 무선 네트워크 연결 시 PDA에서 이용할 수 있는 리소스를 전혀
활용하지 않습니다.
클라이언트측 응용 프로그램이 모바일 장비에서 실행되도록 하면 이러한 문제 중 일부를 해결할 수 있긴 하지만 이 방법은 더 많은 장애를
초래할 수 있습니다. 응용 프로그램이 제대로 작성되지 않아 자신의 전화를 "다시 부팅"해야 하는 휴대폰 사용자가 느끼는 황당함이나, 잘못된
클라이언트 소프트웨어 때문에 모바일 장비를 회수하는데 드는 비용을 한 번 상상해 보십시오. 이보다 더 심각한 문제는 현재 사용되는 클라이언트측
솔루션이 주류 데스크톱 프로그래밍 환경과 너무 달라서 광범위한 개발자 재교육이 필요하며, 이에 따라 많은 기업에 터무니없이 큰 비용을 초래할 수
있다는 것입니다.
.NET Compact Framework
.NET Compact Framework는 이러한 많은 문제점을 해결하며, 새로운 모바일 장비 및 모바일 서비스의 물결을 주도할 우수한
사용자 경험을 가능하게 합니다. .NET Compact Framework는 PDA에서 스마트 휴대폰 및 셋톱 박스 등의 첨단 장치에 이르는
다양한 장치에 .NET Framework 프로그래밍 모델을 제공합니다.
코드 공유 및 효율성 증가
.NET Compact Framework는 다양한 장치에 동일한 프로그래밍 모델을 전달하므로 여러 장치에서 실행될 응용 프로그램 개발
프로세스가 간단해집니다. 그리고 비즈니스 논리, 데이터 액세스 계층, XML 웹 서비스 계층 등 응용 프로그램의 핵심 코드 대부분을 여러 장치
및 데스크톱에서 공유할 수 있습니다. 이에 따라 응용 프로그램 개발의 효율성은 크게 증가합니다.
각 장치에 맞는 최상의 경험
.NET Compact Framework는 다른 장치 프로그래밍 플랫폼에서 사용되는 최소 공분모 방식을 사용하지 않는다는 점을 염두에
두시기 바랍니다. 개발자들은 동일한 프로그래밍 모델에 작성함으로써 폭넓은 휴대성과 재사용 가능성을 얻을 수 있지만, .NET Compact
Framework는 또한 특정 장치 모델이나 장치 제품군 고유의 기능을 노출하는 클래스 라이브러리를 사용해 확장되도록 만들어 졌습니다. 따라서
이 방법을 사용할 경우 개발자는 기술과 코드를 재사용하면서도 고유한 개별 장치에서 가능한 최상의 응용 프로그램 경험을 창출할 수 있습니다.
보다 우수한 장치를 가능하게 하는 엔터프라이즈 클래스 기능
Microsoft Pocket PC 장치가 성공한 원인 중 하나는 이 장치가 정밀한 비즈니스 응용 프로그램을 처리하는데 필요한 컴퓨터
리소스를 가지고 있다는 점입니다. .NET Compact Framework는 Pocket PC 플랫폼을 활용하여 Pocket PC 장치에서의
엔터프라이즈 응용 프로그램 개발 과정을 크게 단순화하는 향상된 프레임워크를 제공합니다.
견고한 코드, 보안 실행
.NET Compact Framework는 클라이언트측 코드 실행에 필요한 견고한 보안 환경을 제공합니다. .NET Compact
Framework가 지원하는 관리되는 코드 모델은 코드의 안정성을 높여주므로 소프트웨어 결함이 줄어듭니다. 이 관리되는 코드 실행 엔진은 잘못
실행된 응용 프로그램이 장치를 "파손"하지 못하도록 만듭니다. 이와 동시에 .NET Compact Framework에 구축된 증거 기반 보안
모델은 잘못된 코드가 보안 시스템 리소스에 액세스할 수 없도록 만듭니다. 이 보안 모델은 또한 소프트웨어 업데이트가 무선 네트워크를 통해
안전하게 전달되도록 하므로 큰 비용 손실을 초래하는 장치 회수의 가능성이 줄어 듭니다.
우수한 오프라인 응용 프로그램 지원
.NET Compact Framework는 보안되는 클라이언트측 코드를 사용하여 오프라인에서 사용할 수 있는 응답형 응용 프로그램을
가능하게 합니다. 이에 따라 이 네트워크에 액세스할 경우 발생할 수 있는 간헐적인 연결 문제에도 불구하고 자연스러운 경험이 가능해집니다.
개발자는 클라이언트측과 서버측 프로그래밍의 올바른 혼합비를 선택하여 풍부한 대화형 사용자 경험을 제공할 수 있습니다.
개발 비용 감소로 새로운 기회 제공
.NET Compact Framework가 새롭게 제공하는 이 간편한 개발 방법으로 인해 완전히 새로운 폭넓은 응용 프로그램과 서비스가
만들어질 것이며, 이에 따라 제조업체들은 모바일 장비를 통해 시장에서 더욱 큰 부분을 차지하게 되고 개발자를 위한 새로운 기회도 창출될
것입니다. 그리고 모바일 장비 개발에 필요한 비용이나 개발자 특수 교육을 감당할 능력이 없었던 많은 기업들이 새로운 모바일 응용 프로그램을 더욱
효율적으로 개발할 수 있게 되어 비즈니스 비용도 절감되고 시장 기회도 더욱 확대될 것입니다.
우수한 모바일 경험
.NET Compact Framework는 개발자들이 다양한 범위의 스마트 장치에 스마트 클라이언트 응용 프로그램 뿐만 아니라 XML 웹
서비스 또한 손쉽게 만들고 구축할 수 있도록 해줍니다. .NET Compact Framework를 실행하는 장치에는 다음과 같은 기능이 포함될
것입니다.
- XML 웹 서비스. XML 웹 서비스 액세스 지원이 .NET Compact Framework에 통합됩니다. 데스크톱 .NET
Framework와 마찬가지로 XML 웹 서비스 호출이 함수 호출만큼 간단합니다.
- 기업 데이터 액세스. Pocket PC에서 응용 프로그램은 Microsoft ADO.NET 데이터 클래스를 사용해 무선
연결로 기업 데이터에 액세스할 수 있습니다. 그리고 Pocket PC에서 Pocket Outlook을 통해 전자 메일도 이용할 수 있습니다.
휴대폰과 같은 소형 장치에서는 XML 웹 서비스와 Microsoft Mobile Information Server를 사용하는 통신 회사
네트워크를 통해 회사 데이터와 전자 메일을 이용할 수 있습니다.
- 상거래. .NET Compact Framework에는 암호화 지원이 포함되어 있으므로 응용 프로그램은 공개
네트워크를 통한 보안 전자 상거래 작업을 지원할 수 있습니다.
- 뉴스 및 정보. 응용 프로그램은 증권 시황과 같은 최신 뉴스와 정보를 .NET Compact Framework를 실행하는
모바일 장비에 전달할 수 있습니다.
- 게임 및 양식 기반 응용 프로그램. 휴대폰과 같은 소형 장치를 포함한 모든 장치에서 개발자는 경량의 그래픽 및
그리기 지원을 활용하여 게임 및 기타 그래픽이나 텍스트 응용 프로그램을 작성할 수 있습니다. 그리고 Pocket PC와 같은 보다 강력한
장치에서는 ADO.NET을 사용해 회사 데이터에 액세스하는 데이터 바운드 컨트롤 등 모든 기능을 갖춘 그리기 및 양식 기능에 액세스할 수
있습니다.
.NET Compact Framework는 이 모든 서비스에 대한 액세스를 제공할 뿐만 아니라 개발자들이 이러한 서비스를 결합하여
자연스럽게 사용자 지정된 응용 프로그램과 서비스를 최종 사용자에게 제공할 수 있도록 만들어 줍니다.
다양한 고객 층에 어필
.NET Compact Framework의 기능은 다음과 같은 다양한 고객 층에 어필합니다.
- 개발자. 가장 먼저 개발자들이 스마트 장치용 응용 프로그램 개발이 데스크톱 응용 프로그램 작성만큼 쉽다는 사실을 알게 될
것입니다. .NET Compact Framework는 데스크톱 .NET Framework 프로그래밍 모델의 하위 집합을 사용하므로 데스크톱용
Microsoft .NET 연결 응용 프로그램을 만드는 개발자라면 동일한 도구와 동일한 프로그래밍 모델을 사용해 장치 응용 프로그램을 작성할 수
있습니다.
- 최종 사용자. 최종 사용자는 .NET Compact Framework를 지원하는 PDA, 휴대폰 및 기타 장치에서 실행될 새
응용 프로그램 및 서비스로 인해 이익을 얻게 될 것입니다. 이러한 응용 프로그램과 서비스는 사용자를 장치 외부에 존재하는 데이터의 세계로
안전하면서도 확실하게 연결해 줄 것입니다. 게다가 응용 프로그램은 간헐적인 네트워크 연결에서도 우수한 사용자 경험을 제공할 것입니다.
- 장치 제조업체. .NET Compact Framework는 일관성 있는 프로그래밍 모델을 개발자에게 제공하여 현재 장치
분야에서 다른 어떤 단일 시장보다 훨씬 큰 응용 프로그램 및 서비스 시장을 가능하게 해줍니다. 자사 장치에 .NET Compact
Framework를 사용하는 장치 제조 업체는 이 시장에 진출할 수 있으므로 장치 판매가 증가할 것입니다. 이 외에도 장치 제조업체는 .NET
Compact Framework 외에 전문 소프트웨어 라이브러리도 손쉽게 제공할 수 있으며, 이러한 라이브러리는 개발자가 장치의 특수 기능을
완벽하게 이용할 수 있도록 만들어 줄 것입니다.
- 네트워크 운영자. 휴대폰 통신 업체나 케이블 네트워크 운영업체 등의 회사는 .NET 지원 장치에 응용 프로그램과
서비스를 전달하여 새로운 XML 웹 서비스 비즈니스를 구축하는 기능을 통해 이익을 얻을 수 있습니다.
핵심 기능 및 이점
.NET Compact Framework는 데스크톱 .NET Framework의 하위 집합으로서, 데스크톱 버전에서 볼 수 있는 동일한
핵심 기능이 많이 포함되어 있습니다.
- 처음부터 XML 웹 서비스용으로 개발. XML 웹 서비스는 스마트 장치에 아주 유용한 응용 프로그램 모델입니다. 네트워크에
연결된 장치는 다른 다양한 시스템과 통신을 해야 하며, 표준화된 XML 웹 서비스 프로토콜은 운영 체제나 프로그래밍 언어에 관계 없이 응용
프로그램의 통신을 허용합니다. 데스크톱 .NET Framework와 마찬가지로 .NET Compact Framework도 처음부터 XML 웹
서비스 작성 및 소비를 위한 최상의 개발 플랫폼으로 디자인되었습니다.
- 데스크톱 개발자에게 친숙한 프로그래밍 모델. .NET Compact Framework는 데스크톱 .NET Framework와
동일한 프로그래밍 모델을 사용합니다. 따라서 개발자들은 .NET Compact Framework용 새 응용 프로그램을 손쉽게 작성할 수 있으며,
기존의 .NET Framework 응용 프로그램의 일부를 보다 쉽게 스마트 장치로 마이그레이션할 수 있습니다.
- Visual Studio .NET. 데스크톱 및 서버 응용 프로그램 제작에 사용되는 Visual Studio .NET과
정확히 동일한 버전이 .NET Compact Framework와 함께 실행되어 장치 응용 프로그램 작성에 사용될 것입니다. .NET
Compact Framework는 데스크톱 버전과 동일한 프로그래밍 모델과 도구를 사용하므로 현재 데스크톱 응용 프로그램을 작성하고 있는
4백만의 Visual Studio 개발자들은 .NET Compact Framework를 실행하는 스마트 장치용 응용 프로그램도 어렵지 않게
작성할 수 있습니다.
- 증거 기반의 보안. .NET Compact Framework는 데스크톱 .NET Framework와 동일한 증거 기반 보안
모델을 사용합니다. 보안이 전혀 되지 않거나 미숙한 초기 시스템을 사용하는 다른 장치 프로그래밍 시스템과는 달리 이 증거 기반의 보안 모델은
유연성이 있으므로 더 많은 권한을 가진 응용 프로그램이 보안 서비스에 액세스할 수 있도록 만듭니다. 예를 들면 서명되지 않은 셰어웨어 응용
프로그램은 스크린과 같은 기본 시스템 리소스에 대해서만 액세스 권한을 갖는 반면, 장치 제조업체 또는 네트워크 통신 업체에서 서명하고 권한을
제공한 응용 프로그램은 보안 리소스에 대한 제어 액세스 권한을 갖습니다.
- 리소스가 제한된 장치를 위해 개발됨. .NET Compact Framework는 처음부터 휴대폰만큼 작은 리소스가 제한된
장치에서 실행되도록 개발되었습니다. 따라서 프레임워크 자체도 메모리 효율성이 높으며, 응용 프로그램이 더 이상 필요하지 않을 때에는 그 응용
프로그램에서 주의 깊게 시스템 리소스를 재생합니다.
- 우수한 성능. .NET Compact Framework에서 실행되는 응용 프로그램은 기계어 코드로 실행되며, 이 코드는
기본 제공되는 JIT(just-in-time) 컴파일러에서 만들어집니다. JIT 기술을 사용하면 코드 인터프리터를 통해 다른 장치 프로그래밍
시스템보다 우수하게 성능 코드를 실행할 수 있습니다.
- 개발자 효율성 증가 및 개발 비용 감소. 공유 프로그래밍 모델과 공유 Visual Studio .NET 도구 집합을 사용함에
따라 모바일 장비 개발 비용이 크게 줄어들 것입니다.
요약
.NET Compact Framework는 언제 어디서 어떤 장치를 사용하든지 고객에게 최상의 경험을 제공한다는 Microsoft의 목표를
실현시켜 주는 핵심적인 부분입니다. Visual Studio .NET 개발자는 누구나 스마트 장치 개발자가 될 것이므로 .NET Compact
Framework 개발자가 다른 어떤 장치나 모바일 프로그래밍 플랫폼 개발자보다 현격히 많아질 것입니다. 가장 중요한 것은 .NET
Compact Framework가 스마트 장치용 응용 프로그램의 개발 비용을 크게 줄이고 효율성을 높여줄 것이라는 사실입니다. 따라서 기업은
직원의 효율성을 높이는 새로운 모바일 응용 프로그램을 개발하여 비즈니스 비용을 줄이고 새로운 시장 기회를 포착할 수 있습니다.