Monoと.NET Coreを比較

    「Mono」と「.NET Core」の概要

    「Mono」と「.NET Core」は、Microsoftの「.NET Framework」を活用できる開発プラットフォームです。

    ■「Mono」とは

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

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

    ■「.NET Core」とは

    .NET Coreは、Microsoftおよび.NET開発コミュニティによって管理されているオープンソースの汎用開発プラットフォームです。

    クロスプラットフォームのソフトウェアフレームワークで、「各種デバイス用アプリ」「クラウドアプリ」「IoTアプリ」などを構築できます。

    フレームワーク機能比較

    ■.NET Framework

    .NET Framework は「Web」「Windows」「Windows Server」「Microsoft Azure」用のアプリを作成するための開発プラットフォームです。

    「共通言語ランタイム(CLR)」と「.NET Frameworkクラスライブラリ」で構成され、さまざまな機能を含み、さまざまな業界標準をサポートしています。

    ■.NET Core

    .NET Coreは、「.NET Framework」および「その他の.NET実装」とは大きな違いがありますが、ソースまたはバイナリの共有技術を使用してこれらの実装の間でコードを簡単に共有して開発できます。

    ■Mono

    Monoは「.NET Framework」のオープンソース実装です。

    Monoプロジェクトチームは、Microsoft によって発行された「オープン.NET標準(特にECMA335)」に依存して、互換性のある実装を提供しています。

    Monoは、.NET Coreがサポートしていない機能である、「.NET Frameworkアプリモデルのサブセット(Windowsフォーム)」や「追加アプリモデル(Xamarin.iOS)」もサポートしています。

     

    参考元サイト

    「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に戻る

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


    「.NET Core」基本情報

    ■概要

    .NET Core(ドットネットコア)とは、Microsoftおよび.NET開発コミュニティによって管理されているオープンソースの汎用開発プラットフォームです。

    ■基本説明

    .NET Coreは、クロスプラットフォームのソフトウェアフレームワークで、「各種デバイス用アプリ」「クラウドアプリ「IoTアプリ」などを構築できます。

    ■経緯

    初版バージョン「.NET Core 1.0」は2016年6月にリリースされました。

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

    オフィシャルサイト

    →.NET Core(Welcome to .NET Core!)

    ライセンス情報

    .NET Coreのライセンスは「MIT License」です。

    詳細について、こちらを参照ください。
    →GitHub →dotnet/core →LICENSE.TXT

    動作環境

    .NET Coreは「Windows」「macOS」「Linux」でサポートされています。

    ダウンロード

    →Microsoft →.NET →.NET Downloads

    ■同様製品

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

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

    「.NET Core」の主な特徴

    ■クロスプラットフォーム

    .NET Coreは「Windows」「macOS」「Linux」の各オペレーティングシステムで動作し、クロスプラットフォーム開発を実施できます。

    →GitHub →dotnet/core →.NET Core Supported OS Lifecycle Policy

    ■アーキテクチャー間での一貫性

    .NET Coreでは、「x64」「x86」「ARM」などの複数アーキテクチャにおいて、同一動作でコード実行できます。

    ■Dockerサポート

    .NET CoreはDockerコンテナーと一緒に使用でき、アプリに含めることも可能です。

    →Microsoft →.NET →Introduction to .NET and Docker

    ■他フレームワーク互換性

    .NET Coreは、.NET標準API仕様を実装することによって、「.NET Framework」「Xamarin」「Mono」と互換性があります。

    →Microsoft →.NET →.NET Standard

    ■サポート言語

    .NET Coreでは、「C#」「Visual Basic」「F#」を使用して、.NET Core用アプリケーションやライブラリを作成できます。

    ■サポート体制

    アップデートサイクル

    各OS単位で定義されたライフサイクルがあります。

    .NET Coreチームは、これらの各ライフサイクルスケジュールを適用して、オペレーティングシステムのバージョンに対するサポートの追加と削除を通知します。

    Microsoftサポート

    .NET Coreバイナリディストリビューションは、Microsoftが管理するAzureサーバ上で構築およびテストされ、他のMicrosoft製品と同じようにサポートされています。

    Red Hat Enterprise Linuxサポート

    Red Hatは、Red Hat Enterprise Linux(RHEL)上の.NET Coreをサポートしています。

    Red Hatは.NET Coreをソースから構築し、Red Hat Software Collectionsで利用できるようにします。Red HatとMicrosoftは、.NET CoreがRHEL上で確実に機能するように協力しています。

    ■オープンソースプロダクト

    .NET CoreはオープンソースとしてMicrosofから.NET Foundationに提供され、.NET Foundationプロジェクトの中で活発な開発が進められています。

    「個人的利用」「学術的利用」「商業的利用」など、個人や企業が自由に採用できます。

    多くの企業が「アプリケーション」「ツール」「プラットフォーム」「ホスティングサービス」などで.NET Coreを使用しています。

     

    参考元サイト

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