Erste Schritte: Auswählen einer ProgrammierspracheGetting started: Choosing a programming language

Auswählen einer ProgrammierspracheChoosing a programming language

Bevor wir weiter ins Detail gehen, sollten Sie die Programmiersprachen kennen, die Ihnen bei der Entwicklung von universellen Windows-Plattform-Apps (UWP) zur Verfügung stehen.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. Obwohl bei der exemplarischen Vorgehensweise in diesem Artikel C# verwendet wird, können Sie UWP-Apps ggf. mit mehreren Programmiersprachen entwickeln (siehe Sprachen, Tools und Frameworks).Although the walkthroughs in this article use C#, you can develop UWP apps using one or more programming languages (see Languages, tools and frameworks).

UWP-Apps können mit C++, C#, Microsoft Visual Basic und JavaScript entwickelt werden.You can develop using C++, C#, Microsoft Visual Basic, and JavaScript. JavaScript verwendet HTML5-Markup für das Benutzeroberflächenlayout, und andere Programmiersprachen verwenden die Markupsprache Extensible Application Markup Language (XAML) für die Beschreibung der Benutzeroberfläche.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.

Obwohl wir uns in diesem Artikel auf C# konzentrieren, bieten die restlichen Sprachen ebenfalls klare Vorteile, die Sie kennen sollten.Although we're focusing on C# in this article, the other languages offer unique benefits, which you may want to explore. Wenn Sie bei der App beispielsweise in erster Linie Wert auf die Leistung legen, ist C++ möglicherweise die richtige Wahl (insbesondere bei einer aufwändigen Grafik).For example, if your app's performance is a primary concern, especially for intensive graphics, then C++ might be the right choice. Die Microsoft .NET-Version von Visual Basic ist hervorragend für Visual Basic-App-Entwickler geeignet.The Microsoft .NET version of Visual Basic is great for Visual Basic app developers. JavaScript mit HTML5 ist eine gute Wahl für Entwickler mit Webentwicklungshintergrund.JavaScript with HTML5 is great for those coming from a web development background. Weitere Informationen finden Sie unter einem der folgenden Themen:For more info, see one of the following:

Hinweis    Für apps, die 3D-Grafiken verwenden, sind die OpenGL-und OpenGL es-Standards für UWP-apps nicht nativ verfügbar.Note  For apps that use 3D graphics, the OpenGL and OpenGL ES standards are not natively available for UWP apps. Wenn Sie Ihren OpenGL ES-Code in Microsoft DirectX nicht neu schreiben möchten, könnte Angle von Interesse für Sie sein.If you would rather not rewrite your OpenGL ES code into Microsoft DirectX, you may be interested to know about Angle. Angle ist ein laufendes Projekt, das zum Konvertieren von OpenGL in DirectX entwickelt wurde, indem OpenGL-API-Aufrufe in DirectX-API-Aufrufe übersetzt werden.Angle is an on-going project designed to convert OpenGL to DirectX by translating OpenGL API calls into DirectX API calls. Weitere Informationen finden Sie in den folgenden Artikeln:To learn more, see the following:

Testen von C#Giving C# a go

Als iOS-Entwickler sind Sie die Arbeit mit Objective-C und Swift gewohnt.As an iOS developer, you're accustomed to Objective-C and Swift. C# ist die Microsoft-Programmiersprache, die beiden am ähnlichsten ist.The closest Microsoft programming language to both is C#. Unserer Meinung nach ist C# für die meisten Entwickler und die meisten Apps die Sprache, die am einfachsten und schnellsten erlernbar ist. Daher liegt der Schwerpunkt der Informationen und exemplarischen Vorgehensweisen in diesem Artikel auf dieser Sprache.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. Weitere Informationen zu C# finden Sie unter den folgenden Themen:To learn more about C#, see the following:

Es folgt ein Vergleich einer Klasse, die sowohl in Objective-C als auch in C# geschrieben wurde.Following is a class written in Objective-C and C#. Die Objective-C-Version wird zuerst dargestellt. Die C#-Version folgt danach.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];

Nun die C#-Version.Now, for the C# version. Wie Sie sehen, befinden sich Header und Implementierung, wie auch bei Swift, nicht in separaten Dateien.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# ist eine einfach erlernbare Sprache und verfügt über viele Unterstützungsklassen und Frameworks, die .NET ausmachen.C# is an easy language to pick up, and comes with the many support classes and frameworks that make up .NET. Sie werden in kürzester Zeit problemlos Ihren Code ohne eine eckige Klammer schreiben können!In no time, you'll be happily writing your code without a square bracket in sight!

Nächster SchrittNext step

Erste Schritte: Aufbau von Visual StudioGetting started: Getting around in Visual Studio