開発者がマイクロソフトに真の .NET ユニバーサル アプリを求める: Windows、Mac、iOS、Android

Table of Contents

開発者がマイクロソフトに真の .NET ユニバーサル アプリを求める: Windows、Mac、iOS、Android

Microsoft は今年、ユニバーサル Windows プラットフォーム (UWP) を導入しました。これは、すべてのデバイスが Windows 10 を実行している限り、多くの種類のデバイスで実行されるアプリケーションです。

残念ながら、この条件はUWPがユニバーサルとは程遠く、ごく一部のWindows PCのみを対象とし、他のOSには影響を与えないことを意味します。Macが普及し、モバイルはiOSとAndroidが主流となっている世界では、UWPアプリはユニバーサルというよりニッチな存在です。Microsoftが今後数年で大多数のユーザーをWindows 10に移行させることに成功すれば、状況は改善されるでしょうが、それはPC上でのみでしょう。

現在、開発者たちは真のユニバーサル アプリ モデルを Microsoft に求めています。

Visual Studio 2015 フィードバック サイトの要求には、「目標は、1 つの .NET クライアント アプリケーション プロジェクトで次のプラットフォーム向けの成果物を作成できるようにすることです」と記載されており、Windows 10、レガシ Windows、Unix、Linux、Android、iOS、Mac、HTML5 がリストされています。

Visual Studio 開発者が直面する問題は、開発者たちは C# などの .NET 言語でコーディングを続け、強力な XAML 言語を使用してユーザー インターフェイスを構築したいと考えているものの、顧客は Windows 以外のプラットフォーム、特に iOS、Android、Mac のサポートを求めていることです。

今日のMicrosoftは、(Java以外であれば)クロスプラットフォーム開発の推進に既に全力を注いでいます。Visual Studio 2015には、Windows以外のプラットフォーム向けにC#をコンパイルするためのサードパーティ製Xamarinツール、HTMLとJavaScriptをネイティブアプリケーションとしてラップするためのApache Cordova、AndroidとiOS向けのVisual C++コンパイラなど、混乱を招くほどのクロスプラットフォーム技術が搭載されています。

Xamarinツールは、開発者の要求に最も近いツールです。XamarinはiOS、Android、Macを対象としており、Xamarin Formsはクロスプラットフォームのユーザーインターフェースを実現するXAML実装です。しかし、いくつか問題点があります。これはオープンソースのMonoフレームワークをベースにしたサードパーティ製の.NET実装であるため、Microsoftの.NET Frameworkと完全には互換性がありません。また、企業は開発者1人あたりプラットフォーム1つにつき1年間のサブスクリプションで少なくとも999ドルを支払う必要があり、価格も高額です。さらに、Xamarin FormsのXAMLはMicrosoftの既存の実装と互換性がなく、デスクトップWindowsやMacではなく、iOS、Android、またはWindowsストアアプリケーションのみを対象としています。

クロスプラットフォーム対応が期待される既存のフレームワークとしては、Windows、Mac OSX、Linuxで動作する.NET Frameworkのフォークである.NET Coreがあります。現在、.NET CoreはASP.NETまたはUWPを使用したサーバーサイドアプリケーションのみを対象としていますが、原理的にはクライアントアプリケーションにも拡張可能です。とはいえ、Visual Studio 2015がクロスプラットフォームクライアントの開発においてXamarinを強く推奨していることを考えると、Microsoftが独自の代替技術に投資する可能性は低いでしょう。

CSHTML5はC#をHTMLとJavaScriptにクロスコンパイルします

CSHTML5はC#をHTMLとJavaScriptにクロスコンパイルします

.NETをHTML5クライアントに拡張するのは無理があるように思えるかもしれませんが、CSHTML5というUserwareプロジェクトが既にプレビュー版として公開されており、HTMLとJavaScriptへのコンパイルによってC#の99%、XAMLの70%、.NET Coreの40%を実装できると主張しています。Apache Cordovaと組み合わせることで、このようなプロジェクトはモバイルソリューションとしても機能します。

C#言語はMicrosoftにとって大きな成功を収め、現在では同社プラットフォーム向けのコーディングに従事する開発者を惹きつけ、維持するための重要な資産の一つとなっています。しかしながら、C#はWindows専用テクノロジーとして永遠に繁栄し続けることはできず、これらのクロスプラットフォームオプションはC#の将来にとって極めて重要です。®

Discover More