Windows 8 アプリを作成するために JavaScript (HTML を使用) と C# (XAML を使用) のどちらを選択するかを選択するオプションがある場合、どちらを優先する必要がありますか? それはパフォーマンス上の利点をもたらしますか、それとも C# は Windows8 API とシステム コールへのアクセシビリティを向上させますか?
2 に答える
OPについては混乱があったと思います。Windows 8 用のアプリの開発について話しています。複数の言語スタックを使用して、Windows 8 をターゲットにすることができます。XAML/C#、XAML/C++、DirectX/C++、または HTML/JavaScript を使用できます。問題は、最も人気のある 2 つのスタック (XAML/C# と HTML/JavaScript) のどちらがパフォーマンスと Windows API へのアクセスが優れているかということでした。
私は Microsoft の開発者エバンジェリストであり、これは私が最もよく受ける質問です。codefoster.com/Which-Windows-8-Language-Stack-Should-I-Chooseに投稿がありますが、これは質問の一部に触れていますが、すべてではありません。
まず、Windows API (WinRT) へのアクセスに関しては、すべての言語スタックが同一です。WinRT オブジェクト スペース全体が実際にはさまざまな言語に投影されるため、どの言語でも Windoww API を呼び出すことができ、それらは常に "Windows." で始まります。
プロジェクションは、プロジェクション先の各言語の規則にも従っているため、C# では Windows.UI.Popups.MessageDialog("Hello World").ShowAsync() を呼び出しますが、JavaScript では Windows を呼び出します。 UI.Popups.MessageDialog("Hello World").showAsync(). 同様に、各言語は非同期の処理に独自の規則を使用します。C# では async/await パターンを使用しますが、JavaScript では promise パターンを使用します。
次に、パフォーマンスの問題について。言語間の自然で劇的な違いにより、言語スタック間に違いが生じるでしょう。知っておくべき重要なことは、組み込みのすべてのコントロールとシナリオについて、すべての言語スタックが最小パフォーマンスしきい値を満たすように設計されているということです。正直なところ、本当に興味深いことが起こっていない限り、言語スタックのパフォーマンスが遅れることを心配する必要はないと思います。その場合、それが何であるかを具体的に示す必要があります。
各言語スタックには、独自の長所と短所もあります。C# を使用している場合、.NET フレームワークの優れたセットがあり、多くの人に非常によく知られています。また、非常によく設計された表現力豊かな言語でもあります。さらに、XAML は非常に強力な UI 言語です。JavaScript を使用している場合、広大なインターネットの残りの部分と共通のコードがあり、多くのコードを共有できます。JavaScript ライブラリを使用すると、ほぼすべてのことを行うことができ、Windows 8 アプリでそれらのいずれかを使用できます。C++ を使用している場合は、既存の C および C++ コンポーネントにアクセスでき、3D アプリを作成するために DirectX にアクセスできます。
C# または C++ を使用して WinRT コンポーネントを作成するハイブリッド アプリを作成し、それらのコンポーネントを任意の言語スタック (JavaScript を含む) で使用できることに注意してください。したがって、C# の知識があり、C# でビジネス ロジックを記述したい場合は、そのロジックを JavaScript アプリで使用することができます。
最後に、どのスタックを選択するかを決定する際の 2 つの最大の要因は、1) 既に最もスキルを持っているスタックと、2)楽しんで使用できるスタックの 2 つだと思います。それらは重要であり、そうでなければ捨ててしまうようなプロジェクトにあなたを導くかもしれません.
これがあなたの決定に役立つことを願っています。Windows 8 アプリの作成についてサポートが必要な場合は、codefoster.comにお問い合わせください。
スクリプト言語をネイティブ(コンパイル済み)言語と比較しています。
JSは、C#と比較すると、システムへのアクセスが非常に制限されています。しかし、繰り返しになりますが、アプリケーションで何をしたいかによっては、それが最良の選択になる可能性があります。