Soon Ultrabooks will become widely available and will come with new features. Developers will want to know what tools they can use to take advantage of the new capabilities. There will be two main components of the new, supporting OS: the traditional Desktop interface and the New Windows* 8 User Interface (UI). This blog will cover the following topics:
- Development implications for Windows 8 Desktop apps vs. Windows 8 UI apps
- Developer Tools for Windows 8 UI and Windows 8 Desktop apps
- Useful references
Development Implications for Windows 8
As mentioned above, there are two interfaces for which software developers can write applications. A Windows 8 app will either be designed to run as a Desktop app or a Windows 8 UI app. The table below lists the minimal requirements for developing for Windows 8.
In reviewing the above table, it should be pretty clear that in order to develop Windows 8 UI and Windows 8 Desktop apps, you must have Windows 8 installed and you must use the MS Visual Studio 2012 compilers. Note that some of the Microsoft resources may not be completely up to date. According to the Dev Center for Windows 8 Desktop, MS Visual Studio Pro 2012 is required. If you take a look at the Visual Studio Blogs (link provided below), it appears that Visual Studio Express 2012 can also be used for Windows 8 Desktop apps.
Next is a chart that shows how the Windows 8 UI and Windows 8 Desktop development environments coexist.
Once you have written your app, whether it is targeted for Windows 8 UI or it is a Desktop app, there are a variety of tools that can be used to do further analysis on your software. For the Windows 8 UI, only Microsoft tools are available. For Windows 8 Desktop apps, the entire suite of Intel Developer Tools will be available to coincide with the launch of Windows 8. The various tools are listed below.
Microsoft Windows 8 UI Tools: Below are resources that developers will find useful for optimizing their Windows 8 UI apps.
- Remote Tools for Visual Studio 2012: Enables remote debugging, testing, and performance profiling on computers that do not have Visual Studio. This set of tools also enables installation of a developer license and deployment of Windows 8 UI apps to computers that are running Windows 8 Release Preview.
- Code Analysis: Analyzing the code quality of Windows Metro style apps with Visual Studio code analysis
- Unit Testing: Creating and running unit tests on a Windows Metro style app
- Performance Analysis: Analyzing the performance of Windows Metro style apps
The following lists represent the Intel Developer Tools that developers are encouraged to use during their Windows 8 Desktop app development.
Intel Windows 8 Desktop Libraries:
- Intel Integrated Performance Primitives (Intel IPP): An extensive library of multicore-ready, highly optimized software functions for multimedia, data processing, and communications applications. Intel IPP offers thousands of optimized functions covering frequently used fundamental algorithms.Intel Media SDK: A multi-platform API for media application development software that exposes Intel platforms' industry-leading media acceleration capabilities (encoding, decoding and transcoding). The library API is cross-platform and cross-operating systems with software fallback, allowing developers to code once for today's and future chipsets.
- Intel Math Kernel Library: (Intel MKL) is a computing math library of highly optimized, extensively threaded math routines for applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, vector math, and more.
- Intel SDK for OpenCL Applications: Provides development environment for OpenCL applications on Intel Architecture for Windows* and Linux* operating systems. This SDK includes code samples, development tools, an optimization guide, and support for optimization tools.
- Intel MPI Library: focuses on making applications perform better on IA-based clusters-implementing the high-performance MPI-2 specification on multiple fabrics. It enables you to quickly deliver maximum end-user performance, even if you change or upgrade to new interconnects, without requiring major changes to the software or operating environment.
- Intel Threading Building Blocks: Provides abstractions that make it easier to get scalable and reliable parallel applications with fewer lines of code.
Intel Bundled Suites:
- Intel Parallel Studio XE: Includes: Intel C++ Composer XE, Intel Visual Fortran Composer XE, Intel VTune Amplifier XE, Intel Inspector XE
- Intel C++ Studio XE: Includes: Intel C++ Composer XE, Intel VTune Amplifier XE, Intel Inspector XE
- Intel Cluster Studio XE: Includes: Intel Composer XE, Intel Trace Analyzer and Collector, Intel MPI Library,Intel MPI Benchmarks, Intel VTune Amplifier XE, Intel Inspector XE
- Intel Visual Fortran Studio XE: Includes: Intel C++ Composer XE, Intel VTune Amplifier XE, Intel Inspector XE
Intel Compilers: The Intel Compiler Suites include advanced optimization and multithreading capabilities, highly optimized performance libraries and analysis tools for creating fast reliable multithreaded applications.
- Intel Inspector XE: Enhances developer productivity and facilitates application reliability by effectively finding crucial memory and threading defects early in the development cycle.
- Static Security Analysis: Static security analysis (SSA) identifies both coding errors and security vulnerabilities through deep analysis of source code. It is targeted at developers and QA engineers who either wish to improve code quality and/or harden their application against security attack.
- Intel VTune Amplifier XE: a powerful threading and performance optimization tool for C/C++, .NET, and Fortran developers who need to understand an application's serial and parallel behavior to improve performance and scalability.
- Intel GPA: a set of powerful graphics and gaming analysis tools that are designed to work the way game developers do, saving valuable optimization time by quickly providing actionable data to help developers find performance opportunities from the system level down to the individual draw call.
- Intel Trace Analyzer and Collector: A powerful cluster profiler for understanding MPI application behavior, quickly finding bottlenecks and achieving high performance for parallel cluster applications. It supports Intel architecture-based cluster systems, is compatible with current standards, and includes trace file comparison, counter data displays and an MPI correctness checking library.
Intel developer tools will continue to provide performance and feature leadership for Windows 8 Desktop apps and will continue to maintain compatibility and integration into Visual Studio.
Resources (Blogs I have written):
- Ultrabook Overview for Windows 8 Developers
- Getting Started with Windows 8 Development
- Detecting Ultrabook Sensors on Windows 8
- Windows Dev Center
- Microsoft's Visual Studio Blog
- Performance Optimization for Metro Style App-Part 1
- Quickstart: Calling asynchronous APIs in C# or Visual Basic
- Debugging and testing Windows Metro style apps