概要: プログラミング言語の選択Getting started: Choosing a programming language

プログラミング言語の選択Choosing a programming language

先へ進む前に、ユニバーサル Windows プラットフォーム (UWP) アプリを開発するときに選択できるプログラミング言語について理解している必要があります。Before we go any further, you should know about the programming languages that you can choose from when you develop Universal Windows Platform (UWP) apps. この記事のチュートリアルでは C# が使われていますが、UWP アプリは複数のプログラミング言語を使って開発できます (「言語、ツール、フレームワーク」をご覧ください)。Although the walkthroughs in this article use C#, you can develop UWP apps using one or more programming languages (see Languages, tools and frameworks).

C++、C#、Microsoft Visual Basic、JavaScript を使って開発できます。You can develop using C++, C#, Microsoft Visual Basic, and JavaScript. JavaScript では UI のレイアウトに HTML5 マークアップを使い、他の言語では XAML (Extensible Application Markup Language) と呼ばれるマークアップ言語を使って UI を記述します。JavaScript uses HTML5 markup for UI layout, and the other languages use a markup language called Extensible Application Markup Language (XAML) to describe their UI.

この記事では C# を中心に扱いますが、独自の利点がある他の言語についても検討することをお勧めします。Although we're focusing on C# in this article, the other languages offer unique benefits, which you may want to explore. たとえば、特にグラフィックスを多用した際のアプリのパフォーマンスが最も重要視される場合は、C++ が適切です。For example, if your app's performance is a primary concern, especially for intensive graphics, then C++ might be the right choice. Visual Basic アプリの開発者にとっては、Microsoft .NET バージョンの Visual Basic が適切です。The Microsoft .NET version of Visual Basic is great for Visual Basic app developers. JavaScript と HTML5 の組み合わせは、Web 開発の経歴がある開発者向けです。JavaScript with HTML5 is great for those coming from a web development background. 詳しくは、次のいずれかのトピックをご覧ください。For more info, see one of the following:

  3D グラフィックスを使用するアプリの場合は、OpenGL や OpenGL ES の標準は UWP アプリのネイティブに使用できません。Note  For apps that use 3D graphics, the OpenGL and OpenGL ES standards are not natively available for UWP apps. OpenGL ES のコードを Microsoft DirectX に書き換えない場合は、Angle に関心を持つかもしれません。If you would rather not rewrite your OpenGL ES code into Microsoft DirectX, you may be interested to know about Angle. Angle は OpenGL API 呼び出しを DirectX API 呼び出しに翻訳することにより、OpenGL を DirectX に変換するように設計された進行中のプロジェクトです。Angle is an on-going project designed to convert OpenGL to DirectX by translating OpenGL API calls into DirectX API calls. 詳しくは、次のトピックをご覧ください。To learn more, see the following:

C# を試してみるGiving C# a go

iOS 開発者は、Objective-C と Swift を日常的に使っています。As an iOS developer, you're accustomed to Objective-C and Swift. 両方に最も近い Microsoft プログラミング言語は C# です。The closest Microsoft programming language to both is C#. ほとんどの開発者とほとんどのアプリにおいて、最も簡単かつ短期間に学習して使用できる言語は C# と考えられます。そこで、この記事の情報とチュートリアルでは、この言語を中心に取り上げています。For most developers and most apps, we think C# is the easiest and fastest language to learn and use, so this article's info and walkthroughs focus on that language. C# について詳しくは、次のトピックをご覧ください。To learn more about C#, see the following:

次に示すのは、Objective-C と C# で書かれたクラスです。Following is a class written in Objective-C and C#. 最初に Objective-C バージョンを示し、その後に C# バージョンを示します。The Objective-C version is shown first, followed by the C# version.

// Objective-C header: SampleClass.h.

#import <Foundation/Foundation.h>

@interface SampleClass : NSObject {
    BOOL localVariable;
}

@property (nonatomic) BOOL localVariable;

-(int) addThis: (int) firstNumber andThis: (int) secondNumber;

@end
// Objective-C implementation.

#import "SampleClass.h"

@implementation SampleClass

@synthesize localVariable = _localVariable;

- (id)init {
    self = [super init];
    if (self) {
        localVariable = true;
    }
    return self;
}

-(int) addThis: (int) firstNumber andThis: (int) secondNumber {
    return firstNumber + secondNumber;
}

@end
// Objective-C usage.

SampleClass *mySampleClass = [[SampleClass alloc] init];
mySampleClass.localVariable = false;
int result = [mySampleClass addThis:1 andThis:2];

次は C# のバージョンです。Now, for the C# version. Swift のように、ヘッダーと実装が別個のファイルに分離されていないことがわかります。You'll see that like Swift, the header and the implementation are not in separate files.

// C# header and implementation.

using System;

namespace MyApp  // Defines this code' s scope.
{
    class SampleClass
    {
        private bool localVariable;

        public SampleClass() // Constructor.
        {
            localVariable = true;
        }

        public bool myLocalVariable // Property.
        {
            get
            {
                return localVariable;
            }
            set
            {
                localVariable = value; 
            }
        }

        public int AddTwoNumbers(int numberOne, int numberTwo)
        {
            return numberOne + numberTwo;
        }        
    }
}
// C# usage.

SampleClass mySampleClass = new SampleClass();
mySampleClass.myLocalVariable = false;
int result = mySampleClass.AddTwoNumbers(1, 2);

C# は習得が容易な言語であり、.NET を構成する多くのサポート クラスとフレームワークが付属しています。C# is an easy language to pick up, and comes with the many support classes and frameworks that make up .NET. すぐに、角かっこなしでコードをうまく記述することができるようになります。In no time, you'll be happily writing your code without a square bracket in sight!

次の手順Next step

はじめに。Visual Studio 内を移動します。Getting started: Getting around in Visual Studio