Mono 2.0 릴리즈 노트

Mono 2.0은 오픈 소스 기반의 이식성 높은 닷넷 프레임워크 구현으로, Unix, Windows, Mac OS 등의 운영 체제를 지원합니다.

발표일: 2008년 10월 6일

Microsoft 호환 API

  • 데이터베이스 액세스를 위한 ADO.NET 2.0 API
  • 웹 기반 응용프로그램 개발을 위한 ASP.NET 2.0 API
  • 데스크톱 응용프로그램 개발을 위한 Windows Forms 2.0 API
  • XML 문서 활용 및 제어를 위한 System.XML 2.0 API
  • 언어 연동 질의 (LINQ) 구현을 위한 System.Core API
  • XLINQ 구현을 위한 System.Xml.Linq API
  • 이식성 높은 그래픽 렌더링을 제공하는 System.Drawing 2.0 API

Mono API

  • Gtk# 2.12: Gtk+ 2.12와 GNOME 라이브러리에 대응되며, Linux, Windows, Mac OS X를 위한 데스크톱 응용프로그램 개발을 지원합니다.
  • Mono.Cecil: ECMA CLI 규격에 맞는 바이너리 파일을 생성하기 위한 라이브러리
  • Mono.Cairo: 2D 그래픽 렌더링을 위한 Cairo 그래픽 라이브러리 (이미지, GUI, 포스트스크립트, PDF 등의 생성을 지원합니다.)
  • Mono의 SQLite 지원: SQLite 기반 데이터베이스를 생성하거나 활용할 수 있습니다.
  • Mono.Posix: Linux와 Unix에 한정되는 기능을 관리되는 응용프로그램상에서 활용할 수 있게 하며, 저수준/고수준 API를 모두 제공합니다.

Mono에 번들링된 Thirdparty API

  • PostgreSQL, DB2, Oracle, Sybase, Microsoft SQL Server, SQLite, Firebird를 지원합니다.
  • C5 제네릭스 라이브러리: 제네릭 기반 컬렉션 클래스 라이브러리인 C5 라이브러리를 번들링하였습니다.

컴파일러

  • LINQ의 모든 사양을 지원하는 C# 3.0 컴파일러가 제공됩니다.
  • Visual Basic 8.0 컴파일러가 제공됩니다.
  • IL 어셈블러, 디스어셈블러와 개발에 필요한 모든 도구가 제공됩니다.

도구

  • 디버거: 관리 코드 환경에서 사용 가능한 첫 공식 디버거가 제공됩니다.
  • Gendarme: 닷넷 기반 응용프로그램과 라이브러리의 문제점을 진단합니다. 컴파일러가 진단하지 못하는 문제들을 추가 점검할 수 있도록 고안되었습니다.
  • Mono Linker: Mono 런타임 전체를 배포하지 않고 필요한 어셈블리군만을 통합하여 배포 런타임의 크기를 줄일 수 있도록 도와줍니다.
  • 이 외에도 Mono Tuner, Mono 문서화 도구가 제공됩니다.

라이선스

Mono는 오픈 소스 프로젝트로서, 클래스 라이브러리와 C# 컴파일러는 MIT X11 라이선스, 런타임은 GNU LGPL, SDK 도구들은 GNU GPL과 MIT X11 라이선스로 나뉘어서 제공됩니다.
Mono을 정적으로 링크하는 경우 (예를 들어 Apple iPhone이나 Nintendo Wii 또는 다른 모든 형태의 사유형 운영 체제들을 위하여) 라이선스를 별도로 문의할 수 있습니다.

주요 포커스

  • Windows Forms: ToolStrip과 MenuStrip이 완전히 구현되었습니다. 기존 Windows Forms 1.0의 메뉴 및 도구 모음 컨트롤도 유효합니다.
  • Windows Forms: VirtualMode 등 몇 가지 고급 기능이 누락되기는 하였지만, 이전보다 더 낳은 DataGridView 컨트롤이 제공됩니다.
  • Windows Forms: Mozilla Gecko 렌더링 엔진을 기준으로 WebBrowser 컨트롤이 구현되어있습니다.
  • Windows Forms: TableLayoutPanel, FlowLayoutPanel, SplitContainer와 같은 특수 컨테이너 컨트롤이 구현되었습니다.
  • Windows Forms: XIM을 통한 다국어 입력이 지원됩니다.
  • News: Paint.NET 3.0의 포팅 작업이 일정 수준 이상 진행되었습니다.
  • Component: 성능 카운터 구현이 제공됩니다.
  • ASP.NET: Virtual Path Provider 기능이 제공되며, Browser 정보 파일을 사용할 수 있습니다.
  • Visual C++: Microsoft Visual C++ 7.0 컴파일러 이후부터 제공되는 혼합 모드 어셈블리를 Windows용 모노에서 실행할 수 있습니다.
  • BCL: 64비트 인덱스를 사용하는 대규모 배열을 지원합니다. (--enable-big-arrays 옵션이 필요합니다.)
  • DTrace 지원: Mac OS X와 Solaris에서 Mono를 사용할 경우 DTrace 추적을 지원합니다. (--enable-dtrace 옵션이 필요합니다.)

Mono 프로젝트 홈페이지: http://www.mono-project.com/
Mono 2.0 다운로드 페이지: http://www.go-mono.com/mono-downloads/download.html

출처: http://www.mono-project.com/Release_Notes_Mono_2.0

Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://rkttu.com/rkttublog/rss/comment/258
  2. 김시억 2008/10/21 01:40  편집/삭제  댓글 작성  댓글 주소

    웹브라우져컨트롤에 로딩된 html페이지 자바스크립트실행관련

    <select id="editorSelect" name="editorSelect" onchange="tool_EditorChange(this.value, true);">
    <option value="H" >에디터</option>
    <option value="S">HTML</option>
    <option value="T" >텍스트</option>
    </select>

    이렇게 되어 있는데요..HTML 이거를 선택되게 해야하는데요.....

    WebBrowser1.Document.GetElementById("editorSelect").SetAttribute("value", "S");
    Object[] args4 = new Object[1];
    args4[0] = "this.value";
    WebBrowser1.Document.InvokeScript("tool_EditorChange", args4);


    이렇게 해도 셀렉트박스가 변경이 되지를 않네요 ㅠ.ㅠ.
    조언을 다시한번더 부탁드립니다

    • OpenID Logo남정현 2008/10/29 00:53  편집/삭제  댓글 주소

      답이 조금 늦었네요. tool_EditorChange 메서드가 혹시 C#에서 작성한 메서드라면, 그리고 이벤트 메서드로 private 접근 제한자가 걸려있으면 ScriptingObject로 설정했어도 이벤트가 걸리지 않습니다.

      제 생각에는, DocumentCompleted 이벤트를 통하여 해당 SELECT 요소를 찾아서 onchange 이벤트를 C# 코드에서 걸어주는것이 좋지 않나 생각이 듭니다.

  3. OpenID LogoMr. 김 2008/11/19 13:59  편집/삭제  댓글 작성  댓글 주소

    VB.NET 의 mono 컴파일러는 없는걸로 기억하고있는데. Mono 2.0에서 지원하기 시작했군요...
    그런데 c#컴파일러는 C# 3.0 버전이고 VB.NET은 8.0이네요 지금 나와있는게 9.0일텐데.. 나중에 한번 해보고 싶긴한데.. 윈도판에는 모노 컴파일러가 없는거 같네요. 그냥 인터프리터만 들어있고..(XSP(ASP.NET)를 VB.NET 코드로 짜도 에러 안날려나.. (1.0에서는 에러났음))

    그리고 모노덕에 C#, VB.NET(이건 좀 불확실)이 멀티 플랫폼이 됬죠..

    • OpenID Logo남정현 2008/11/19 18:17  편집/삭제  댓글 주소

      닷넷은 속도가 좀 느리긴 하지만 CLR, CLI에 대한 대체 구현이 하나 둘씩 자바의 경우처럼 만들어지고 있고 각기 목적이 있습니다. 실버라이트, 닷넷 마이크로 프레임워크 (컴팩트 프레임워크가 아닙니다), GNU .NET 외에도 MS가 내세우는 비 윈도우 기반 OS인 미도리의 전신으로 추정되는 연구형 OS 프로젝트인 싱귤래러티가 채택하는 Bartok 컴파일러 및 관련 런타임 등등 상당히 많은 편입니다. 점점 선택의 폭도 넓어질 것이고 닷넷이 윈도 OS 전용이라는 편견도 더 빠르게 깨어질 것이라고 생각합니다.

      사설이 좀 길었습니다. ^^; VB.NET 컴파일러는 보신대로 8.0 버전에 머물러 있는 상태입니다. (많이 아쉽죠. ㅎㅎ) 약간씩 차이가 있는 것으로 알고 있습니다만 VB.NET 컴파일러가 포함되지 않은 배포판을 받으셨다면 모노 SVN 노드에서 VB.NET 컴파일러를 받아보실 수도 있을 듯 합니다.

      개인적으로는 모노의 모든 기능을 경험하고 이해하는 방법으로 VMware 기반 패키지를 사용하는 것을 권하고 싶습니다. 윈도우를 지우지 않아도 곧바로 원하는 환경으로 전환해서 개발하는 것도 가능하고 상당히 요긴하게 쓰입니다. :-)

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

Mono 1.0이 나온지 무려 4년여만에 2.0이 새롭게 모습을 드러내고 있습니다. 정식 버전은 올해 가을에 발표될 예정이며 이제 슬슬 그 윤곽을 드러내고 있습니다.

http://mono.ximian.com/monobuild/preview/archive/2.0/windows-installer/0/mono-2.0-gtksharp-2.10.4-win32-0.exe

Mono 2.0은 Microsoft .NET Framework 2.0과의 호환성을 상당부분 개선하였으며, C# 3.0 스펙과, Visual Basic 컴파일러를 내장하고 있고, IronPython과 Microsoft DLR 환경을 지원하는, 멀티 플랫폼 기반 CLI 프레임워크입니다. Microsoft .NET이 Windows에 최적화된 것이 특징이라면 Mono는 이와는 반대로 다양한 플랫폼에 걸쳐서 다재다능한 역할을 수행해내는 것이 다른 점이며, 최근에는 임베디드 장비로도의 이식이 진행 중입니다.

Major Highlights (주요 변경 사항)

Mono 2.0 is a major milestone in the Mono project, and it supports the following features:
Mono 2.0은 Mono 프로젝트에 있어서 중요한 전환점이며, 다음의 기능들을 지원합니다:

Microsoft Compatible API (Microsoft 호환 API):

  • ADO.NET 2.0 API for accessing databases.
    데이터베이스 접근을 위한 ADO.NET 2.0 API를 지원합니다.
  • ASP.NET 2.0 API for developing Web-based applications.
    웹 기반 응용프로그램 개발을 위한 ASP.NET 2.0 API를 지원합니다.
  • Windows.Forms 2.0 API to create desktop applications.
    데스크톱 응용프로그램 개발을 위한 Windows Forms 2.0 API를 지원합니다.
  • System.XML 2.0: An API to manipulate XML documents.
    XML 문서를 다루기 위한 API인 System.Xml의 2.0 API를 지원합니다.
  • System.Core: Provides support for the Language Integrated Query (LINQ).
    언어 통합 질의문 (LINQ)를 위한 System.Core API를 지원합니다. (닷넷 3.5)
  • System.Xml.Linq: Provides a LINQ provider for XML.
    Linq를 통한 XML 접근을 위한 XLinq를 지원합니다.
  • System.Drawing 2.0 API: A portable graphics rendering API.
    이식 가능한 그래픽 API인 System.Drawing의 2.0 API를 지원합니다.

Mono APIs (Mono 고유의 API, Microsoft .NET에는 없는 사항들입니다):

  • Gtk# 2.12: A binding to the Gtk+ 2.12 and GNOME libraries for creating desktop applications on Linux, Windows and MacOS X.
    Gtk+ 2.12와 GNOME 라이브러리에 바인딩되는 GTK# 2.12를 제공하여 리눅스, 윈도, 맥 OS X를 위한 데스크톱 응용프로그램을 제작할 수 있습니다.
  • Mono.Cecil: A library to manipulate ECMA CLI files (the native format used for executables and libraries).
    ECMA CLI 파일을 낮은 수준에서 재생산할 수 있는 Mono.Cecil 라이브러리를 제공합니다. (System.Reflection.Emit보다 한단계 더 낮은 수준의 기능을 뜻합니다. Mono.Cecil을 이용하면, 프레임워크의 버전이나 환경을 초월하는 특수 어셈블리 생산이 가능합니다.)
  • Mono.Cairo: A binding to the Cairo Graphics library to produce 2D graphics and render them into a variety of forms (images, windows, postscript and PDF).
    Cairo 그래픽 라이브러리에 바인딩되는 Mono.Cairo 라이브러리를 제공하며, 이미지, GUI, 포스트스크립트, PDF 제작을 지원합니다.
  • Mono's SQLite support: a library to create and consume databases created with SQLite.
    SQLite 데이터베이스에 관한 API가 제공됩니다.
  • Mono.Posix: a library to access Linux and Unix specific functionality from your managed application. With both a low-level interface as well as higher level interfaces.
    리눅스와 유닉스 시스템의 낮은 수준 API들과 함께 이를 응용하는 고급 API들을 공개적으로 지원하는 Mono.Posix 라이브러리를 제공합니다. Microsoft .NET의 Microsoft.Win32 네임스페이스의 위치와 유사한 것입니다.

Third Party APIs bundled with Mono (Mono에 번들링된 써드파티 API들, 역시 Microsoft .NET에는 없는 사항들입니다):

  • Extensive support for databases: PostgresSQL, DB2, Oracle, Sybase, SQL server, SQLite and Firebird.
    PGSQL, DB2, Oracle, 사이베이스, SQL 서버, SQLite, 파이어버드 DB와의 연동을 제공합니다.
  • C5 Generics Library: we are bundling the C5 generics collection class library as part of Mono.
    C5 제네릭 라이브러리를 번들링합니다. (제네릭을 이용한 다양한 컨셉 컬렉션을 제공합니다. C++ STL과 비슷한 개념으로 생각하시면 됩니다.)

Compilers (컴파일러):

  • C# 3.0 compiler implementation, with full support for LINQ.
    C# 3.0 컴파일러와 함께 LINQ가 지원됩니다. (C# 1.0과 2.0은 이미 지원되고 있습니다.)
  • Visual Basic 8 compiler.
    Visual Basic 8.0 컴파일러가 지원됩니다.
  • IL assembler and disassembler and the development toolchain required to create libraries and applications.
    IL 어셈블러와 디스어셈블러가 지원됩니다.

좀 더 자세한 정보는 http://www.mono-project.com/ 을 참고하세요. :-)

Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

개요

근래에 들어서 Mono 프로젝트가 좀 더 대중에게 친숙한 방향으로 프로젝트를 발전시켜가고 있습니다. 가장 눈에 띄는 것은, 드디어 MonoDevelop가 수년간의 개발 과정을 거쳐서 드디어 1.0 버전을 처음 내놓았습니다. MonoDevelop는 Visual Studio에 익숙한 프로그래머들을 위한 오픈 소스 기반의 IDE (통합 개발 환경)입니다.

Windows 운영 체제에서는 Visual Studio나 SharpDevelop를 이용하여 닷넷 기반 응용프로그램을 손쉽게 개발할 수 있었습니다. 하지만 Linux, Solaris, Mac OS X등의 운영 체제에서는, 단순히 Mono 라는 프레임워크가 있었을 뿐 이에 대응되는 쓰기 편리한 개발 도구는 개발 단계였다는 점에서 여러 프로그래머들이 반길만한 즐거운 소식이 아닐 수 없습니다.

Mono Framework는 Miguel de Icaza 및 공동 창업자에 의하여 처음 설립된 Ximian (구 Helix Code)의 손으로 처음 시작된 것입니다. 그리고 이후 Novell에 합병되어 Mono Framework는 좀 더 전략적인 모습을 갖추게 되었고 현재는 Novell의 주력 리눅스 배포반인 SUSE Linux에 탑재되어 대중에게 선보이고 있습니다. 다양한 리눅스 배포반 (Fedora, CentOS, RHCE, SLES, SLED, openSUSE, Debian, Ubuntu, Gentoo 등...) 에서 패키지 방식으로 사용할 수 있고, Solaris, Mac OS X, Windows NT 계열을 지원합니다.

시작하기

참으로 좋은 취지의 프로젝트입니다. 더 이상 닷넷이 Microsoft Windows에만 묶여있다고 이야기할 필요도 없으며 다양한 커뮤니티에서 획기적인 솔루션들을 항시 새로 개발하고 있으니까요. 하지만 진짜 문제는, 이를 위하여 정말로 내가 지금 사용하고 있는 Microsoft Windows 운영 체제를 버려야 하는 것인가에 대한 문제입니다. 하지만, 고민하실 필요 없습니다. 절대 Mono를 위하여 컴퓨터를 포맷한다거나 컴퓨터를 교체해야 한다거나 하는 문제는 없을것이니 걱정하지 마십시오.

근간에 구입한 대부분의 개인용 컴퓨터 및 랩톱 컴퓨터들은 기본적으로 내장 코어를 2개 이상 사용하는 프로세서의 혜택을 누리고 있습니다. 따라서 간편하게 가상 PC를 이용하여 개발 환경을 체험하거나 평가할 수 있음은 물론 직접 사용하는 것 또한 가능합니다.

Mono 프로젝트 웹 사이트에서는 처음 Mono를 사용하거나 기존 Windows 운영 체제와 같이 개발 환경을 만들어나가고픈 개발자들을 위하여 가상 PC 패키지를 무료로 배포합니다. 이 가상 PC 패키지는 VMware Player를 이용하여 재생할 수 있도록 되어있으며 VMware Player 또한 무료이므로 간편하게 내려받아서 사용할 수 있습니다.

최신 버전의 Mono-Aware 가상 PC 패키지 받기: http://www.go-mono.com/mono-downloads/download.html

최신 버전의 VMware Player 받기: http://www.vmware.com/download/player/

만약 가상 PC를 사용할 여건이 안되신다면 Live CD를 이용하실 수도 있습니다. Live CD는 리눅스와의 호환성이 없어서 사용이 불편한 Microsoft Virtual PC 2004 및 2007에서도 잘 작동하며, 가상 PC를 구동하기에는 열악한 환경에서 ISO 이미지 파일을 CD로 제작하여 별도로 부팅해볼 수도 있는 유용한 옵션입니다.

첫 시동

모든 준비가 완료되었다면 이제 VMware Player를 열고 다음과 같이 가상 PC 파일을 열어봅니다.

사용자 이미지

파일을 열고 잠시 기다리면 아래와 같이 복사본 옵션에 관한 설정이 나타납니다. 특별한 상황이 아니면 대개의 경우 "I copied it" 라디오 박스에 응답하여 가상 PC를 시작하면 됩니다.

사용자 삽입 이미지

BIOS 화면이 지나가고 Master Boot Record에 설치된 GRUB이 나타나는 것을 볼 수 있습니다. 첫 번째 옵션이 선택된 상태에서 Enter 키를 누르거나 잠시 기다리면 정상 모드로 부팅됩니다.

사용자 삽입 이미지

부팅이 시작되고 상세한 내역은 모두 숨겨집니다. 리눅스가 자랑하던 콘솔 화면 위로 펼쳐지는 기나긴 부팅 메시지 대신 마치 Microsoft Windows 운영 체제의 시작 화면을 보는 듯한 느낌이 듭니다. 만약 종전의 화면에 나타나는 내용을 직접 확인해보길 원하신다면 Esc 키를 누르면 됩니다.

사용자 삽입 이미지

부팅이 완료되면 X-Windows와 함께 기본 Desktop인 GNOME이 시작음과 함께 나타납니다. 잠시 기다리면 아래와 같은 바탕 화면이 나타나는 것을 볼 수 있습니다.

사용자 삽입 이미지

이제 이것저것 둘러보셔도 됩니다. 인터넷 연결이 갖추어져있으므로 Firefox를 이용하여 웹 서핑도 할 수 있으며 SUSE Linux의 특징을 찾아보시는 것도 재미있겠습니다. 바탕 화면을 보니 MonoDevelop와 Mono Documentation 프로그램의 바로 가기 아이콘도 보이는군요. :-)

오늘은 간단한 소개를 목적으로 한 것이었으므로 여기까지 포스팅을 하도록 하겠습니다. MonoDevelop에 대한 구체적인 투어는 다음 아티클을 통하여 하기로 하겠습니다. 아티클을 마무리하기 전에 중요한 것을 하나 알려드리겠습니다. 가상 PC도 컴퓨터는 컴퓨터인지라 그냥 Shutdown하시면 안됩니다. VMware Player의 창을 닫으면 자동으로 Suspend Mode로 전환되기는 하겠습니다만 정확하게 Shutdown 하는 방법을 숙지하시는게 좋겠지요. :-)

사용자 삽입 이미지
 

좌측 하단의 Computer 버튼을 클릭하면 시작 메뉴와 유사한 팝업 창이 나타나는데 여기서 Shutdown 메뉴를 클릭합니다. 그러면 아래와 같이 Shutdown 대화 상자가 나타납니다.

사용자 삽입 이미지

여기서 Shutdown 버튼을 클릭하여 안전하게 SUSE Linux를 종료하고 컴퓨터의 전원을 내리실 수 있겠습니다. Windows와 마찬가지로 Restart, Hibernate, Sleep 옵션도 지원되므로 실제 PC에서는 다양한 옵션을 이용하실 수도 있겠습니다. :-)



Creative Commons License
Creative Commons License
남정현 이 작성.

당신의 의견을 작성해 주세요.

  1. Comment RSS : http://rkttu.com/rkttublog/rss/comment/223
  2. OpenID Logohttp://barosl.com/ 2008/03/24 23:22  편집/삭제  댓글 작성  댓글 주소

    모노 개발 전용 VMware 이미지도 공개하는군요. 재밌네요.

    • 남정현 2008/03/25 00:16  편집/삭제  댓글 주소

      요즈음 웬만한 오픈 소스 프로젝트들은 VMware 패키지를 무상으로 배포해서 개발자들이 충분히 최적화된 환경 아래에서 프로젝트를 검증해볼 수 있도록 도움을 많이 주고 있습니다. 참 바람직한 일이지요. ㅎㅎ

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다