긴 여정 끝에, Project Blend: xPlatform의 2009년 11월 릴리즈를 공개하게 되었습니다. Project Blend: xPlatform (이하 xPlatform)은 .NET Framework 2.0 이상의 환경에서, C#이 아닌 다른 프로그래밍 언어들 (예: Visual Basic .NET, Visual J#, Iron Python 등)을 위한 비관리 프로그래밍 기술을 제공하고, 운영 체제에 대한 API를 제공하기 위하여 시작된 프로젝트입니다.
다운로드 링크
http://blendxplatform.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35207
xPlatform 프로젝트는 Ms-PL (Microsoft Permissive License) 아래에서 배포되는 오픈 소스 기반 소프트웨어입니다. 그리고 아직까지는 일반 개발 환경에 직접 투입하기에 적절하지 않을 수 있음을 미리 알려드리며, 정식으로 릴리즈가 되기 이전까지는 많은 피드백과 테스트가 필요합니다.
다음의 코드는 실제로 xPlatform의 Core 라이브러리를 사용하여 작성한 샘플 코드로, 비 관리 영역 상의 메모리를 Unsafe 코드를 사용하지 않는 C#을 통하여 자유롭게 제어하는 예시를 담고 있습니다.
using System;
using xPlatform;
using xPlatform.Buffers;
class Program
{
static void Main()
{
int Length = 15;
using (GlobalHeapBuffer<double> myBuffer = new GlobalHeapBuffer<double>(Length))
{
Pointer<double> ptr = myBuffer.TypedPointer;
for (int i = 0; i < Length; i++, ptr++)
ptr.SetData(i * 0.2);
ptr = myBuffer.Address;
for (int i = 0; i < Length; i++)
{
Console.WriteLine(">> ptr[i]: {0}", ptr[i]);
Console.WriteLine(">> (ptr+i).GetData(): {0}", (ptr + i).GetData());
Console.WriteLine(">> (ptr+i)[0]: {0}", (ptr + i)[0]);
Console.WriteLine(">> ptr.GetData(i): {0}", ptr.GetData(i));
Console.WriteLine();
}
ptr = myBuffer.Address;
for (int i = 0; i < Length; i++)
Console.WriteLine(">> ptr++[i]: {0}", ptr++[0]);
ptr = myBuffer.Address;
for (int i = 0; i < Length - 1; i++)
Console.WriteLine(">> (++ptr)[i]: {0}", (++ptr)[0]);
}
Console.ReadLine();
}
}
릴리즈를 다운로드하여 설치를 마무리하면, Visual Studio 및 Visual Studio Express Edition의 프로젝트 참조 추가 대화 상자에서 다음과 같이 xPlatform 프로젝트에 대한 참조가 나타납니다. 현재 배포되고 있는 이들 항목들에 대한 설명을 드리면 다음과 같습니다.
xPlatform Core에는 형식화된 포인터, 메모리 버퍼, 문자열 버퍼, 비트 연산 관련 보조 루틴 등이 포함되어있으며, ModuleBase 클래스를 통하여 API 모음에 대한 서비스를 제공하게 될 것입니다. 별도의 예외 사항이 없는 한, API 묶음들은 xPlatform Core에서 제공하는 추상 클래스 ModuleBase 클래스를 상속받게 됩니다.
xPlatform kernel32 (x86)과 xPlatform msvcrt (x86)은 이번 릴리즈에서 공개하는 API 모음입니다. kernel32.dll과 msvcrt.dll에 대한 P/Invoke 호출들을 제공하므로 단지 이들 어셈블리를 프로젝트에 추가하고, 호출하기만 하면 됩니다.
아직 이 프로젝트가 가야 할 길이 멀고, 분명히 문제점이 있을 것입니다. 이러한 부분들을 피드백으로서 제 메일 (rkttu nospam rkttu dot com) 앞으로 보내주시거나, 가급적 http://blendxplatform.codeplex.com/ 에 접속하셔서 여기서 이용하실 수 있는 이슈 트래커에 올려주시면 최대한 반영할 수 있도록 하겠습니다.
더불어서, 프로젝트에 개발자, 코디네이터로 참여해주실 분이나, 후원해주실 분들도 언제든지 환영합니다. :-)
다운로드 링크
http://blendxplatform.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35207
'Project Blend: > Cross Platform' 카테고리의 다른 글
| xPlatform for Windows Azure 프로젝트를 시작합니다. (0) | 2010/02/28 |
|---|---|
| [예제] xPlatform X Visual C++ Example: 문자열 길이 측정 (0) | 2009/11/05 |
| Project Blend: xPlatform 2009년 11월판 런칭 (0) | 2009/11/01 |
| Project Blend: xPlatform 작업 기록 (2009년 6월 29일) (0) | 2009/06/29 |
| Project Blend: xPlatform 작업 기록 (2009년 4월 2일) (0) | 2009/04/02 |
| CLIFX xPlatform Repository Open (0) | 2008/01/27 |