롱혼 환경에서 개발자들이 애플리케이션을 개발할 수 있게 하는 프로그래밍 모델이 WinFX이다. 개발자에게 있어 롱혼에서 제공되는 새로운 개발 플랫폼과 운영체제의 변화는 기회인 동시에 위기가 될 수도 있다. 롱혼의 개발자 플랫폼인 WinFX는 .NET에서 시작된 MS 개발 플랫폼 변화의 완성이라고 할 수 있다. 우선 WinFX에 이르는 프로그래밍 모델 변화의 배경을 이해해보자.
가장 일반적인 프로그래밍 모델인 Win32는 C언어를 사용하여 절차적 저수준 API로 운영체제의 기능을 가지고 있었다. 그러나 Win32는 메모리 관리의 어려움과 다른 프로세스 영역 침범, 그리고 낮은 생산성 등의 단점이 있어이를 보안한 것이 MFC(MicrosoftFoundation Classes)이다.
MFC는 Win32의 절차적 패러다임의 약점을 극복하기 위해 객체지향적 C++ 클래스 라이브러리를 제공하였다. MFC는 자주 사용되는 기능을 추상화한 클래스를 제공함으로써 일상적 코드 작성의 노력을 크게 감소시켜 개발자 생산성을 높여주고, 오류 발생 가능성도 줄일 수 있었다. 그러나 MFC가 직접 제공하지 않는 기능이 필요한 경우, Win32와 MFC 클래스의 상호작동 규칙까지 이해해야 하는 부담이 있었다. 윈도우 플랫폼의 빠른 확산으로 보다 생산적인 환경이 필요하게 되었고, MFC와 Win32를 사용하여 보다 다양한 기능을 구현하는 것을 일부 양보하는 대신 빠른 개발 생산성에 초점을 맞춘 Visual Basic과 같은 RAD 개발 환경이 기업 환경에서는 주류로 자리를 잡게 되었다.
이러한 개발 환경은 인터넷 덕분에 빠른 속도로 변화하게 되었고, 기업 환경 또한 변화하게 되었다. ASP(Active Server Page)는 기능적 코드와 HTML과 같은 마크업 언어로 구성된 웹 애플리케이션 개발을 위한 서버 측 기술로 인터넷 환경의 급속한 팽창과 함께 가장 대표적인 웹 애플리케이션 개발 환경으로 자리를 잡았다.
.NET은 이러한 이질적인 개발 환경과 상호 운용을 위한 개발/운용 환경으로 개발 언어 중립적인 실행 환경인 CLR(Common Language Runtime)과 표준 라이브러리 BCL(Base Class Libraries)을 바탕으로 일관되게 웹서비스를 통한 상호 운용 시스템을 구축하는 것을 목표로 제안되었다. .NET은 기존의 윈도우로 대변되는 리치 클라이언트와 웹으로 대변되는 씬 클라이언트, 양쪽의 장점을 함께 수용한 스마트 클라이언트 환경 구축이 가능한 개발 환경을 제공하고 있다.
이러한 통합된 연결 지향의 개발 환경을 기본으로 하는 것이 WinFX이다. WinFX는 롱혼의 하부 시스템,즉 Avalon, Indigo, WinFS 등의 기술을 활용할 수 있도록 해주는 기본 프로그래밍 모델이다. WinFX를 기반으로 개발자들은 Avalon을 통해 웹 애플리케이션과 윈도우 애플리케이션 그리고 모바일 애플리케이션을 통합 개발할 수 있고, XAML(Extensible Application Markup Language) 언어를 통해 프리젠테이션 계층과 비즈니스 로직 계층을 분리하여 좀 더 간편하게 애플리케이션을 구현할 수 있다. 또한 서비스 지향의 시스템을 구축하기 위한 여러 유형의 커뮤니케이션을 서비스/메시지/채널 등의 개념으로 통합한 Indigo를 사용하여 구현할 수 있다.
또한 WinFX는 좀 더 안정적이고 재 부팅이 없는 윈도우 업데이트 서비스를 바탕으로 “Click Once"라는 애플리케이션 배포, 버전 관리 도구를 제공한다. 그리고 시스템과 애플리케이션에 대한 트레이싱 기능과 하드웨어 모니터링과 드라이브 검증 등의 서비스를 통해 안정적인 컴퓨팅 환경을 지원한다. 여기에 좀 더자유로운 CPU 스케줄링과 디스크 입출력, GPU 성능이 개선될 것으로 보인다.
<ZDNET Korea "롱혼, 닷넷으로 MS 새 이정표 세울까?" 에서 일부만 발취>
댓글 없음:
댓글 쓰기