Introducción: elección de un lenguaje de programaciónGetting started: Choosing a programming language

[ Actualizado para aplicaciones para UWP en Windows 10.[ Updated for UWP apps on Windows 10. Para leer más artículos sobre Windows 8.x, consulta el archivo ]For Windows 8.x articles, see the archive ]

Elección de un lenguaje de programaciónChoosing a programming language

Antes de continuar, debes conocer los lenguajes de programación que puedes elegir cuando desarrollas aplicaciones para la Plataforma universal de 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. Aunque en los tutoriales de este artículo se usa C#, puedes desarrollar aplicaciones para UWP con uno o varios lenguajes de programación (consulta Lenguajes, herramientas y marcos).Although the walkthroughs in this article use C#, you can develop UWP apps using one or more programming languages (see Languages, tools and frameworks).

Puedes usar C++, C#, MicrosoftVisual Basic y JavaScript para desarrollar.You can develop using C++, C#, Microsoft Visual Basic, and JavaScript. JavaScript usa el marcado HTML5 para el diseño de la UI, mientras que el resto de los lenguajes emplea un lenguaje de marcado conocido como lenguaje XAML para describir sus 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.

Aunque en este artículo nos centramos en C#, los otros lenguajes ofrecen ventajas únicas que te podrían interesar.Although we're focusing on C# in this article, the other languages offer unique benefits, which you may want to explore. Por ejemplo, si uno de los factores de mayor importancia es el rendimiento de la aplicación, especialmente para aplicaciones con muchos gráficos, C++ podría ser la elección correcta.For example, if your app's performance is a primary concern, especially for intensive graphics, then C++ might be the right choice. La versión Microsoft .NET de Visual Basic es excelente para desarrolladores de aplicaciones en Visual Basic.The Microsoft .NET version of Visual Basic is great for Visual Basic app developers. JavaScript con HTML5 es excelente para los desarrolladores con experiencia en desarrollo web.JavaScript with HTML5 is great for those coming from a web development background. Para obtener más información, consulta uno de los recursos siguientes:For more info, see one of the following:

Nota: Para las aplicaciones que usan elementos gráficos en 3D, los estándares OpenGL y OpenGL ES no están disponibles de forma nativa para las aplicaciones para UWP.Note For apps that use 3D graphics, the OpenGL and OpenGL ES standards are not natively available for UWP apps. Si no quieres reescribir el código OpenGL ES en Microsoft DirectX, tal vez te interese informarte sobre Angle.If you would rather not rewrite your OpenGL ES code into Microsoft DirectX, you may be interested to know about Angle. Angle es un proyecto actualmente en curso diseñado para convertir OpenGL a DirectX mediante la traducción de llamadas de la API de OpenGL a llamadas de la API de DirectX.Angle is an on-going project designed to convert OpenGL to DirectX by translating OpenGL API calls into DirectX API calls. Para conocer más, consulta lo siguiente:To learn more, see the following:

Dale una oportunidad a C#Giving C# a go

Como desarrollador de iOS, estás acostumbrado a Objective-C y Swift.As an iOS developer, you're accustomed to Objective-C and Swift. El lenguaje de programación de Microsoft que más se les parece es C#.The closest Microsoft programming language to both is C#. Creemos que C# es el lenguaje más fácil y rápido de aprender y usar para la mayoría de los desarrolladores y las aplicaciones. Por eso la información y los tutoriales de este artículo se centran en este lenguaje.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. Si quieres obtener más información sobre C#, consulta estos recursos:To learn more about C#, see the following:

A continuación se muestra una clase escrita en Objective-C y C#.Following is a class written in Objective-C and C#. Primero se muestra la versión en Objective-C, seguida de la versión en 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];

Ahora, la versión en C#.Now, for the C# version. Verás que, al igual que en Swift, el encabezado y la implementación no se encuentran en archivos separados.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# es un lenguaje sencillo de entender e incluye muchos marcos y clases de soportes que componen .NET.C# is an easy language to pick up, and comes with the many support classes and frameworks that make up .NET. En muy poco tiempo, disfrutarás escribiendo tu código sin un solo corchete a la vista.In no time, you'll be happily writing your code without a square bracket in sight!

Paso siguienteNext step

Introducción: desplazamiento por Visual StudioGetting started: Getting around in Visual Studio