XamarinとMonoを比較

    「Xamarin」と「Mono」の概要

    「Xamarin」と「Mono」は、Microsoft「.NET Framework」に関連するクロスプラットフォームアプリケーション開発環境です。

    ■「Xamarin」とは

    Xamarinはクロスプラットフォームアプリ開発環境として、C#で「Android」「iOS」「Mac」アプリを開発できます。

    「ネイティブアプリ開発」「C#/.NET/Visual Studioを活用」「コード共通化」などの特徴があります。

    ■「Mono」とは

    Monoは、開発言語「C#」、および、共通言語インフラストラクチャ「ECMA標準」に基づくMicrosoft「.NET Framework」のオープンソース実装で、.NETベースのクロスプラットフォームアプリケーションを開発できます。

    同様の開発環境「Xamarin」の基盤機能を提供しています。

    「Xamarin」と「Mono」の機能は「.NET 5」に統合へ

    Microsoftは、クロスプラットフォーム対応のオープンソース.NET実装「.NET Core 3.0」の次のリリースが「.NET 5」になると発表しています。

    「.NET 5」は「.NET Core」「.NET Framework」「Xamarin」「Mono」のそれぞれの機能を最大限に活用して、.NETを拡張するものとされています。

    現状混在しながら複数存在している.NET開発環境が1つに集約されることで、実行時の動作や開発者の経験が統一された単一の.NETランタイムとフレームワークとなります。

    つまり、1つの開発環境で、「Windows」「Linux」「macOS」「iOS」「Android」「tvOS」「watchOS」「WebAssembly」などをターゲットにしたクロスプラットフォームアプリケーションが開発できるようになる予定です。

    Xamarinの一部として使用されている「Monoランタイム」と「.NET Coreランタイム」については、それぞれの機能を個別に、または、一緒に強化していくことで、「高スループット」「高生産性」「高速起動」「メモリ使用量の削減」などの達成を目指していくとしています。

     

    参考元サイト
    Microsoft →.NET BLOG →Introducing .NET 5

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    「Xamarin」基本情報

    ■概要

    Xamarin(ザマリン)とは、クロスプラットフォームアプリ開発環境です。C#でAndroid/iOS/Macアプリを開発できます。

    ■「クロスプラットフォーム開発」とは

    従来の開発手法の場合、「iOSアプリはSwiftで実装する」「AndroidアプリはJavaで実装する」などの必要があり、1つのアプリを開発するために、それぞれの環境ごとに実装しなければならない状況がありました。

    クロスプラットフォーム開発環境「Xamarin」を使用すると、iOSアプリもAndroidアプリもC#で実装できます。ビジネスロジック部分を共通化できるため、効率的な開発を行えます。

    ■基本説明

    Xamarinはクロスプラットフォーム開発環境です。

    「ネイティブアプリ開発」「C#/.NET/Visual Studioを活用」「コード共通化」などの特徴があります。

    ■経緯

    2016年2月、MicrosoftがXamarinを買収したことで、XamarinはVisual Studioにバンドルされることになりました。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Microsoft →Visual Studio →Visual Studio Tools for Xamarin

    ライセンス情報

    Xamarinのライセンスは「MITライセンス」です。

    詳細について、こちらを参照ください。
    →Microsoft →Visual Studio →Visual Studio Tools for Xamarin [→オープンソース]

    ダウンロード

    →Microsoft →Xamarin →Xamarin のインストール

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Qt」「Electron」「Apache Cordova」など。


    「Mono」基本情報

    概要

    Mono(モノ)とは、オープンソースの「.NET Framework」互換環境です。.NETクロスプラットフォームアプリケーションを開発できます。同様の開発環境「Xamarin」の基盤になっています。

    基本説明

    Monoは「.NET Framework」互換オープンソース開発プラットフォームです。.NETベースのクロスプラットフォームアプリケーションを構築できます。

    Monoは、開発言語「C#」、および、共通言語インフラストラクチャ「ECMA標準」に基づくMicrosoft「.NET Framework」のオープンソース実装です。

    経緯

    Monoは、GNOMEプロジェクト創設者のミゲル・デ・イカザ氏が開発し、2004年6月、「Mono 1.0」がリリースされました。

    Monoプロジェクトは、Xamarin社に移り、クロスプラットフォーム開発環境「Xamarin」の基盤になっています。

    TOPに戻る

    主な特徴

    Mono構成コンポーネント①「C#コンパイラ」

    Monoの「C#コンパイラ」は、ECMAに準拠しています。

    Mono構成コンポーネント②「Mono Runtime」

    「Mono Runtime」は「ECMA Common Language Infrastructure」を実装しています。

    ランタイムは、「ジャストインタイムコンパイラ」「Ahead-of-Timeコンパイラ」「ライブラリローダ」「ガベージコレクタ」「スレッドシステム」「相互運用性機能」などを提供します。

    Microsoft純正の「.NET Framework」ではサポートされていない独自の革新的な機能の取り込みも積極的に行われています。

    Mono構成コンポーネント③「.NET Frameworkクラスライブラリ」

    Monoプラットフォームは、アプリケーション構築用クラスセットを提供します。これらのクラスは、Microsoftの「.Net Framework」クラスと互換性があります。

    Mono構成コンポーネント④「Mono Class Library」

    Monoは、Microsoftが提供する「Base Class Library」を超えて、多くのクラスを提供しています。

    「UNIX統合ライブラリ」「データベース接続ライブラリ」「セキュリティスタック」「LDAP」「OpenGL」などを提供しており、「.NET Framework」向けの巨大ライブラリプロジェクトとしての側面もあります。

    マルチプラットフォーム対応

    Monoを使用してアプリケーションを開発すると、PC/モバイル用OSからゲーム用OSまで、多くのプラットフォームに対応できます。

    • Linux
    • Mac OS X
    • Microsoft Windows
    • BSD
    • Sun Solaris
    • iOS
    • Android
    • Nintendo Wii
    • Sony PlayStation 3
    • Sony PlayStation 4 など
    多言語対応

    Monoでは、多くの開発用言語での開発が可能で、他の言語で書かれたコードと相互運用できます。

    • C#
    • F#
    • VB.net
    • Java
    • Python
    • Ruby など

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Xamarin」など。

    TOPに戻る

    オフィシャルサイト

    オフィシャルサイト

    →Mono(Cross platform, open source .NET framework)

    ライセンス情報

    Monoのライセンスは「複合ライセンス」です。

    詳細について、こちらを参照ください。
    →GitHub →mono →LICENSE

    ダウンロード

    →Mono →Download

    TOPに戻る

    参考元サイト

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。