posted: June 25, 2013 | author: Chris Morabito
Today brings the end of //build/ 2013. My first session detailed the new Windows 8.1 HttpClient API, which automates HTTP Get/Post operations to automatically handle retries, authentication, cookies, caching, and filtering. Second was “Native Code Performance and Memory: The Elephant in the CPU” which analyzed how data structuring and coding can be optimized to best take advantage of CPU caching and the automatic vectoring capabilities in the Visual Studio compiler. Then I attended a session where members of the Windows Azure Customer Advisory team discussed actual problems encountered by customers when build apps at cloud scale, and how to avoid them. I just had lunch (mesquite turkey sandwich, chick pea salad), and chocolate chip cookie) and my last session is “Patterns & Practices for Composing Cloud Services”, which will detail common Windows Azure deployment patterns and how pieces of existed applications can be migrated to provide a hybrid best-of-both-worlds solution.
.NET 4.5.1 is slated for release with Windows 8.1. Along with Visual Studio 2013 and Windows Server 20012 R2, this new version brings a variety of new changes focused around developer productivity, performance, and continuous innovation.
8 years ago, with VS2005, Microsoft introduced “edit and continue” functionality into the .NET debugger. Until now this has only been possible for 32-bit applications, but .NET 4.5.1 brings “edit and continue” support for 64-bit applications. Another helpful debugging feature is the ability to see the return value of a function within the debugger, in both the call stack and the immediate window. The VS2013 also bring much-needed changed for asynchronous debugging–call stacks are now maintained for individual threads, allowing you to step through async code without being interrupted by another thread.
On the performance side, IIS 8.5 + .NET 4.5.1 brings ASP.NET app suspension, which allows idle applications to be suspended (rather than terminated) and rehydrated on their next call. This can bring up to 7x more app density, and a 90% reduction in startup time for suspended websites.
Large Object Heap (LOH) compaction has been added, which reduces heap fragmentation and reduces memory consumption. Microsoft cautions that “with great power comes great responsibility,” as this option may cause garbage collection to take considerably longer in cases where fragmentation has occurred.
Enhancements have also been made to JIT compilation on multi-core machines, which reduces cold-start performance by 15% in both client apps and ASP.NET websites. Maintenance has also become less problematic, in some cases with previous versions of the .NET Framework, applications could take a performance hit after an update because core assemblies were JIT compiled for a period until it because convenient to fully compile them–.NET 4.5.1 eliminates this concern.
Like all of Microsoft’s properties, the .NET Framework has been ramping up the release cadence. The Framework’s challenge has been to provide updates without the necessity of installing a whole new framework. A new NuGet channel has been added which provides official Microsoft-developed .NET packages–even though they are add-ons, these packages are treated as first-class members of the .NET Framework. This provides developers with ways to add more features above the “out-of-the box” capabilities of the framework and provides Microsoft more-immediate feedback.
I attended the Bing platform controls session. Here Microsoft detailed their effort to make experiences which have previously only been available as first-party services, and expose them via APIs for third-party applications. Integrations of 2D/3D Maps, Text-to-Speech, Speech-to-Text, and OCR were demonstrated.
After lunch I attended “Web Runtime Performance”, which detailed how the Windows Performance Toolkit available in Windows 8.1 can be used to evaluate website performance. The detailed graphs and tables output by the recorder empower you to see how each phase of web page rendering taxes system resources. This is very powerful, with fine-grained controls over the outputs and the graphs are infinitely zoomable, meaning that you can measure performance down to nanosecond scale and beyond.
While yesterday’s keynote focused on Windows 8.1 and devices, this morning’s keynote focused on Windows Azure cloud services, Office 365, and featured more coding how-tos showing off the new features of Visual Studio 2013.
The presentation opened with run-downs of Windows Azure statistics, including that half a trillion megabytes of Windows 8.1 downloads occurred yesterday. Windows Azure compute and storage capacity doubles every month.
For MSDN subscribers, dev/test licenses can now be installed on Azure instances, and credit cards are no longer required to start using Azure.
New features of Internet Explorer’s F12 developer tools were demonstrated, which no longer require a page refresh to load or begin debugging. F12 tools now feature live code restructuring. Performance metrics similar to those shown yesterday for Windows Store apps are now available for web pages; showing the impacts that load time, scripting, garbage collection, styling, rendering, and image decoding all have on UI responsiveness. Again the new web view control capabilities were shown, demonstrating that existing web pages can be packaged into a Windows 8.1 application with little effort.
It was strongly hinted, though no announcements were made, that Windows 8.1 apps can run on the forthcoming Xbox One with minimal effort.
An Windows Store app (written in C++) was shown which uses OpenCV to perform GPU-accelerated augmented reality analysis.
Microsoft announced that Adobe is bringing DPS support to Windows, which should greatly enhanced the digital publishing options available for the platform. And, in conjunction with this, Adobe is giving all //build/ attendees a free year of Creative Cloud membership.
P.S. — My bag is considerably lighter this morning–no more laptop, today I’m blogging from my new Surface Pro
My last session of the day focused on what is perhaps the most exciting feature of Internet Explorer 11–WebGL support. WebGL will be supported in IE11 and in all corresponding web views in Windows applications.
With the entrance of Internet Explorer into the set of browsers supporting the WebGL standard, it is my hope that we will finally see the proliferation of cross-platform 3D web application; including plugin-free, standards-based, 3D web mapping. Google has lead the charge, developing a WebGL verison of Google Earth. Other projects like OpenLayers are seeking to build an open-source library to do the same, and widespread adoption of WebGL is key to their success.
After lunch I attended “Real-World Machine Learning: How Kinect Gesture Recognition Works”, wherein the Kinect team explained how they taught the Kinect sensor to recognize hand grip and release gestures. An interesting problem requiring large quantities of sample data, reminds me of the challenges of remote sensing and mobile mapping sign extraction.
I then sat in on “Massive Virtual Textures for Games: Direct3D and Tiled Resources,” which detailed the new tile-based loading of textures and terrain models for video games available in DirectX 11.2. The challenges faced by game developers who want a varied and explorable world–large quantities of high-res imagery and detailed elevation models–are many of the same challenges we face in designing map applications. Once upon a time, in our now-retired SmartView Desktop product, we even stored aerial imagery in a DirectX format for optimal rendering performance. Perhaps its replacement will be based on a game engine…
Visual Studio is now on the same annual release cycle as Windows, and so the release of Windows 8.1 will coincide with the release of Visual Studio 2013.
In this morning’s keynote address, MS highlighted some of the new performance metrics available for Windows Store apps. A new tool is available to track CPU, network, and battery power efficiency. The output of this tool is a set of detailed graphs showing the usage history of your app. In the case of battery efficiency, this includes an estimate for how long the app could operate before draining the battery.
This breakout session focused on the improvements to the Visual Studio IDE itself. Your IDE customizations are now synced to your Microsoft Account, ensuring that VS is set up the way you like it from the start. The UI has been refined to include enhanced theming options, more color, and improved support for high-DPI displays.
Features previously available as Productivity Power Tools have been baked into VS2013; braces, comments, and quotes have gained autocompletion, and the scrollbar now has an enhanced “map mode” which shows an overview of your code file, with indicators for carat position, errors, and breakpoints.
A new “peek” feature provides an inline drill-down (ala “go to definition”), allowing you to follow a reference chain without leaving the current file. New code lenses show reference counts and testing status above class and method definitions.
Finally performance improvements have been made throughout the IDE, including reduced startup and solution load times and increased responsiveness. This has been accomplished by moving several tasks to background threads, allowing editing to continue in the foreground.
Visual Studio 2013, like Windows 8.1, is an incremental update to last year’s release and follows the concept of “refining the blend”. By-and-large the IDE remains the same, but several key improvements (in response to user feedback and user studies) will make the day-to-day of writing code a little easier.
Microsoft CEO Steve Ballmer’s catchphrase for the keynote was “refining the blend,” building upon the innovations Windows 8 and tempering them with user feedback. In the year since Windows 8′s preview release, Microsoft has worked on a shortened release cycle to bring Windows 8.1 to the public. Improvements include broader and more refined customization options, the return of the Start Button, boot-to-desktop mode, easier app discovery, expanded multitasking, and more deeply-integrated search capabilities.
The Windows Store interface has gotten some much-needed improvements, enhancing app discovery and enabling better promotion.
Xbox Music has now grown to focus more on playing than browsing, and Windows division head Julie Larson-Green demonstrated the ability to build a playlist from a website such as a festival calendar.
Microsoft is highlighting the development of Bing as a platform, promising to expose the knowledge of the Bing engine to app developers through APIs. Among these is an improved Bing Maps control, which brings 3D mapping (courtesy of Microsoft’s new oblique imaging camera) to Windows apps.
At long last, the Internet Explorer team has brought WebGL to IE11. Webpages and app-embedded web view controls will be able to render hardware-accelerated 3D content (this should be a boon for 3D web mapping projects such as Cesium and Google Earth).
Hardware goodies abound–all attendees will receive both Acer Iconia W3 and Microsoft Surface Pro tablets.
In line to get into the keynote.
After a few weather- and construction-related at delays at SFO, I arrived in The City by the Bay early this afternoon and checked in to both the conference and the hotel. Tonight I’m fighting jet lag while reviewing the session lineup, eager to see what Microsoft has in store!