Category Archives: Windows Blog

Windows Blog

New DirectX 12 features in Windows 10 Fall Creators Update

We’ve come a long way since we launched DirectX 12 with Windows 10 on July 29, 2015. Since then, we’ve heard every bit of feedback and improved the API to enhance stability and offer more versatility. Today, developers using DirectX 12 can build games that have better graphics, run faster and that are more stable than ever before. Many games now run on the latest version of our groundbreaking API and we’re confident that even more anticipated, high-end AAA titles will take advantage of DirectX 12.
DirectX 12 is ideal for powering the games that run on PC and Xbox, which is the most powerful console on the market. Simply put, our consoles work best with our software: DirectX 12 is perfectly suited for native 4K games on the Xbox One X.
In the Windows 10 Fall Creators Update, we’ve added features that make it easier for developers to debug their code. In this article, we’ll explore how these features work and offer a recap of what we added in Windows 10 Creators Update.
But first, let’s cover how debugging a game or a program utilizing the GPU is different from debugging other programs.
As covered previously, DirectX 12 offers developers unprecedented low-level access to the GPU (check out Matt Sandy’s detailed post for more info). But even though this enables developers to write code that’s substantially faster and more efficient, this comes at a cost: the API is more complicated, which means that there are more opportunities for mistakes.
Many of these mistakes happen GPU-side, which means they are a lot more difficult to fix. When the GPU crashes, it can be difficult to determine exactly what went wrong. After a crash, we’re often left with little information besides a cryptic error message. The reason why these error messages can be vague is because of the inherent differences between CPUs and GPUs. Readers familiar with how GPUs work should feel free to skip the next section.
The CPU-GPU Divide
Most of the processing that happens in your machine happens in the CPU, as it’s a component that’s designed to resolve almost any computation it it’s given. It does many things, and for some operations, foregoes efficiency for versatility. This is the entire reason that GPUs exist: to perform better than the CPU at the kinds of calculations that power the graphically intensive applications of today. Basically, rendering calculations (i.e. the math behind generating images from 2D or 3D objects) are small and many: performing them in parallel makes a lot more sense than doing them consecutively. The GPU excels at these kinds of calculations. This is why game logic, which often involves long, varied and complicated computations, happens on the CPU, while the rendering happens GPU-side.
Even though applications run on the CPU, many modern-day applications require a lot of GPU support. These applications send instructions to the GPU, and then receive processed work back. For example, an application that uses 3D graphics will tell the GPU the positions of every object that needs to be drawn. The GPU will then move each object to its correct position in the 3D world, taking into account things like lighting conditions and the position of the camera, and then does the math to work out what all of this should look like from the perspective of the user. The GPU then sends back the image that should be displayed on system’s monitor.

To the left, we see a camera, three objects and a light source in Unity, a game development engine. To the right, we see how the GPU renders these 3-dimensional objects onto a 2-dimensional screen, given the camera position and light source. 
For high-end games with thousands of objects in every scene, this process of turning complicated 3-dimensional scenes into 2-dimensional images happens at least 60 times a second and would be impossible to do using the CPU alone!
Because of hardware differences, the CPU can’t talk to the GPU directly: when GPU work needs to be done, CPU-side orders need to be translated into native machine instructions that our system’s GPU can understand. This work is done by hardwire drivers, but because each GPU model is different, this means that the instructions delivered by each driver is different! Don’t worry though, here at Microsoft, we devote a substantial amount of time to make sure that GPU manufacturers (AMD, Nvidia and Intel) provide drivers that DirectX can communicate with across devices. This is one of the things that our API does; we can see DirectX as the software layer between the CPU and GPU hardware drivers.
Device Removed Errors
When games run error-free, DirectX simply sends orders (commands) from the CPU via hardware drivers to the GPU. The GPU then sends processed images back. After commands are translated and sent to the GPU, the CPU cannot track them anymore, which means that when the GPU crashes, it’s really difficult to find out what happened. Finding out which command caused it to crash used to be almost impossible, but we’re in the process of changing this, with two awesome new features that will help developers figure out what exactly happened when things go wrong in their programs.
One kind of error happens when the GPU becomes temporarily unavailable to the application, known as device removed or device lost errors. Most of these errors happen when a driver update occurs in the middle of a game. But sometimes, these errors happen because of mistakes in the programming of the game itself. Once the device has been logically removed, communication between the GPU and the application is terminated and access to GPU data is lost.
Improved Debugging: Data
During the rendering process, the GPU writes to and reads from data structures called resources. Because it takes time to do translation work between the CPU and GPU, if we already know that the GPU is going to use the same data repeatedly, we might as well just put that data straight into the GPU. In a racing game, a developer will likely want to do this for all the cars, and the track that they’re going to be racing on. All this data will then be put into resources. To draw just a single frame, the GPU will write to and read from many thousands of resources.
Before the Fall Creators Update, applications had no direct control over the underlying resource memory. However, there are rare but important cases where applications may need to access resource memory contents, such as right after device removed errors.
We’ve implemented a tool that does exactly this. Developers with access to the contents of resource memory now have substantially more useful information to help them determine exactly where an error occurred. Developers can now optimize time spent trying to determine the causes of errors, offering them more time to fix them across systems.
For technical details, see the OpenExistingHeapFromAddress documentation.
Improved Debugging: Commands
We’ve implemented another tool to be used alongside the previous one. Essentially, it can be used to create markers that record which commands sent from the CPU have already been executed and which ones are in the process of executing. Right after a crash, even a device removed crash, this information remains behind, which means we can quickly figure out which commands might have caused it—information that can significantly reduce the time needed for game development and bug fixing.
For technical details, see the WriteBufferImmediate documentation.
What does this mean for gamers? Having these tools offers direct ways to detect and inform around the root causes of what’s going on inside your machine. It’s like the difference between trying to figure out what’s wrong with your pickup truck based on hot smoke coming from the front versus having your Tesla’s internal computer system telling you exactly which part failed and needs to be replaced.
Developers using these tools will have more time to build high-performance, reliable games instead of continuously searching for the root causes of a particular bug.
Recap of Windows 10 Creators Update
In the Creators Update, we introduced two new features: Depth Bounds Testing and Programmable MSAA. Where the features we rolled out for the Windows 10 Fall Creators Update were mainly for making it easier for developers to fix crashes, Depth Bounds Testing and Programmable MSAA are focused on making it easier to program games that run faster with better visuals. These features can be seen as additional tools that have been added to a DirectX developer’s already extensive tool belt.
Depth Bounds Testing
Assigning depth values to pixels is a technique with a variety of applications: once we know how far away pixels are from a camera, we can throw away the ones too close or too far away. The same can be done to figure out which pixels fall inside and outside a light’s influence (in a 3D environment), which means that we can darken and lighten parts of the scene accordingly. We can also assign depth values to pixels to help us figure out where shadows are. These are only some of the applications of assigning depth values to pixels; it’s a versatile technique!
We now enable developers to specify a pixel’s minimum and maximum depth value; pixels outside of this range get discarded. Because doing this is now an integral part of the API and because the API is closer to the hardware than any software written on top of it, discarding pixels that don’t meet depth requirements is now something that can happen faster and more efficiently than before.
Simply put, developers will now be able to make better use of depth values in their code and can free GPU resources to perform other tasks on pixels or parts of the image that aren’t going to be thrown away.
Now that developers have another tool at their disposal, for gamers, this means that games will be able to do more for every scene.
For technical details, see the OMSetDepthBounds documentation.
Programmable MSAA
Before we explore this feature, let’s first discuss anti-aliasing.
Aliasing refers to the unwanted distortions that happen during the rendering of a scene in a game. There are two kinds of aliasing that happen in games: spatial and temporal.
Spatial aliasing refers to the visual distortions that happen when an image is represented digitally. Because pixels in a monitor/television screen are not infinitely small, there isn’t a way of representing lines that aren’t perfectly vertical or horizontal on a monitor. This means that most lines, instead of being straight lines on our screen, are not straight but rather approximations of straight lines. Sometimes the illusion of straight lines is broken: this may appear as stair-like rough edges, or ‘jaggies’, and spatial anti-aliasing refers to the techniques that programmers use to make these kinds edges smoother and less noticeable. The solution to these distortions is baked into the API, with hardware-accelerated MSAA (Multi-Sample Anti-Aliasing), an efficient anti-aliasing technique that combines quality with speed. Before the Creators Update, developers already had the tools to enable MSAA and specify its granularity (the amount of anti-aliasing done per scene) with DirectX.

Side-by-side comparison of the same scene with spatial aliasing (left) and without (right). Notice in particular the jagged outlines of the building and sides of the road in the aliased image. This still was taken from Forza Motorsport 6: Apex.
But what about temporal aliasing? Temporal aliasing refers to the aliasing that happens over time and is caused by the sampling rate (or number of frames drawn a second) being slower than the movement that happens in scene. To the user, things in the scene jump around instead of moving smoothly. This YouTube video does an excellent job showing what temporal aliasing looks like in a game.
In the Creators Update, we offer developers more control of MSAA, by making it a lot more programmable. At each frame, developers can specify how MSAA works on a sub-pixel level. By alternating MSAA on each frame, the effects of temporal aliasing become significantly less noticeable.
Programmable MSAA means that developers have a useful tool in their belt. Our API not only has native spatial anti-aliasing but now also has a feature that makes temporal anti-aliasing a lot easier. With DirectX 12 on Windows 10, PC gamers can expect upcoming games to look better than before.
For technical details, see the SetSamplePositions documentation.
Other Changes
Besides several bugfixes, we’ve also updated our graphics debugging software, PIX, every month to help developers optimize their games. Check out the PIX blog for more details.
Once again, we appreciate the feedback shared on DirectX 12 to date, and look forward to delivering even more tools, enhancements and support in the future.
Happy developing and gaming!

Windows 10 Tip: Edit any URL in your Microsoft Edge Favorites 

Did you know, with the Windows 10 Fall Creators Update, you can now edit the URL of any favorite in the Favorites menu or the Favorites Bar?
Here’s how to get started:

Simply go to Hub, then Favorites; right-click on a favorite and select “Edit a URL.”
Head over here to see how you can now pin your websites in the taskbar in Microsoft Edge, or here to see what else is new in the Fall Creators Update!

Training Haiti’s radiologists: St. Louis doctor takes her teaching global

From Missouri to Haiti
Radiology is often crucial in identifying and diagnosing injuries or diseases efficiently and accurately. Medical imaging techniques, such as x-ray, ultrasound and computed tomography (CT), have advanced alongside technology. Dr. Jennifer Nicholas has a long history of working to improve diagnostic imaging capacity and radiology training around the world, having traveled to Nicaragua, Kenya and Haiti to improve training for radiology residents and, ultimately, the outcomes for patients.
In September of 2016, she joined Washington University School of Medicine as an assistant professor and pediatric radiologist who practices at Saint Louis Children’s Hospital. As part of Washington University’s Mallinckrodt Institute of Radiology, Jennifer is helping to develop a global outreach program, part of which involves providing radiology training in Haiti to residents at Hôpital de l’Universite d’Etat d’Haiti (HUEH), the state hospital in Port-au-Prince. One of the first stops on that journey, however, was at a mall in Missouri to explore device and technology solutions that would enable her to deploy a tablet-based curriculum, which utilized tools like PowerPoint for presentations and OneNote to serve as a dynamic professional toolbox.
A Particular Request
Upon meeting her in the Saint Louis Galleria, Jo Otey, business sales specialist at Microsoft Store, showed Jennifer how Surface Pro 4 and Office 365 would provide her with a way to seamlessly facilitate the tablet-based radiology curriculum in Haiti.
Jennifer’s goal was to create a flipped classroom environment in Haiti. Educators use a flipped classroom to break free from the traditional paradigm of educational lectures in a classroom. In this case, Jennifer’s flipped classroom needed to extend across geographic, cultural, and linguistic boundaries so the residents could complete their assigned reading, interpret cases, and create preliminary reports in advance of their virtual conference with Jennifer where the cases were reviewed, and the lectures given.
In September, Jo traveled to Haiti with Jennifer at her request to lay the groundwork for the flipped classroom at HUEH and help train the radiology residents on the technology. While the idea of flipped learning is not new, Jennifer’s program would take the concept to a new level. Radiology residents would be required to read course materials pre-loaded on the Surface Pro 4, interpret cases, and create preliminary reports in advance of a virtual conference and lecture where the case studies are reviewed.
The Flipped Classroom
Once Jennifer and Jo opened the possibilities of Business essentials to implement the curriculum, she discovered how transitioning to Microsoft 365 Business gave her the ability to manage devices remotely and securely and deploy new apps to the residents. Jennifer also had the ability to restrict usage of the devices until the residents completed the curriculum for the course. In addition to Microsoft 365 Business, Jo and Jennifer discovered solutions major challenges such as file sharing for the curriculum, facilitation, and communication limitations (language barriers and productivity tools). SharePoint allows her a means of monitoring the curriculum, usage, and progress of the radiology residents.

Since September, the residents have been preparing for the formal launch of the curriculum and Jennifer has noticed a major shift in the computer literacy of the radiology residents, due in part to the decision to use Surface Pro 4 with Windows and Office. The residents have been quick to take advantage of features like Skype for Business to interact with their colleagues within and outside of the Haiti. Microsoft Translator has helped bridge the language gap. Program participants can translate English coursework and reading into their native French to better understand the information, then translate to English to communicate curriculum-based questions to faculty. With OneNote, the residents create a virtual residency toolbox, and Jennifer will be able to use Forms to facilitate quizzes and surveys. Jennifer can then easily deploy apps and curriculum either in Haiti or the United States via a simple Microsoft 365 Business dashboard.
“The current infrastructure of the radiology department at HUEH is traditional x-ray film and paper printouts of relevant ultrasound images with hand-written reports,” says Jennifer. “During their careers, this group of radiologists will lead the transition to digital imaging in Haiti.  In addition to the radiology content the residents are learning through this curriculum, the computer skills they are strengthening with the use of the Surface Pro 4 and Windows will be invaluable as they negotiate new technology in the future.”
Currently, the radiology residency in Haiti includes 13 residents across the three-year program, but the curriculum also includes eight recent graduates of the program who are newly-minted practicing radiologists in Haiti. More than 20 Surface Pro4 were distributed to the radiologists-in-training. The resident doctors are responding positively to the program and are excited about the technology.
Unfortunately, the unexpected arrival of Hurricane Irma as the new devices were being implemented forced Jennifer and team to have to evacuate two days early. Still, the program is under way and Jennifer looks forward to the expansion of future global health programs in other parts of the world where there are radiology residents who are eager to learn, but their access to the latest educational resources is limited.
“I look forward to evaluating the curriculum in 2018,” says Jennifer. “I will be tracking how the residents are using the devices and the educational resources loaded on them. I will also evaluate how the residents’ levels of confidence in interpreting radiology studies have improved. During my last trip to Haiti, I was approached by doctors from other specialties who have heard about the curriculum and are interested in how they might be able to implement similar programs with their residents.”
Visit your local Microsoft Store to meet with a business sales specialist, explore device and technology solutions, and discover free resources like Office Hours that will help you to achieve more.

Announcing Windows 10 Insider Preview Build 17040 for PC

Hello Windows Insiders!
Today, we are releasing Windows 10 Insider Preview Build 17040 for PC to Windows Insiders in the Fast ring and for those who opted in to Skip Ahead.
NOTE: The block for AMD PCs is no longer in effect as of this flight. 
What’s new in Build 17040
Settings Improvements
Adjust the brightness of SDR content on your HDR display: Starting with Build 17040, Windows now lets you adjust how bright SDR content appears when running in HDR mode on the desktop. On an HDR capable system, you will see a slider in the “HDR and advanced color settings” page under Settings > System > Display. This is one of the improvements to HDR image quality that we have planned based on feedback from Insiders.

New Cursor, pointer, and touch feedback section in Ease of Access Settings: Continuing our recent efforts to reorganize this section in Settings, you’ll notice that “change cursor thickness”, “Change pointer size and color”, and “Change touch feedback” have been moved to this new place.
Touch keyboard Improvements
Shape-writing with wide touch keyboard: With the Fall Creators Update we introduced shape-writing input for one-handed keyboard. We’ve heard your feedback, and with today’s build we’re happy to announce that it’s now also available when using the wide keyboard!

As a reminder, shape-writing is currently available for the following languages: Catalan (Catalan), Croatian (Croatia), Czech (Czech), Danish (Denmark), Dutch (Netherlands), English (India), English (United States), English (United Kingdom), Finnish (Finland), French (Canada), French (France), French (Switzerland), German (Germany), Greek (Greece), Hebrew (Israel), Hungarian (Hungary), Indonesian (Indonesia), Italian (Italy), Norwegian, Persian (Iran), Polish (Poland), Portuguese (Brazil), Portuguese (Portugal), Romanian (Romania), Russian (Russia), Spanish (Mexico), Spanish (Spain), Swedish (Sweden), Turkish (Turkey), and Vietnamese (Vietnam).
Handwriting panel Improvements
Improved Insertion Gesture: Based on your feedback about gesture recognition, we’ve updated the insertion gesture (to add space between words or letters) to now be a small caret (see below gif for a demo of what it looks like, along with a cameo of our joining gesture).

A New Commit Gesture: We’ve added a new gesture so you can automatically commit your text and clear out the text in the handwriting panel. This gesture looks like a 90 degree angle bracketing the end of your text – see gif below for an example of how it works.

Improved button layout for Chinese (Simplified) Handwriting: If you use Chinese (Simplified), you’ll now see a layout similar to the one announced for other languages with Build 17035. The buttons in the handwriting panel are collapsed by default – tap the button with the ellipsis to expand them.
General changes, improvements, and fixes for PC
We’ve added settings that let you view and manage your activity history, which Cortana uses to let you pick up where you left off. Find these settings in Settings > Privacy > Activity history.
We fixed an issue where network profiles might change from Private to Public after upgrading to the previous build.
We fixed an issue resulting in checkboxes being missing from certain win32 apps.
We fixed a typo in the Windows Defender Security Center’s Controlled Folder Settings.
We fixed an issue resulting not being able to fully remove Windows.old in the last two flights.
We fixed an issue resulting in Narrator not saying anything when the candidate bar for hardware keyboard prediction opened. We also fixed an issue where Narrator wasn’t reading the word candidate when the focus moved into candidate bar.
We fixed an issue where the “Working on updates” screen was black with a small theme colored box instead of entirely theme colored.
We fixed an issue resulting in some Insiders experiencing a green screen on the previous flight with the error BAD_POOL_CALLER.
We fixed an issue resulting in UWP app sometimes leaving drop shadow leftovers after closing the window.
We fixed an issue where inactive window scrolling wouldn’t work if Excel 2016 was in focus.
We fixed an issue resulting in a noticeable flicker when using hotkeys or a precision touchpad to switch between virtual desktops.
We fixed an issue where the XAML Reveal light wouldn’t follow your mouse until the first mouse click – instead showing the entire element lit. This issue was visible in Settings and other XAML based UI in the last few builds.
We fixed an issue resulting in changes to Feedback Frequency in Feedback & Diagnostics Settings not persisting after leaving the page and returning.
We fixed an issue where Start wouldn’t open if you pressed the Windows key when the system menu from elevated Command Prompt or Task Manager window was open.
We fixed a rare issue where if you had certain streaming-capable apps on your PC before upgrading you might end up seeing a black screen with only a cursor for some time after logging in.
We fixed an issue from recent flights where the “Add” button in the PIN section of Sign-in Option Settings didn’t work for local accounts.
We’ve updated the icon for Collections in Cortana.
We’ve updated the touch keyboard so that the margin between each key is visual only. This change will be noticeable if you accidentally overshoot the key press by just a tiny bit – before it might seem as if key presses were being dropped in this scenario.
Based on your feedback, the feature to restore applications that have registered for application restart after you reboot or shutdown (through power options available on the Start Menu and various other locations) has been set to only occur for users that have enabled “Use my sign-in info to automatically finish setting my device after an update or restart” in the Privacy section under Sign-in Options Settings.
Known issues
If you are experiencing broken functionality in Mail, Cortana, Narrator or missing some features like Windows Media Player, please see this Feedback Hub post: https://aka.ms/Rsrjqn.
Popular Tencent games like League of Legends and NBA2k Online may cause 64-bit PCs to bugcheck (GSOD).
VPNs which use custom pop-up windows during connection attempts may fail to connect with error 720.
Due to a bug that was introduced on this build, you may not receive all of your notifications from Cortana. Reminders are unaffected by this bug, but you may not receive other Cortana notifications that you are expecting. We are working to resolve this issue and will release the fix in an upcoming flight.
The Properties dialog for This PC in File Explorer isn’t working and can’t be invoked from the context menu.
Insiders with certain third party antiviruses and OneDrive Files on Demand enabled may see an error citing “OneDrive cannot connect to Windows”.
ADDED: [DEVELOPERS] Deploying an x86 app to a x64 PC remotely result in “FileNotFound” deployment failures if the target PC is running Build 17040. Deploying an x64 app to a x64 PC remotely or a x86 app to a x86 PC will work fine.
Insider Preview Apps Survey
Windows Insiders running the latest Insider Preview builds have also been able to try out early versions of Windows apps like Mail and Calendar, Skype, Photos and People. In an effort to improve this experience, we’re asking Insiders to complete a quick survey. The survey only takes 1-3 minutes to complete. As with all our surveys, the feedback you provide will not be will not be shared outside of Microsoft or associated with any personal information unless you choose to provide your Microsoft account email (MSA). Feedback from this survey will help us enhance the app preview experience with more timely app updates, more informative news announcements and other benefits.
No downtime for Hustle-As-A-Service,
Dona

This Week on Windows: Surface Book 2 available today, Black Friday deals and more

We hope you enjoyed this week’s episode of This Week on Windows! Head over here to learn more about the Surface Book 2, available today; read more about the top Black Friday deals from Microsoft and our partners, kicking off Nov. 23; check out our Windows 10 Tip on how to make your movies and games sound better with Windows Sonic – or, keep reading for more of this week’s news!
 Surface Book 2 available today

Surface Book 2 removes the barrier between the desktop and the laptop by giving mobile professionals the power of a desktop, the versatility of a tablet, and the freedom of a laptop in one beautifully designed device. With the latest 8th Gen Intel Core processors and NVIDIA GeForce GTX 1050 and 1060 discrete graphics options, Surface Book 2 is up to five times more powerful than the original and is twice as powerful as the latest MacBook Pro. All this power and Surface Book 2 still provides all-day battery life – up to 17 hours of video playback. Surface Book 2 with the 13” weighs 3.38lbs and the 15” Surface Book 2 is 4.2lbs.
Purchase your own Surface Book 2 here
The detachable display and hinge of Surface Book 2 has been redesigned to provide a smoother, faster detach into Tablet or Studio Mode – and when you detach to sketch an idea or watch a video, the Surface Book 2 turns into the world’s thinnest and lightest 8th Gen Intel Core i7 PC. Surface Book 2 brings you a full array of ports, including USB-A, USB-C, and full-size SD card reader which makes it easy to connect other devices, accessories and memory cards without the need for a bag full of dongles.
Surface Book 2 13” is available today in the United States and additional markets around the world, along with Surface Book 2 15” in the United States at your local Microsoft Store and Microsoft.com. Visit this blog post for 5 reasons you’ll love Surface Book 2.

Black Friday deals from Microsoft and our partners

Black Friday deals from Microsoft Store and our partners kick off Nov. 23. Save big on Surface, Windows Mixed Reality headsets, Windows 10 PCs – and get an Xbox One S at its lowest price ever! You can also save on apps like Adobe Photoshop Elements 2018, PC games including Forza Motorsport 7 – Standard Edition and Halo Wars 2, movies like Deadpool and Wonder Woman and more. Here’s a sneak peek into the hottest deals you can enjoy starting next weekend through Cyber Monday at your local Microsoft Store, Microsoft.com and on your Windows 10 PC. You can check out more deals here.

What’s new in the Microsoft Store this week:
MINECON Skin Pack for Minecraft

MINECON is less than a week away! Get ready with the MINECON Skin Pack for Minecraft ($26.99), full of cosplayers, cake and dinner dress – everything you need for a MINECON celebration. Get a free fully explorable Minecraft map by the Elite map maker Jigarbov based on the MINECON Earth logo. Not to be outdone, the Minecraft team themselves have put together a free celebratory map as well, packed full of disco-dancing parrots. This FREE content is available for a limited time only: Nov. 13-27.
Hulu: Future Man

Hulu (Free, subscription required for content) has something hilarious in store this month, debuting Future Man, a new and original comedy series starring John Hutcherson. When his character, a janitor by day, world-ranked gamer by night, is approached by mysterious visitors from the future, they proclaim him the key to defeating an imminent super-race invasion. Watch what happens.
Candy Crush 5th Anniversary

We’ve devoured this sweet matching game for five years, but we still can’t get enough of Candy Crush Saga and Candy Crush Soda Saga (Free, with IAP options). Now, in celebration of this birthday milestone, there are special events everywhere. Candy Crush Soda Saga offers a Free Birthday Booster for levels 29 and higher through Nov. 21, and Candy Crush Saga does the same from today through Nov. 23.
Have a great weekend!

Xbox analytics report update in Dev Center

We are happy to announce that we’ve updated our Xbox analytics report with a new Xbox Live service health tab to provide visibility into Xbox Live’s service responses.
Xbox Live service health
The new Xbox Live service health tab helps you understand the impact of any Xbox Live client errors, including rate limiting. You are now able to drill down by endpoint and status code to more effectively fix issues. This includes exempt rate limited requests to see potential impact in cases of high volume of these services.
The report also provides a view on Xbox Live’s service availability for your title, so you can quickly determine whether an issue is due to your title’s code or a service outage. The report includes sandbox filters, so you can be more proactive and mitigate issues before your game is released.

Xbox analytics overview
The Xbox analytics overview tab shows who your players are and how they’re engaging with Xbox Live features, so you can make key business decisions for your Xbox titles. For many of these statistics, we also show the Xbox average, so you can easily see how your customers interact with Xbox compared to the average Xbox customer. You can view the following data in the overview tab:
Concurrent usage
Gamerscore distribution
Achievement unlocks
Game statistics
Friends and followers
Accessory usage
Connection type

You can learn more about the Xbox analytics report here. We look forward to the positive impact it will have on your players!

Yuwa partners with Microsoft Edge to showcase the powerful life journey of girls in Jharkhand

Yuwa, founded in 2009 by Franz Gastler, uses girls’ team sports as a platform for educational opportunities in rural India. Yuwa works with hundreds of girls in a disadvantaged region of Jharkhand, India – one of the poorest and least literate regions of India – to develop the skills they need to create a self-determined life. These skills begin with teamwork and confidence through team sport – namely football – and are advanced further through school and peer support as well as connections with their families. The girls are coached to build leadership skills and are given personal and team growth responsibilities. Yuwa provides a framework for the girls to establish life goals that enable them to be self-sufficient and contribute meaningfully to their community.
“Yuwa girls use technology to discover the wonders of language, math, and science.  They are defying the odds—and defining their own futures.” – Franz Gastler
“Yuwa girls are usually the first in their families to set their sights on higher education, despite the pressure in their communities to drop out of school and get married,” Franz Gastler says. “By engaging with technology, girls are expanding their world-views and enhancing their employability.”
How yuwa works
Through this strategy of consistently sustained coaching, girls and their families aspire to a future other than becoming a child bride. They are also able to avoid becoming a victim of human trafficking. When a girl is part of a Yuwa team, she becomes a more regular student through the positive peer pressure from her teammates. She pays attention to her own health and to the health of her teammates. She begins to take her future into her own hands. She marries when she chooses—she and her coaches meet her parents to discuss a future other than an early marriage.
“I would like to change the way people in my village think about girls. In my village, people think that a girl cannot be a great person. Villagers only think that boys can do anything in their lives. That’s why they only send boys to private schools, to English schools, so that boys can get a better education and boys can earn a good name for their family. But the villagers think girls should not go to school.” – Konika, 14 years old
Microsoft Edge is honored to partner with YUWA and bring to life a new Yuwa website that connects each visitor to the girls who join a Yuwa team. Now anyone can participate in a deeper connection with all those who believe in Yuwa’s work. New website features include:
360 Day in the Life view, authored by the girls – Attend a soccer practice in a full 360-degree view and cheer them on. Find points of interest near the field, key moments during play, and links to videos filmed by Yuwa staff and the girls. The brand-new tool used to create this view, 360 Story Builder, is packaged as a WordPress plugin for use by nonprofits.
Interactive infographics – Get the facts about Jharkhand and Yuwa girls that articulate the challenges they face and Yuwa’s effectiveness in changing lives.
Opportunities to advance the mission – Here’s how you can connect to the girls through sponsoring them as a team or individual, and learn about how much each contribution makes a difference.

Partnering with Yuwa offered the Microsoft Edge team a unique opportunity to use web technology for a more interactive platform built to meet Yuwa’s goals. We utilized Microsoft Edge’s support for elaborate 360-degree content viewing in a unique way for immersive storytelling through the web. This platform tells the story of Yuwa – who it serves, how, and demonstrates the lives Yuwa has impacted thus far. We are honored to support Yuwa’s work to empower disadvantaged and at-risk girls in Jharkhand.
“The new website creates a platform for the world to see what the Yuwa girls are accomplishing and overcoming each day. We are able to have people from all of the world become a part of these girls’ stories, helping them change their lives and family forever,” says Franz. “This new site will help us tell the challenges the girls in Jharkhand face and how we can expand our program and continue to reach more girls, families and communities.”
Visit Yuwa now to learn more about the Yuwa program and hear the girls’ inspiring stories.
About Microsoft Edge Web Showcase
Microsoft Edge Web Showcase is dedicated to partnering with organizations around the world to highlight extraordinary and exciting new ventures. This program explores opportunities to contribute to a diverse set of literacy programs and to develop partnerships to showcase web technology.

5 reasons you’ll love Surface Book 2

Starting today, you can get your hands on the most powerful Surface ever, Surface Book 2. We built this Surface for people who need the performance and graphics processing power to work, create, and game from anywhere. Now anyone who needs desktop-class power, from designers, developers, and engineers to scientists, artists, and gamers can have the freedom and flexibility of a laptop and tablet. Whether you choose the 13-inch or the 15-inch (US only), here are 5 reasons to love the new Surface Book 2.
It’s really powerful – Surface Book 2 is the most powerful Surface ever. It has four times the processing power and more than five times the graphics performance of the original Surface Book. It has up to twice the total processing of similarly spec’d MacBook Pros1. With quad-core 8th Gen Intel Core processors, up to 16GB of RAM and NVIDIA GeForce GTX 1050 and 1060 discrete GPUs, Surface Book 2 has the power you’ll need for whatever you do.
It has amazing battery life – Surface Book 2 goes where you go and keeps up with up to 17 hours of battery life2 (or up to 5 hours on the detached tablet). That’s up to 70% longer than a MacBook Pro 13-inch or 15-inch. With the power slider in Windows 10 (click on the battery icon) you can optimize either for peak performance or longer battery life. And, if you don’t have your Surface power cord, you now have the option to charge via USB-C using a compatible charger.
It plays hard –With an optional NVIDIA GeForce GTX 1060 with 6GB GDDR5 graphics memory, you’re going to love gaming on Surface Book 2. Our team has been playing Gears of War 4 and Forza Motorsport 7 – both graphically intense games – at 1080p and 60 FPS and they look amazing on the PixelSense display. The 15-inch model even includes Xbox Wireless built-in so you can pair Xbox One Accessories and play wherever you want. Surface Book 2 is also ready for Windows Mixed Reality. Connect a compatible Windows Mixed Reality headset and controllers to experience the most immersive gaming and VR experiences with 100+ degrees view field and 90hz refresh rate.
It’s a creator’s dream – Whether you’re a game developer, digital artist, designer, 3D-modeller, AI developer, photographer, or video guru, Surface Book 2 is what you need to create the amazing. You’ll have all the power you’ll need to run full versions of the software you depend on, a beautiful PixelSense display and awesome keyboard and trackpad. Beyond these, Surface Book 2 lets you create and edit with the optional Surface Pen3, featuring 4096 levels of pressure sensitivity and tilt and on-screen use of the Surface Dial3 The ink experience even extends to Office 3653 , where we’ve done a ton of work as a company to make sure your work really comes to life.
It’s incredibly versatile – The original Surface Book made waves with its detachable screen, and these new devices continue to offer unmatched versatility. Use Surface Book 2 as a traditional laptop or disconnect the tablet to experience the freedom of the thinnest 8th Gen Intel Core i7 PC available. Turn the screen around and re-attach it for view mode, a great way to share ideas or watch movies at 30,000 feet. Close the device with the screen exposed and your Surface Book 2 becomes a powerful, portable Studio angled just right for drawing and using Dial. Surface Book 2 also includes a full array of ports – two full-size USB 3.1, USB-C, an SD card reader, Surface Connect ports in both the base and tablet and a 3.5mm headset jack.

Surface Book 2 is available today starting at $1,499.99 USD at Microsoft Store, Microsoft.com, and Best Buy in the US, and around the world at select retailers.
I encourage you to see and try one in person. I hope you love it as much as I do.
1Microsoft Test Lab 3DMark 11 Graphics and LuxMark 3.1 CPU+GPU score comparison, Surface Book 15-inch [Intel i7-8650U with NVIDIA GeForce GTX 1060] vs. MacBook Pro 15-inch [Intel i7-7567U with AMD Radeon Pro 560], and Surface Book 13” [Intel i7-8650U with NVIDIA GeForce GTX 1050] vs. MacBook Pro 13-inch [Intel i7-7567U], October 2017.2Up to 17 hours of video playback. Testing conducted by Microsoft in October 2017 using preproduction Intel Core i5, 256GB, 8 GB RAM device. Testing consisted of full battery discharge during video playback. All settings were default except: i-Fi was associated with a network and Auto-Brightness disabled. Battery life varies significantly with setting, usage, and other factors. 3Surface Pen, Surface Dial, and Office 365 sold separately.

Windows 10 SDK Preview Build 17035 now available

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17035 or greater). The Preview SDK Build 17035 contains bug fixes and under development changes to the API surface area.
The Preview SDK can be downloaded from developer section on Windows Insider.
For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.
Things to note:
This build works in conjunction with previously released SDKs and Visual Studio 2017. You can install this SDK and still also continue to submit your apps that target Windows 10 Creators build or earlier to the store.
The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2017 here.
Known Issues:
Installation on an operating system that is not a Windows 10 Insider Preview  build is not supported and may fail.
What’s New:
C++/WinRT Now Available:
The C++/WinRT headers and cppwinrt compiler (cppwinrt.exe) are now included in the Windows SDK. The compiler comes in handy if you need to consume a third-party WinRT component or if you need to author your own WinRT components with C++/WinRT. The easiest way to get working with it after installing the Windows Insider Preview SDK is to start the Visual Studio Developer Command Prompt and run the compiler in that environment. Authoring support is currently experimental and subject to change. Stay tuned as we will publish more detailed instructions on how to use the compiler in the coming week. The ModernCPP blog has a deeper dive into the CppWinRT compiler. Please give us feedback by creating an issue at: https://github.com/microsoft/cppwinrt.
Breaking Changes
New MIDL key words. 
As a part of the “modernizing IDL” effort, several new keywords are added to the midlrt tool. These new keywords will cause build breaks if they are encountered in IDL files.
The new keywords are:
event
set
get
partial
unsealed
overridable
protected
importwinmd
If any of these keywords are used as an identifier, it will generate a build failure indicating a syntax error.
The error will be similar to:
1 >d:ossrconecorecomcombaseunittestastatestserverstestserver6idlremreleasetest.idl(12) : error MIDL2025 : [msg]syntax error [context]: expecting a declarator or * near “)”
To fix this, modify the identifier in error to an “@” prefix in front of the identifier. That will cause MIDL to treat the offending element as an identifier instead of a keyword.
API Updates and Additions
When targeting new APIs, consider writing your app to be adaptive in order to run correctly on the widest number of Windows 10 devices. Please see Dynamically detecting features with API contracts (10 by 10) for more information.
The following APIs have been added to the platform since the release of 16299.

namespace Windows.ApplicationModel {
public enum StartupTaskState {
EnabledByPolicy = 4,
}
}
namespace Windows.ApplicationModel.Background {
public sealed class MobileBroadbandPcoDataChangeTrigger : IBackgroundTrigger
}
namespace Windows.ApplicationModel.Calls {
public enum PhoneCallMedia {
AudioAndRealTimeText = 2,
}
public sealed class VoipCallCoordinator {
VoipPhoneCall RequestNewAppInitiatedCall(string context, string contactName, string contactNumber, string serviceName, VoipPhoneCallMedia media);
VoipPhoneCall RequestNewIncomingCall(string context, string contactName, string contactNumber, Uri contactImage, string serviceName, Uri brandingImage, string callDetails, Uri ringtone, VoipPhoneCallMedia media, TimeSpan ringTimeout, string contactRemoteId);
}
public sealed class VoipPhoneCall {
void NotifyCallAccepted(VoipPhoneCallMedia media);
}
}
namespace Windows.ApplicationModel.Chat {
public sealed class RcsManagerChangedEventArgs
public enum RcsManagerChangeType
public sealed class RcsNotificationManager
}
namespace Windows.ApplicationModel.UserActivities {
public sealed class UserActivity {
public UserActivity();
}
public sealed class UserActivityChannel {
public static void DisableAutoSessionCreation();
}
public sealed class UserActivityVisualElements {
string AttributionDisplayText { get; set; }
}
}
namespace Windows.Devices.PointOfService {
public sealed class BarcodeScannerReport {
public BarcodeScannerReport(uint scanDataType, IBuffer scanData, IBuffer scanDataLabel);
}
public sealed class ClaimedBarcodeScanner : IClosable {
void HideVideoPreview();
IAsyncOperation<bool> ShowVideoPreviewAsync();
}
public sealed class UnifiedPosErrorData {
public UnifiedPosErrorData(string message, UnifiedPosErrorSeverity severity, UnifiedPosErrorReason reason, uint extendedReason);
}
}
namespace Windows.Globalization {
public static class ApplicationLanguages {
public static IVectorView<string> GetLanguagesForUser(User user);
}
public sealed class Language {
LanguageLayoutDirection LayoutDirection { get; }
}
public enum LanguageLayoutDirection
}
namespace Windows.Graphics.Imaging {
public enum BitmapPixelFormat {
P010 = 104,
}
}
namespace Windows.Management.Deployment {
public sealed class PackageManager {
IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> RequestAddPackageAsync(Uri packageUri, IIterable<Uri> dependencyPackageUris, DeploymentOptions deploymentOptions, PackageVolume targetVolume, IIterable<string> optionalPackageFamilyNames, IIterable<Uri> relatedPackageUris, IIterable<Uri> packageUrisToInstall);
}
}
namespace Windows.Media.Audio {
public sealed class AudioGraph : IClosable {
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource);
IAsyncOperation<CreateMediaSourceAudioInputNodeResult> CreateMediaSourceAudioInputNodeAsync(MediaSource mediaSource, AudioNodeEmitter emitter);
}
public sealed class AudioGraphSettings {
double MaxPlaybackSpeedFactor { get; set; }
}
public sealed class CreateMediaSourceAudioInputNodeResult
public sealed class MediaSourceAudioInputNode : IAudioInputNode, IAudioInputNode2, IAudioNode, IClosable
public enum MediaSourceAudioInputNodeCreationStatus
}
namespace Windows.Media.Capture {
public sealed class CapturedFrame : IClosable, IContentTypeProvider, IInputStream, IOutputStream, IRandomAccessStream, IRandomAccessStreamWithContentType {
BitmapPropertySet BitmapProperties { get; }
CapturedFrameControlValues ControlValues { get; }
}
}
namespace Windows.Media.Capture.Frames {
public sealed class AudioMediaFrame
public sealed class MediaFrameFormat {
AudioEncodingProperties AudioEncodingProperties { get; }
}
public sealed class MediaFrameReference : IClosable {
AudioMediaFrame AudioMediaFrame { get; }
}
public sealed class MediaFrameSourceController {
AudioDeviceController AudioDeviceController { get; }
}
public enum MediaFrameSourceKind {
Audio = 4,
}
}
namespace Windows.Media.Core {
public sealed class MediaBindingEventArgs {
void SetDownloadOperation(DownloadOperation downloadOperation);
}
public sealed class MediaSource : IClosable, IMediaPlaybackSource {
DownloadOperation DownloadOperation { get; }
public static MediaSource CreateFromDownloadOperation(DownloadOperation downloadOperation);
}
}
namespace Windows.Media.Devices {
public sealed class VideoDeviceController : IMediaDeviceController {
VideoTemporalDenoisingControl VideoTemporalDenoisingControl { get; }
}
public sealed class VideoTemporalDenoisingControl
public enum VideoTemporalDenoisingMode
}
namespace Windows.Media.DialProtocol {
public sealed class DialReceiverApp {
IAsyncOperation<string> GetUniqueDeviceNameAsync();
}
}
namespace Windows.Media.MediaProperties {
public static class MediaEncodingSubtypes {
public static string P010 { get; }
}
public enum MediaPixelFormat {
P010 = 2,
}
}
namespace Windows.Media.Playback {
public sealed class MediaPlaybackSession {
MediaRotation PlaybackRotation { get; set; }
MediaPlaybackSessionOutputDegradationPolicyState GetOutputDegradationPolicyState();
}
public sealed class MediaPlaybackSessionOutputDegradationPolicyState
public enum MediaPlaybackSessionVideoConstrictionReason
}
namespace Windows.Media.Streaming.Adaptive {
public sealed class AdaptiveMediaSourceDiagnosticAvailableEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadCompletedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadFailedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
public sealed class AdaptiveMediaSourceDownloadRequestedEventArgs {
string ResourceContentType { get; }
IReference<TimeSpan> ResourceDuration { get; }
}
}
namespace Windows.Networking.BackgroundTransfer {
public sealed class DownloadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
public sealed class UploadOperation : IBackgroundTransferOperation, IBackgroundTransferOperationPriority {
void MakeCurrentInTransferGroup();
}
}
namespace Windows.Networking.Connectivity {
public sealed class CellularApnContext {
string ProfileName { get; set; }
}
public sealed class ConnectionProfileFilter {
IReference<Guid> PurposeGuid { get; set; }
}
public sealed class WwanConnectionProfileDetails {
WwanNetworkIPKind IPKind { get; }
IVectorView<Guid> PurposeGuids { get; }
}
public enum WwanNetworkIPKind
}
namespace Windows.Networking.NetworkOperators {
public sealed class MobileBroadbandAntennaSar {
public MobileBroadbandAntennaSar(int antennaIndex, int sarBackoffIndex);
}
public sealed class MobileBroadbandModem {
IAsyncOperation<MobileBroadbandPco> TryGetPcoAsync();
}
public sealed class MobileBroadbandModemIsolation
public sealed class MobileBroadbandPco
public sealed class MobileBroadbandPcoDataChangeTriggerDetails
}
namespace Windows.Networking.Sockets {
public sealed class ServerMessageWebSocket : IClosable
public sealed class ServerMessageWebSocketControl
public sealed class ServerMessageWebSocketInformation
public sealed class ServerStreamWebSocket : IClosable
public sealed class ServerStreamWebSocketInformation
}
namespace Windows.Networking.Vpn {
public sealed class VpnNativeProfile : IVpnProfile {
string IDi { get; set; }
VpnPayloadIdType IdiType { get; set; }
string IDr { get; set; }
VpnPayloadIdType IdrType { get; set; }
bool IsImsConfig { get; set; }
string PCscf { get; }
}
public enum VpnPayloadIdType
}
namespace Windows.Security.Authentication.Identity.Provider {
public enum SecondaryAuthenticationFactorAuthenticationMessage {
CanceledByUser = 22,
CenterHand = 23,
ConnectionRequired = 20,
DeviceUnavaliable = 28,
MoveHandCloser = 24,
MoveHandFarther = 25,
PlaceHandAbove = 26,
RecognitionFailed = 27,
TimeLimitExceeded = 21,
}
}
namespace Windows.Services.Maps {
public sealed class MapRouteDrivingOptions {
IReference<DateTime> DepartureTime { get; set; }
}
}
namespace Windows.System {
public sealed class AppActivationResult
public sealed class AppDiagnosticInfo {
IAsyncOperation<AppActivationResult> ActivateAsync();
}
public sealed class AppResourceGroupInfo {
IAsyncOperation<bool> TryResumeAsync();
IAsyncOperation<bool> TrySuspendAsync();
IAsyncOperation<bool> TryTerminateAsync();
}
}
namespace Windows.System.Diagnostics.DevicePortal {
public sealed class DevicePortalConnection {
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol);
ServerMessageWebSocket GetServerMessageWebSocketForRequest(HttpRequestMessage request, SocketMessageType messageType, string protocol, uint outboundBufferSizeInBytes, uint maxMessageSize, MessageWebSocketReceiveMode receiveMode);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request);
ServerStreamWebSocket GetServerStreamWebSocketForRequest(HttpRequestMessage request, string protocol, uint outboundBufferSizeInBytes, bool noDelay);
}
public sealed class DevicePortalConnectionRequestReceivedEventArgs {
bool IsWebSocketUpgradeRequest { get; }
IVectorView<string> WebSocketProtocolsRequested { get; }
Deferral GetDeferral();
}
}
namespace Windows.System.RemoteSystems {
public static class KnownRemoteSystemCapabilities {
public static string NearShare { get; }
}
}
namespace Windows.System.UserProfile {
public static class GlobalizationPreferences {
public static GlobalizationPreferencesForUser GetForUser(User user);
}
public sealed class GlobalizationPreferencesForUser
}
namespace Windows.UI.Composition {
public class CompositionLight : CompositionObject {
bool IsEnabled { get; set; }
}
public sealed class Compositor : IClosable {
string Comment { get; set; }
}
public sealed class PointLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
public sealed class SpotLight : CompositionLight {
Vector2 AttenuationCutoff { get; set; }
}
}
namespace Windows.UI.Composition.Core {
public sealed class CompositorController : IClosable
}
namespace Windows.UI.Xaml {
public sealed class BringIntoViewOptions {
IReference<double> HorizontalAlignmentRatio { get; set; }
Point Offset { get; set; }
IReference<double> VerticalAlignmentRatio { get; set; }
}
public sealed class BringIntoViewRequestedEventArgs : RoutedEventArgs
public sealed class EffectiveViewportChangedEventArgs
public class FrameworkElement : UIElement {
event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
void InvalidateViewport();
virtual bool IsViewport();
}
public class UIElement : DependencyObject {
public static RoutedEvent BringIntoViewRequestedEvent { get; }
KeyboardAcceleratorPlacementMode KeyboardAcceleratorPlacementMode { get; set; }
public static DependencyProperty KeyboardAcceleratorPlacementModeProperty { get; }
DependencyObject KeyboardAcceleratorToolTipTarget { get; set; }
public static DependencyProperty KeyboardAcceleratorToolTipTargetProperty { get; }
DependencyObject KeyTipTarget { get; set; }
public static DependencyProperty KeyTipTargetProperty { get; }
event TypedEventHandler<UIElement, BringIntoViewRequestedEventArgs> BringIntoViewRequested;
virtual void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs e);
virtual void OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs args);
}
}
namespace Windows.UI.Xaml.Automation.Peers {
public sealed class AutoSuggestBoxAutomationPeer : FrameworkElementAutomationPeer, IInvokeProvider {
void Invoke();
}
}
namespace Windows.UI.Xaml.Controls {
public class AppBarButton : Button, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarButtonTemplateSettings TemplateSettings { get; }
}
public class AppBarToggleButton : ToggleButton, ICommandBarElement, ICommandBarElement2 {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
AppBarToggleButtonTemplateSettings TemplateSettings { get; }
}
public class MenuFlyoutItem : MenuFlyoutItemBase {
string KeyboardAcceleratorText { get; set; }
public static DependencyProperty KeyboardAcceleratorTextProperty { get; }
MenuFlyoutItemTemplateSettings TemplateSettings { get; }
}
public class NavigationView : ContentControl {
string PaneTitle { get; set; }
public static DependencyProperty PaneTitleProperty { get; }
event TypedEventHandler<NavigationView, object> PaneClosed;
event TypedEventHandler<NavigationView, NavigationViewPaneClosingEventArgs> PaneClosing;
event TypedEventHandler<NavigationView, object> PaneOpened;
event TypedEventHandler<NavigationView, object> PaneOpening;
}
public sealed class NavigationViewPaneClosingEventArgs
public enum WebViewPermissionType {
Screen = 5,
}
}
namespace Windows.UI.Xaml.Controls.Maps {
public sealed class MapControl : Control {
string Region { get; set; }
public static DependencyProperty RegionProperty { get; }
}
public class MapElement : DependencyObject {
bool IsEnabled { get; set; }
public static DependencyProperty IsEnabledProperty { get; }
}
}
namespace Windows.UI.Xaml.Controls.Primitives {
public sealed class AppBarButtonTemplateSettings : DependencyObject
public sealed class AppBarToggleButtonTemplateSettings : DependencyObject
public sealed class MenuFlyoutItemTemplateSettings : DependencyObject
}
namespace Windows.UI.Xaml.Input {
public sealed class KeyboardAcceleratorInvokedEventArgs {
KeyboardAccelerator KeyboardAccelerator { get; }
}
public enum KeyboardAcceleratorPlacementMode
}

Windows 10 at Microsoft Connect(); 2017

Today, at Microsoft Connect(); we spoke about the work we have been doing to align the concepts and tags that can be shared between Microsoft’s XAML UI systems.  With Windows 10 XAML and Xamarin.Forms, we expose the full and unique capabilities of each platform. Xamarin.Forms focuses on native mobile experiences and exposing the common subset of controls and capabilities needed most by mobile developers. Windows 10 XAML and WPF are optimized for native Windows experiences, including the most rich and demanding experiences optimized for use with mouse, keyboard and touch. We are releasing a preview of Xamarin.Forms which includes additional APIs that advance XAML Standard, including new types names and properties for common elements you will recognize from Windows 10 XAML. I encourage you to check out the APIs at: aka.ms/xamlstandard and provide us with your feedback. We look forward to working with you.
Connect(); Sessions
Tomorrow, on November 16th, you can view two Connect(); 2017 live sessions online to learn more about how to create beautiful and engaging applications. In “Engaging with your customers on any platform using the Microsoft Graph, Activity Feed, and Adaptive Cards” you’ll learn how customers’ lives are made more seamless through Microsoft Graph and Project Rome. Allowing customers to use Windows, Android and iOS together ensures continuity in busy lifestyles. Next, you’ll learn about the benefits Bots and Adaptive Cards bring to that same customer, as well as the businesses they are interacting with. And finally, we’ll show you how unique Windows experiences like Notifications and Timeline run smoothly and are quick and easy to integrate with Adaptive Cards. Be sure to tune in at 11 a.m. PST to learn about all of these rich features.
In our next session, also on November 16 at 12pm PST, we show you how to make your applications more beautiful. “Building amazing applications with the Fluent Design System” helps you transform your applications to be engaging, modern and visually rich. It includes the UX building blocks, guidelines, tools and end-to-end support developers need. You will learn how easy it is to use familiar technologies like XAML and C# to create applications that bring the Fluent Design System to life on Windows 10 across a range of devices and inputs. We will cover the different elements of the design system and how to use the latest controls, animations, effects and other platform capabilities to captivate your customers and maximize their productivity. To learn more about the features, visit: http://developer.microsoft.com/design.
Wrapping up
Last month, we shipped the Windows 10 Fall Creators Update SDK – we created tools and APIs to help developers build applications that will make customers want to engage and re-engage with your application – driving future growth and retention. We are constantly taking in your feedback and making Windows 10 a better place for all developers.