In windows embedded compact 2013, we are updating the native developer experience to the latest and greatest experience available via Visual Studio 2012. With this update, we are essentially bringing 2012 native desktop experience to embedded developers. This post details some of the key updates to the experience.
We are porting Visual C++ 11 runtime to run on the Windows Embedded Compact operating system. The new runtime includes improved support for C++ 11 standard features such as new STL headers, rvalue references, auto, lambdas and range-based for-loop. These allows developers to write safer, faster code that is easier to maintain and is compliant with the C++ 11 standard. Additionally, we are bringing in C++ 11 standard’s concurrency features such as atomics, strong compare and exchange, to target multicore scenarios that are becoming prevalent in the embedded world.
Apart from the addition of C++ 11 standards, Visual C++ 11 desktop runtime has numerous bug fixes and optimizations. Some of the cool optimizations we are bringing forth in Windows Embedded Compact 2013 (from desktop) include all containers (vector, array, queues, maps etc), which now have smaller representations. Compared with VC 9, the memory usage is significantly reduced in VC 11. Decreased memory usage saves both space and time, something that is a premium especially in the embedded space. Another optimization worth mentioning is the porting of Auto-vectorizer. Just like on desktop Windows, the Auto-vectorizer will automatically analyze the loops in your code and where possible, emits Streaming SIMD Extensions resulting in faster execution. This optimization is designed to provide performance gains for the loops in your code when targeting newer processor or multicore processors. For more details, refer to this link.
Speaking of multicore processors, we are also updating libraries in this release. With hardware moving to multi-core and many-core architectures, even in embedded world, we are bringing parallel programming support via Concurrency Runtime. Introduced in Visual Studio 2010 and updated in 2012, we will be bringing in the powerful C++ parallelization libraries such as the Parallel Patterns Library, Task Parallelism, Concurrency-safe containers and Asynchronous Agents Library. Apart from these, we are also updating the MFC and ATL to the Visual Studio 2012 version, thereby bringing in the various bug fixes and optimizations already available in the desktop world.
It’s worth mentioning that one library we will not be porting is C++ AMP technology. Introduced in Visual Studio 2012, C++ AMP has a dependency on DirectX11 which is not support by Windows Embedded Compact 2013.
In this release, the updates are not limited to the runtime. The tools in the Visual Studio IDE have also been improved to help you be more productive when you code in C++. Some highlights include:
This release also includes the updated Static analysis for C++. Updates provide richer error context information, more analysis rules, and better analysis results. In the new Code Analysis window, you can filter messages by keyword, project, and severity. When you select a message in the window, the line in the code where the message was triggered is highlighted in the code editor. For certain C++ warnings, the message lists source lines that show the execution path that leads to the warning; decision points and the reasons for taking that specific path are highlighted. For more information about how to improve the quality of your code, see Analyzing Application Quality by Using Code Analysis Tools.
To sum up, we are very eager to update the native development experience in Windows Embedded Compact 2013 release. We envision a world where native desktop developers and embedded developers can develop applications using the same set of capabilities and tools. This release is a fulfillment towards that vision.
Very nice. Using the current VC9 compiler (which doesn't even have TR1, let alone any C++11) is quite painful in the embedded world.
Is there any word when we will get a CTP for WEC2013?
This is great news! Especially for MFC developers! Will it then be possible to have the full desktop MFC experience usable in Windows Embedded Compact with only less modifications, or will you only update Windows Mobile MFC ? It would be great to simply have the same MFC on desktop and on the embedded devices using Windows Embedded Compact 2013. Please give a quick feedback about this. It's a killer feature for MFC developers seamlessly enabling easy application development on the desktop and on the arm embedded POS devices. Again great news! Greetings, Moritz
Thanks for your feedback. We are not planning to bring full desktop MFC experience in Windows Embedded Compact 2013. For example the MFC will not have the feature pack additions. Having said that, we are listening to your feedback and will definitely include it in our planning process. So keep them coming!
Where can I find more about Windows Embedded Compact 2013?
That are really good news. Are there any plans to support Windows Embedded Compact 7 with Visual Studio 2012? Since things move slowly in the embedded world, we still have CE 6 and are now moving to EC 7... C++11 would be very nice!
I second Rodger. Please do support application development (aka Smart Devices) for prior versions of WCE/WEC with VC2012 as upgrading deployed devices to new OS is rarely feasible. It does not need to be with new compiler either.
Will debugging managed applications (i.e.g NETCF 3.9) support mixed mode debugging? More generally, will debugging support on the embedded target match the desktop experience. Could I use Windbg with the SOS extension to do my .NETCF debugging?
@roger and Michal,
Unfortunately due to the extensive changes made to both Windows Embedded Compact 2013 and Visual Studio 2012 to align in this release, using Visual Studio 2012 with Windows Embedded Compact 7 (or earlier) will not be officially supported.
Currently we don't plan to support mixed-mode debugging in this release. Also, you cant use WinDbg + SOS (from desktop CLR) will not work with NETCF in this release.
We are working on providing more information about Windows Embedded Compact 2013. In the meantime you can refer to this blog (blogs.msdn.com/.../david-campbell.aspx) for some more details. Please feel free to ask us any questions you may have.