Languages, tools and frameworks
[This article is for Windows 8.x and Windows Phone 8.x developers writing Windows Runtime apps. If you’re developing for Windows 10, see the latest documentation]
About to build a Windows Store or Windows Phone Store app and wondering where to start? With C++, C#, Visual Basic, JavaScript and a huge range of libraries to choose from, the answer is "wherever you want!"
Moving to (or returning to) a new platform can be daunting. New tools, new controls, even new programming language... Where do you even start?
The good news is that Windows is a very flexible platform, with many different development approaches. Typically you start with Microsoft Visual Studio: the compiler and development environment. Visual Studio is available in several different forms, from the freely downloadable express editions to powerful enterprise-strength professional editions. You can download them from the Developer downloads for programming Windows Store apps. Use Visual Studio Online as your source code repository: see Source control with Visual Studio.
With Visual Studio, you can write apps for Windows 8 and Windows Phone 8.1 in JavaScript, C#, Visual Basic or C++, or a combination. To help you quickly get your apps onto the store, the .NET Framework, XAML library and WinJS library include advanced features and user interface controls. Speaking of UIs, Blend for Microsoft Visual Studio 2013 is a companion app that allows you to mock up and then use your UI right from within Visual Studio. If you are going to target both Windows and Windows Phone devices, create a single Universal Windows app and manage everything in one solution!
Choices, choices
Ultimately which programming language and framework you choose to work with depends on things like:
- How comfortable you are with a specific language
- The importance of performance compared to ease of development
- The specific features your app needs
- Your need for cross-platform code with minimal duplication of effort
You might decide there's no "best way." The final app might be a combination of many different languages — which is an approach which Visual Studio supports. See Getting Started: Choosing a programming language.
Choosing a programming language
As a starting point, here's a list of suggested languages mapped to specific app genres. Your exact needs and skills will be the deciding factor.
App genre | Suggested language(s) |
---|---|
2D casual game | |
2D arcade game | |
3D fast-action game |
|
Information app (displaying information such as weather, stock price, news, or social network updates) |
|
Education app (displaying images and text, with simple 2D animation and sound) |
|
Business app (displaying, storing and editing data with sync) |
|
Website conversion (for example, a locally running version of a corporate website) |
|
An app that will also be ported to run on Windows Phone, iOS, and Android |
|
Learning a new language
Although Windows doesn't directly support development using Swift, Objective-C or Java, it turns out that these languages have much in common with C#. If your experience is more web-based, you'll love that you can use JavaScript to create native apps, with help from the WinJS support library to provide the powerful controls on both Windows 8.1 and Windows Phone 8.1 controls. Like jQuery? Use it too!
- Basic Comparison of C# and Apple Swift Programming Language Syntax
- Getting Started: Creating a project
- XAML overview
- Create your first Windows Store app using C# or Visual Basic
- Writing code for Windows Store apps (JavaScript)
- HTML, CSS, and JavaScript features and differences (Windows Store apps)
- Create your first Windows Store app using DirectX
Links for iOS developers
- I build iOS apps
- Code libraries, toolkits and other sources of help
- Visual Studio hints and tips
- Getting started for iOS developers
- Windows 8 cookbook for iOS devs
- Task mappings from iOS to Windows
Links for Android developers
Links for Windows Phone developers
- Migrating a Windows Phone 7 app to a Windows Store app using XAML
- Migrating a Windows Phone 7 app to JavaScript
Links for web developers
- Migrating a web app (Windows Store apps using JavaScript and HTML)
- Migrating a website (Windows Store apps using JavaScript and HTML)
Links for Silverlight and WPF developers
Developer roadmaps
To create a Windows Store app, you'll need to become familiar with at least one of the supported programming languages: C#, C++, Microsoft Visual Basic, or JavaScript. Depending on which language you choose, you might also need to learn about Extensible Application Markup Language (XAML), the Windows Runtime, HTML5, and Cascading Style Sheets, Level 3 (CSS3). Does it sound overwhelming? We can help. Follow these links to hands-on app-building exercises and start learning from there as you go:
- Roadmap for Windows Runtime apps using C# or Visual Basic
- Roadmap for Windows Runtime apps using C++
- Roadmap for Windows Store apps using DirectX and C++
- Roadmap for Windows Runtime apps using JavaScript
Related topics
Code libraries, toolkits and other sources of help