Quantcast
Channel: Category Name
Viewing all 10804 articles
Browse latest View live

Ansible 2.6: What’s new for Azure

$
0
0

Ansible 2.6 was recently released and I am excited to share with you what’s new for Azure in Ansible 2.6. In total, four new Azure modules were added in addition to over 17 enhancements to our existing modules. In 2.6 you now have the ability to natively manage:

We published three new tutorials to the Ansible Developer Hub with this release:

  • Create and configure AKS clusters: This article shows you how to use Ansible to create and configure an Azure Kubernetes Service cluster.
  • Create and configure VMSS: This article shows you how to use Ansible to create and scale out a virtual machine scale set.
  • Deploy app to VMSS: This article shows you how to deploy a Java application to an Azure virtual machine scale set (VMSS).

We also made a lot of enhancements to our existing modules enabling a greater range of scenarios for the deployment and management of virtual machines and networking objects. Below you can see the full changelog.

Ansible 2.6 Azure Modules Changelog

azure_rm_common

  • Support ADFS (Active Directory Federation Services) through ADAL (Azure AD Authentication Library)

azure_rm_virtualnetwork

  • Set DNS server IPs in existing virtual network

azure_networking_interface

  • Create network interface without NSG attached
  • Add network interface to Load Balancer backend pool
  • Accept security_group_name parameter when creating a security group
  • Create a new NIC associating an existing NSG
  • Create a NIC without public IP
  • Connect NICs to virtual networks in different resource groups

azure_rm_subnet

  • Create a subnet which uses a NSG in another resource group

azure_rm_virtualmachine_scaleset_facts

  • Improving VMSS facts response to match azure_virtualmachine_vmss input - Fix crash issue when adding data disk to a VMSS which does not have any data disk before

azure_rm_securitygroup

  • Create rules that allow IP address prefixes

azure_rm_loadbalancer

  • Create Internal Load Balancers
  • Support more SKU options (Basic and Standard) for Load Balancer

azure_vm_virtualmachine

  • Create a VM with multi NICs
  • Create a VM without public IP

azure_rm_image

  • Create an Azure image with tag

azure_rm

  • Enable MSI and Azure CLI credential for inventory.

Microsoft and Red Hat engineering teams continue to develop the Azure modules with the Ansible community. Join the GitHub repository to make feature requests, report issues, or contribute.

For more information about the capabilities available, please visit the Ansible on Azure developer hub. We hope you enjoy the updates!


New to Microsoft 365 in July—integrating apps and empowering businesses

$
0
0

This month, we hosted 17,000 attendees at Microsoft Inspire, our annual partner conference, and announced a set of new capabilities in Microsoft 365 that enhance teamwork—including a free version of Microsoft Teams. We also rolled out a number of new features across Microsoft 365 to help organizations empower their employees—including updates that streamline the management of common tasks and improve data visualization. We also want to hear your feedback, so that we can make sure these updates are relevant and useful to you.

Here’s a look at what’s new in July.

Microsoft Planner capabilities in SharePoint team sites—We integrated Planner with SharePoint to bring new task management capabilities directly into team sites. You can now add a plan directly to your team site from within SharePoint and embed Planner boards and chart views from those plans within SharePoint pages and news posts. This integration enables team members to easily access and interact with project tasks, while keeping important resources in a single repository.

A screenshot of a Planner plan in SharePoint.

Add plan information directly on pages and news posts with the new Planner web part.

Threaded comments in Microsoft Excel—We introduced threaded comments to Excel, improving collaboration on shared documents and providing a consistent experience across Word, Excel, and PowerPoint. Threaded comments enable you to easily follow conversations taking place around content in a document and directly interact with coworkers using @mentions and nested replies. These improvements make it easier to work on spreadsheets with multiple collaborators and enhance readability and editing across devices.

A gif showing threaded comments in Excel.

Threaded comments make it easier to work with multiple team members in Excel.

Visio Visuals for Microsoft Power BI—Power BI subscribers can now use Visio’s powerful visualization capabilities, right in Power BI. With Visio Visuals, you can create interactive Power BI dashboards using Power BI data sets and Visio visualization tools to quickly illustrate and compare data with charts and diagrams.

A screenshot showing a Visio org chart next to two Power BI bar charts.

Visio Visuals provide new and exciting ways to explore data in Power BI.

Microsoft 365 usage analytics in Power BI—We announced the general availability of Microsoft 365 usage analytics in Power BI. Now, Microsoft 365 usage data can be connected directly to Power BI to help you better understand the services you own. We also introduced a new Teams usage report, which provides an overview of how your organization works together in Microsoft Teams, with details on various functions like chat, channels, and meetings. By using Microsoft 365 usage analytics, admins can drive improved adoption of services throughout their business and better leverage IT spend.

LinkedIn Sales Navigator in the Microsoft 365 people card—We’re enhancing the Microsoft 365 people card to include information from LinkedIn Sales Navigator. This update allows you to surface profile information for your prospects and customers everywhere their people card appears in Office 365—helping you to build better relationships.

A screenshot of LinkedIn Sales Navigator information directly in Outlook for the web.

LinkedIn Sales Navigator in the Microsoft 365 people card allows you to build better relationships.

LinkedIn Sales Navigator in the Microsoft 365 people card is rolling out soon to Microsoft 365 and Office 365 commercial customers in Outlook for the web.

Other updates

The post New to Microsoft 365 in July—integrating apps and empowering businesses appeared first on Microsoft 365 Blog.

How to Convince Your Management to Upgrade to Visual Studio 2017 for C# and C++ Developers

$
0
0

Have you tried Visual Studio 2017 at home and want to use it at work? Here are eight reasons to upgrade today that you can share with your management:

  1. Faster Than Ever
  2. Efficient Code Navigation
  3. Refactorings and Quick Actions
  4. Additions to Core Editor Functionality
  5. Debugging Improvements
  6. New and Refreshed Unit Testing Experience
  7. Code Style Configuration and Enforcement
  8. C# 7.3 and MSVC Standards Conformance
  9. Upgrade today!


Reason 1: Faster Than Ever

We have made (and are continuing to make) substantial improvements to solution load and startup, branch switching, and unit test discovery times. Starting from Visual Studio 2017 version 15.6, solutions load on average 35% faster than in Visual Studio 2015. In fact, .NET and C++ developers opening large solutions in Visual Studio 2017 will notice their solutions load twice as fast as they did in 2015. Say goodbye to startup delays!

We have great news about Visual Studio setup; the setup experience is faster and more lightweight than ever. Our new install experience allows you to pick and choose what you want to install–significantly reducing your install time and size, getting you up and running in Visual Studio 2017 in no time. It also installs side-by-side with previous versions of Visual Studio.


Reason 2: Efficient Code Navigation

We know you spend as much time understanding code as writing new code, so great navigation tools are paramount to your success as a developer. Here is how you can navigate effectively in Visual Studio 2017:

  • Search files, types, members, and symbols in Go To All (Ctrl+T or Ctrl+,) – Use this symbolic search (with category filters and individualized commands) to jump to files and symbols in your codebase without having to go through the Solution Explorer. To filter your search results to only types, for example, use the query syntax (e.g., “t myType”), the type filter button, or the command Edit.GoToType (see under Edit > Go To). Go To All search also has support for camelCase matching so you don’t have to type as many characters to get the results you need (e.g., “mf” for “myFile.cs”).
  • Group, sort, filter, and lock results in Find All References (Shift+F12) – Group your .NET and C++ reference results by document, project, definition, etc. to quickly narrow down on the results you’re looking for (whether it be identifying dead code or investigating the ramifications of a refactoring). For .NET development, view colorized symbol references in Find All References, so your results look like the code in the editor.
  • Ctrl+Click to Go To Definition – Hold down Ctrl, hover over a symbol to create a link, and click to navigate to the definition. This is especially helpful if you are fond of the mouse or if you are scrolling and exploring during a debug session.
  • Go To Implementation for .NET (Ctrl+F12) – See all implementations of a base type or member. If there is only one, we’ll jump you right there! In Visual Studio 2017, you can Go To Definition on the ‘override’ keyword in a method signature to go back to the overridden base type or member.
  • Navigate to decompiled assemblies for C# source (F12) – Enable this feature to view method bodies of external sources (rather than just signatures in Metadata As Source) when you Go To Definition. To turn this feature on, go to Tools > Options > Text Editor > C# > Advanced > Navigate to decompiled assemblies.

Go To All showing recent files and scope to current file options highlighted

Reason 3: Refactorings and Quick Actions

Each release of Visual Studio 2017 brings more and more refactorings and quick fixes. Any quick action or refactoring can be triggered using Ctrl+. or Alt+Enter (for single-hand accessibility). Here are some of the ones you requested that made it in so far in .NET, across versions 15.0 through 15.8:

  • Add null-check
  • Invert if-statement
  • Resolve merge-conflict
  • Convert LINQ query to foreach
  • Convert foreach-to-for-loop and vice versa
  • Toggle between ‘var’ and the explicit type
  • Sync file and type name
  • Move type to file with same name
  • Add parameter to constructor or method from callsite
  • Convert String.Format to interpolated string
  • Make private field readonly
  • Add missing modifier and sort modifiers
  • Remove unused variable
  • Remove unnecessary parentheses

For C++ there are a couple new quick actions to note:

  • Convert Macro to Constexpr
  • Change Declaration to use Constexpr

Because the .NET experience in Visual Studio 2017 is built on the Roslyn language service, any developer can write their own refactoring or code analyzer to automate actions or enforce style. Read our walkthroughs to get started or check out existing community analyzers you can download.

Invert If statement

Reason 4: Additions to Core Editor Functionality

We’ve added (and are working to add more) common editor features so you can quickly move around and edit your code:

  • Expand/Contract Selection (Alt+Shift+[+/-]) – Grow and shrink your selection by code constructs, i.e., from symbol to expression to statement to body to file.
  • Duplicate Line (Ctrl+D in the Default profile) – Duplicate the selected text (or the current line, if no selection) without adding anything to your Copy/Paste clipboard.
  • Multi-caret editing (Ctrl+Alt+Click and Shift+Alt+Ins) — Create multiple insertion points via Ctrl + Alt + Click or add new carets and selections that match the current selection with Shift + Alt + Ins.
  • Structure guide lines – Easily visualize the structure of your code with vertical lines between braces. Hover on the lines to see a hierarchy of code structure.
  • New Keymapping Schemes — If you’re coming from another IDE or coding environment, you can change your keyboard scheme with Tools > Options > Environment > Keyboard and use the drop down to select the new VS Code or ReSharper (VS) schemes.

For C++ development, we have added several other editor improvements:

  • Open Folder Mode – Edit, read, build, and debug C++ code by opening folders containing source code without the need to create any solutions or projects. This includes built-in support for handling CMake projects.
  • Template IntelliSense – The editor now displays a ‘Template Bar’ which allows C++ developers to provide sample template arguments for improved IntelliSense in class/function templates.
  • Macro Expansion in Quick Info – Hovering over a macro will display the actual expansion of the macro that the preprocessor will replace during the first stage of compilation.

CPP Template IntelliSense

Reason 5: Debugging Improvements

The Visual Studio 2017 debugger allows you to diagnose issues faster by surfacing critical information and functionality without requiring new breakpoints and a restart of your debugging session.

  • The new Exception Helper – See which variable or member is returning null when a NullReferenceException is thrown, and tweak exception configuration options.
  • Step Back debugging (Enterprise only) – Go back to previous breakpoints or steps and view the state of the application as it was in the past.
  • Run To Click – Hover at the beginning of a line of code and click the green play button to run the debugger to your location without having to hunt down the yellow instruction pointer.
  • Just My Code stepping for C++ – Step over non-user code, so you don’t have to spend your time stepping over countless lines of library code that you’re not interested in.


Reason 6: New and Refreshed Unit Testing Experience

We buckled down on providing a fast and productive unit testing experience for MSTest (v1.0 and 2.0), NUnit, XUnit, Google Test, and Boost frameworks:

  • Test Explorer Performance Improvements – Test discovery is fast in Visual Studio 2017 and we will instantly display newly added tests (without requiring a build).
  • Test Explorer Hierarchy View — We’ve also added a hierarchy view of your unit tests so that you can explore and run them by project, class, etc. Test runs now also have responsive icons so you can see what tests are currently executing and pending to execute.
  • Live Unit Testing for .NET (Enterprise only) – As you type, Live Unit Testing identifies which unit tests are impacted by your code change, runs those tests, and updates icons in the editor to display the results of the test run. You can configure what tests are discovered and run in your “live test set” by including or excluding test projects or individual tests. To enable Live Unit Testing, go to Test > Live Unit Testing > Start.
  • Google Test and Boost support for C++ — The Google Test and Boost.Test unit testing frameworks are completely supported and integrated with Visual Studio’s testing tools.

Test Explorer showing Test Heirarchy

Reason 7: Code Style Configuration and Enforcement

Visual Studio 2017 enables individuals and teams to drive consistency across their codebase with coding convention configuration and enforcement.

  • Individual Coding Conventions for .NET – Configure your coding preferences for your machine in Tools > Options > Text Editor > C# | Basic > Code Style.
  • Team Coding Conventions for .NET – Use .editorconfig (we worked with the community to extend the open-source file format to work with .NET code style) to codify your conventions and have them enforced in Visual Studio. Say goodbye to managing your rules from a file share!
  • Fix All Violations – Use the lightbulb menu (Ctrl+. or Alt+Enter) and select the Document, Project, or Solution scope from the preview dialog to fix all violations of a single rule.
  • One-click Code Cleanup for .NET —In Visual Studio 2017 15.8, you can perform additional code cleanup with Format Document (Ctlr+K,D) by configuring it in Tools > Options > Text Editor > C# > Code Style > Formatting and checking fixes like Remove and Sort usings.
  • ClangFormat for C++ – In addition to EditorConfig, ClangFormat is supported, giving C++ developers the ability to style and format their code based on a set of rules that can be configured in a .clang-format or _clang-format file.


Reason 8: C# 7.3 and MSVC Standards Conformance

C# 7.0 ships with Visual Studio 2017 by default, bringing language features like tuples, pattern-matching, and out var to help you work with data and make your code more readable. You can also upgrade your project to be on the “latest minor” version of C# and take advantage of features in our point-releases like: async Main, Span, Enum constraints, and more!

As of Visual Studio 2017 version 15.7, MSVC compiler toolset conforms to the C++ Standard up to and including C++17, with minor exceptions. The C++ team worked to significantly overhaul the compiler, making it far easier to implement modern C++ features. Additionally, we added the C++ Core Guidelines Check extension (CppCoreCheck). This extension is designed to make it easy to adopt C++ Core Guidelines and adopt utilities from the Guidelines Support Library.

Migration to Visual Studio 2017 for C++ is easier than ever before. Visual Studio C++ 2017 is binary compatible with Visual Studio C++ 2015, so there is no need to rebuild your 2015 component. Furthermore, the decoupling of toolsets means that you can use your toolset from 2013 or later.


Upgrade Today

Upgrading may be extremely easy for your team–if you and your team are on Visual Studio Community or have an EA/Subscription, you already have access to a Visual Studio 2017 license today. To learn more about how to upgrade, visit our upgrade site. To learn more about how you can be productive in Visual Studio 2017, check out the productivity guide for .NET developers for a comprehensive overview of our tools and features.

Give Us Feedback

We’re releasing updates to Visual Studio at a faster cadence than ever before so that we can unblock you on any issues you may have and evolve and create features to make you more productive in your everyday workflow.

Use the Send Feedback button inside Visual Studio to have direct access to the product team (we look at all of them!) and to easily share memory dumps and traces so that we can more quickly investigate issues with performance you may have. Also use button to request productivity features you need to code with ease and confidence. We are here to help you upgrade!

Kasey Uhlenhuth, Program Manager, Visual Studio and .NET
@kuhlenhuth

Kasey Uhlenhuth is a Program Manager on the .NET and Visual Studio team working to improve developer productivity.

Nick Uhlenhuth, Program Manager, Visual Studio and .NET
@nickuhlenhuth

Nick Uhlenhuth is a Program Manager on the Visual Studio team responsible for C++ IntelliSense and Productivity features.

Windows 10 SDK Preview Build 17723 available now!

$
0
0

Today, we released a new Windows 10 Preview Build of the SDK to be used in conjunction with Windows 10 Insider Preview (Build 17723 or greater). The Preview SDK Build 17723 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 build 1803 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.
  • This build of the Windows SDK will only install on Windows 10 Insider Preview builds.
  • In order to assist with script access to the SDK, the ISO will also be able to be accessed through the following URL: https://go.microsoft.com/fwlink/?prd=11966&pver=1.0&plcid=0x409&clcid=0x409&ar=Flight&sar=Sdsurl&o1=17723 once the static URL is published.

C++/WinRT Update for build 17709 and beyond:

This update introduces many improvements and fixes for C++/WinRT. Notably, it introduces the ability to build C++/WinRT without any dependency on the Windows SDK. This isn’t particularly interesting to the OS developer, but even in the OS repo it provides benefits because it does not itself include any Windows headers. Thus, a developer will typically pull in fewer or no dependencies inadvertently. This also means a dramatic reduction in the number of macros that a C++/WinRT developer must guard against. Removing the dependency on the Windows headers means that C++/WinRT is more portable and standards compliant and furthers our efforts to make it a cross-compiler and cross-platform library. It also means that the C++/WinRT headers will never be mangled by macros. If you previously relied on C++/WinRT to include various Windows headers that you will now have to include them yourself. It has always been good practice to always include any headers you depend on explicitly and not rely on another library to include them for you.

Highlights

Support get_strong and get_weak to create delegates: This update allows a developer to use either get_strong or get_weak instead of a raw this pointer when creating a delegate pointing to a member function.

Add async cancellation callback: The most frequently requested feature for C++/WinRT’s coroutine support has been the addition of a cancellation callback.

Simplify the use of APIs expecting IBuffer parameters: Although most APIs prefer collections or arrays, enough APIs rely on IBuffer that it should be easier to use such APIs from C++. This update provides direct access to the data behind an IBuffer implementation using the same data naming convention used by the C++ standard library containers. This also avoids colliding with metadata names that conventionally begin with an uppercase letter.

Conformance: Improved support for Clang and Visual C++’s stricter conformance modes.

Improved code gen: Various improvements to reduce code size, improve inlining, and optimize factory caching.

Remove unnecessary recursion: When the command line refers to a folder rather than a specific winmd, cppwinrt will no longer search recursively for winmd files. It causes performance problems in the OS build and can lead to usage errors that are hard to diagnose when developers inadvertently cause cppwinrt to consume more winmds than expected. The cppwinrt compiler also now handles duplicates more intelligently, making it more resilient to user error and poorly-formed winmd files.

Declare both WINRT_CanUnloadNow and WINRT_GetActivationFactory in base.h: Callers don’t need to declare them directly. Their signatures have also changed, amounting to a breaking change. The declarations alleviate most of the pain of this change. The change is necessitated by the fact that C++/WinRT no longer depends on the Windows headers and this change removes the dependency on the types from the Windows headers.

Harden smart pointers: The event revokers didn’t revoke when move-assigned a new value. This lead me to take a closer look at the smart pointer classes and I noticed that they were not reliably handling self-assignment. This is rooted in the com_ptr class template that most of the others rely on. I fixed com_ptr and updated the event revokers to handle move semantics correctly to ensure that they revoke upon assignment. The handle class template has also been hardened by the removal of the implicit constructor that made it easy to write incorrect code. This also turned bugs in the OS into compiler errors fixed in this PR.

Breaking Changes

Support for non-WinRT interfaces is disabled by default. To enable, simply #include <unknwn.h> before any C++/WinRT headers.

winrt::get_abi(winrt::hstring) now returns void* instead of HSTRING. Code requiring the HSTRING ABI can simply use a static_cast.

winrt::put_abi(winrt::hstring) returns void** instead of HSTRING*. Code requiring the HSTRING ABI can simply use a reinterpret_cast.

HRESULT is now projected as winrt::hresult. Code requiring an HRESULT can simply static_cast if you need to do type checking or support type traits, but it is otherwise convertible as long as <unknwn.h> is included first.

GUID is now projected as winrt::guid. Code implementing APIs with GUID parameters must use winrt::guid instead, but it is otherwise convertible as long as <unknwn.h> is included first.

The signatures of WINRT_CanUnloadNow and WINRT_GetActivationFactory has changed. Code must not declare these functions at all and instead include winrt/base.h to include their declarations.

The winrt::handle constructor is now explicit. Code assigning a raw handle value must call the attach method instead.

winrt::clock::from_FILETIME has been deprecated. Code should use winrt::clock::from_file_time instead.

What’s New:

MSIX Support

It’s finally here! You can now package your applications as MSIX! These applications can be installed and run on any device with 17682 build or later.

To package your application with MSIX, use the MakeAppx tool. To install the application – just click on the MSIX file. To understand more about MSIX, watch this introductory video: link

Feedback and comments are welcome on our MSIX community: http://aka.ms/MSIXCommunity

MSIX is not currently supported by the App Certification Kit nor the Microsoft Store at this time.

MC.EXE

We’ve made some important changes to the C/C++ ETW code generation of mc.exe (Message Compiler):

The “-mof” parameter is deprecated. This parameter instructs MC.exe to generate ETW code that is compatible with Windows XP and earlier. Support for the “-mof” parameter will be removed in a future version of mc.exe.

As long as the “-mof” parameter is not used, the generated C/C++ header is now compatible with both kernel-mode and user-mode, regardless of whether “-km” or “-um” was specified on the command line. The header will use the _ETW_KM_ macro to automatically determine whether it is being compiled for kernel-mode or user-mode and will call the appropriate ETW APIs for each mode.

  • The only remaining difference between “-km” and “-um” is that the EventWrite[EventName] macros generated with “-km” have an Activity ID parameter while the EventWrite[EventName] macros generated with “-um” do not have an Activity ID parameter.

The EventWrite[EventName] macros now default to calling EventWriteTransfer (user mode) or EtwWriteTransfer (kernel mode). Previously, the EventWrite[EventName] macros defaulted to calling EventWrite (user mode) or EtwWrite (kernel mode).

  • The generated header now supports several customization macros. For example, you can set the MCGEN_EVENTWRITETRANSFER macro if you need the generated macros to call something other than EventWriteTransfer.
  • The manifest supports new attributes.
    • Event “name”: non-localized event name.
    • Event “attributes”: additional key-value metadata for an event such as filename, line number, component name, function name.
    • Event “tags”: 28-bit value with user-defined semantics (per-event).
    • Field “tags”: 28-bit value with user-defined semantics (per-field – can be applied to “data” or “struct” elements).
  • You can now define “provider traits” in the manifest (e.g. provider group). If provider traits are used in the manifest, the EventRegister[ProviderName] macro will automatically register them.
  • MC will now report an error if a localized message file is missing a string. (Previously MC would silently generate a corrupt message resource.)
  • MC can now generate Unicode (utf-8 or utf-16) output with the “-cp utf-8” or “-cp utf-16” parameters.

Known Issues:

The SDK headers are generated with types in the “ABI” namespace. This is done to avoid conflicts with C++/CX and C++/WinRT clients that need to consume types directly at the ABI layer[1]. By default, types emitted by MIDL are *not* put in the ABI namespace, however this has the potential to introduce conflicts from teams attempting to consume ABI types from Windows WinRT MIDL generated headers and non-Windows WinRT MIDL generated headers (this is especially challenging if the non-Windows header references Windows types).

To ensure that developers have a consistent view of the WinRT API surface, validation has been added to the generated headers to ensure that the ABI prefix is consistent between the Windows headers and user generated headers. If you encounter an error like:

5>c:program files (x86)windows kits10include10.0.17687.0winrtwindows.foundation.h(83): error C2220: warning treated as error – no ‘object’ file generated

5>c:program files (x86)windows kits10include10.0.17687.0winrtwindows.foundation.h(83): warning C4005: ‘CHECK_NS_PREFIX_STATE’: macro redefinition

5>g:<PATH TO YOUR HEADER HERE>(41): note: see previous definition of ‘CHECK_NS_PREFIX_STATE’

It means that some of your MIDL generated headers are inconsistent with the system generated headers.

There are two ways to fix this:

  • Preferred: Compile your IDL file with the /ns_prefix MIDL command line switch. This will cause all your types to be moved to the ABI namespace consistent with the Windows headers. This may require code changes in your code however.
  • Alternate: Add #define DISABLE_NS_PREFIX_CHECKS before including the Windows headers. This will suppress the validation.

API Updates, Additions and Removals

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 17134.  The APIs listed below have been removed.

Additions:


namespace Windows.AI.MachineLearning {
  public interface ILearningModelFeatureDescriptor
  public interface ILearningModelFeatureValue
  public interface ILearningModelOperatorProvider
  public sealed class ImageFeatureDescriptor : ILearningModelFeatureDescriptor
  public sealed class ImageFeatureValue : ILearningModelFeatureValue
  public interface ITensor : ILearningModelFeatureValue
  public sealed class LearningModel : IClosable
  public sealed class LearningModelBinding : IIterable<IKeyValuePair<string, object>>, IMapView<string, object>
  public sealed class LearningModelDevice
  public enum LearningModelDeviceKind
  public sealed class LearningModelEvaluationResult
  public enum LearningModelFeatureKind
  public sealed class LearningModelSession : IClosable
  public struct MachineLearningContract
  public sealed class MapFeatureDescriptor : ILearningModelFeatureDescriptor
  public sealed class SequenceFeatureDescriptor : ILearningModelFeatureDescriptor
  public sealed class TensorBoolean : ILearningModelFeatureValue, ITensor
  public sealed class TensorDouble : ILearningModelFeatureValue, ITensor
  public sealed class TensorFeatureDescriptor : ILearningModelFeatureDescriptor
  public sealed class TensorFloat : ILearningModelFeatureValue, ITensor
  public sealed class TensorFloat16Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorInt16Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorInt32Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorInt64Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorInt8Bit : ILearningModelFeatureValue, ITensor
  public enum TensorKind
  public sealed class TensorString : ILearningModelFeatureValue, ITensor
  public sealed class TensorUInt16Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorUInt32Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorUInt64Bit : ILearningModelFeatureValue, ITensor
  public sealed class TensorUInt8Bit : ILearningModelFeatureValue, ITensor
}
namespace Windows.ApplicationModel {
  public sealed class AppInstallerInfo
  public sealed class LimitedAccessFeatureRequestResult
  public static class LimitedAccessFeatures
  public enum LimitedAccessFeatureStatus
  public sealed class Package {
    IAsyncOperation<PackageUpdateAvailabilityResult> CheckUpdateAvailabilityAsync();
    AppInstallerInfo GetAppInstallerInfo();
  }
  public enum PackageUpdateAvailability
  public sealed class PackageUpdateAvailabilityResult
}
namespace Windows.ApplicationModel.Calls {
  public sealed class VoipCallCoordinator {
    IAsyncOperation<VoipPhoneCallResourceReservationStatus> ReserveCallResourcesAsync();
  }
}
namespace Windows.ApplicationModel.Chat {
  public static class ChatCapabilitiesManager {
    public static IAsyncOperation<ChatCapabilities> GetCachedCapabilitiesAsync(string address, string transportId);
    public static IAsyncOperation<ChatCapabilities> GetCapabilitiesFromNetworkAsync(string address, string transportId);
  }
  public static class RcsManager {
    public static event EventHandler<object> TransportListChanged;
  }
}
namespace Windows.ApplicationModel.DataTransfer {
  public static class Clipboard {
    public static event EventHandler<ClipboardHistoryChangedEventArgs> HistoryChanged;
    public static event EventHandler<object> HistoryEnabledChanged;
    public static event EventHandler<object> RoamingEnabledChanged;
    public static bool ClearHistory();
    public static bool DeleteItemFromHistory(ClipboardHistoryItem item);
    public static IAsyncOperation<ClipboardHistoryItemsResult> GetHistoryItemsAsync();
    public static bool IsHistoryEnabled();
    public static bool IsRoamingEnabled();
    public static bool SetContentWithOptions(DataPackage content, ClipboardContentOptions options);
    public static SetHistoryItemAsContentStatus SetHistoryItemAsContent(ClipboardHistoryItem item);
  }
  public sealed class ClipboardContentOptions
  public sealed class ClipboardHistoryChangedEventArgs
  public sealed class ClipboardHistoryItem
  public sealed class ClipboardHistoryItemsResult
  public enum ClipboardHistoryItemsResultStatus
  public sealed class DataPackagePropertySetView : IIterable<IKeyValuePair<string, object>>, IMapView<string, object> {
    bool IsFromRoamingClipboard { get; }
    string SourceDisplayName { get; }
  }
  public enum SetHistoryItemAsContentStatus
}
namespace Windows.ApplicationModel.Store.Preview {
  public enum DeliveryOptimizationDownloadMode
  public enum DeliveryOptimizationDownloadModeSource
  public sealed class DeliveryOptimizationSettings
  public static class StoreConfiguration {
    public static bool IsPinToDesktopSupported();
    public static bool IsPinToStartSupported();
    public static bool IsPinToTaskbarSupported();
    public static void PinToDesktop(string appPackageFamilyName);
    public static void PinToDesktopForUser(User user, string appPackageFamilyName);
  }
}
namespace Windows.ApplicationModel.Store.Preview.InstallControl {
  public enum AppInstallationToastNotificationMode
  public sealed class AppInstallItem {
    AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
    AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
    bool PinToDesktopAfterInstall { get; set; }
    bool PinToStartAfterInstall { get; set; }
    bool PinToTaskbarAfterInstall { get; set; }
  }
  public sealed class AppInstallManager {
    bool CanInstallForAllUsers { get; }
  }
  public sealed class AppInstallOptions {
    string CampaignId { get; set; }
    AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
    string ExtendedCampaignId { get; set; }
    bool InstallForAllUsers { get; set; }
   AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
    bool PinToDesktopAfterInstall { get; set; }
    bool PinToStartAfterInstall { get; set; }
    bool PinToTaskbarAfterInstall { get; set; }
    bool StageButDoNotInstall { get; set; }
  }
  public sealed class AppUpdateOptions {
    bool AutomaticallyDownloadAndInstallUpdateIfFound { get; set; }
  }
}
namespace Windows.ApplicationModel.UserActivities {
  public sealed class UserActivity {
    bool IsRoamable { get; set; }
  }
}
namespace Windows.Data.Text {
  public sealed class TextPredictionGenerator {
    CoreTextInputScope InputScope { get; set; }
    IAsyncOperation<IVectorView<string>> GetCandidatesAsync(string input, uint maxCandidates, TextPredictionOptions predictionOptions, IIterable<string> previousStrings);
    IAsyncOperation<IVectorView<string>> GetNextWordCandidatesAsync(uint maxCandidates, IIterable<string> previousStrings);
  }
  public enum TextPredictionOptions : uint
}
namespace Windows.Devices.Display.Core {
  public sealed class DisplayAdapter
  public enum DisplayBitsPerChannel : uint
  public sealed class DisplayDevice
  public enum DisplayDeviceCapability
  public sealed class DisplayFence
  public sealed class DisplayManager : IClosable
  public sealed class DisplayManagerChangedEventArgs
  public sealed class DisplayManagerDisabledEventArgs
  public sealed class DisplayManagerEnabledEventArgs
  public enum DisplayManagerOptions : uint
  public sealed class DisplayManagerPathsFailedOrInvalidatedEventArgs
  public enum DisplayManagerResult
  public sealed class DisplayManagerResultWithState
  public sealed class DisplayModeInfo
  public enum DisplayModeQueryOptions : uint
  public sealed class DisplayPath
  public enum DisplayPathScaling
  public enum DisplayPathStatus
  public struct DisplayPresentationRate
  public sealed class DisplayPrimaryDescription
  public enum DisplayRotation
  public sealed class DisplayScanout
  public sealed class DisplaySource
  public sealed class DisplayState
  public enum DisplayStateApplyOptions : uint
  public enum DisplayStateFunctionalizeOptions : uint
  public sealed class DisplayStateOperationResult
  public enum DisplayStateOperationStatus
  public sealed class DisplaySurface
  public sealed class DisplayTarget
  public enum DisplayTargetPersistence
  public sealed class DisplayTask
  public sealed class DisplayTaskPool
  public enum DisplayTaskSignalKind
  public sealed class DisplayView
  public sealed class DisplayWireFormat
  public enum DisplayWireFormatColorSpace
  public enum DisplayWireFormatEotf
  public enum DisplayWireFormatHdrMetadata
  public enum DisplayWireFormatPixelEncoding
}
namespace Windows.Devices.Enumeration {
  public enum DeviceInformationKind {
    DevicePanel = 8,
  }
  public sealed class DeviceInformationPairing {
    public static bool TryRegisterForAllInboundPairingRequestsWithProtectionLevel(DevicePairingKinds pairingKindsSupported, DevicePairingProtectionLevel minProtectionLevel);
  }
}
namespace Windows.Devices.Enumeration.Pnp {
  public enum PnpObjectType {
    DevicePanel = 8,
  }
}
namespace Windows.Devices.Lights {
  public sealed class LampArray
  public enum LampArrayKind
  public sealed class LampInfo
  public enum LampPurposes : uint
}
namespace Windows.Devices.Lights.Effects {
  public interface ILampArrayEffect
  public sealed class LampArrayBitmapEffect : ILampArrayEffect
  public sealed class LampArrayBitmapRequestedEventArgs
  public sealed class LampArrayBlinkEffect : ILampArrayEffect
  public sealed class LampArrayColorRampEffect : ILampArrayEffect
  public sealed class LampArrayCustomEffect : ILampArrayEffect
  public enum LampArrayEffectCompletionBehavior
  public sealed class LampArrayEffectPlaylist : IIterable<ILampArrayEffect>, IVectorView<ILampArrayEffect>
  public enum LampArrayEffectStartMode
  public enum LampArrayRepetitionMode
  public sealed class LampArraySolidEffect : ILampArrayEffect
  public sealed class LampArrayUpdateRequestedEventArgs
}
namespace Windows.Devices.PointOfService {
  public sealed class BarcodeScannerCapabilities {
    bool IsVideoPreviewSupported { get; }
  }
  public sealed class ClaimedBarcodeScanner : IClosable {
    event TypedEventHandler<ClaimedBarcodeScanner, ClaimedBarcodeScannerClosedEventArgs> Closed;
  }
  public sealed class ClaimedBarcodeScannerClosedEventArgs
  public sealed class ClaimedCashDrawer : IClosable {
    event TypedEventHandler<ClaimedCashDrawer, ClaimedCashDrawerClosedEventArgs> Closed;
  }
  public sealed class ClaimedCashDrawerClosedEventArgs
  public sealed class ClaimedLineDisplay : IClosable {
    event TypedEventHandler<ClaimedLineDisplay, ClaimedLineDisplayClosedEventArgs> Closed;
  }
  public sealed class ClaimedLineDisplayClosedEventArgs
  public sealed class ClaimedMagneticStripeReader : IClosable {
    event TypedEventHandler<ClaimedMagneticStripeReader, ClaimedMagneticStripeReaderClosedEventArgs> Closed;
  }
  public sealed class ClaimedMagneticStripeReaderClosedEventArgs
  public sealed class ClaimedPosPrinter : IClosable {
    event TypedEventHandler<ClaimedPosPrinter, ClaimedPosPrinterClosedEventArgs> Closed;
  }
  public sealed class ClaimedPosPrinterClosedEventArgs
}
namespace Windows.Devices.PointOfService.Provider {
  public sealed class BarcodeScannerDisableScannerRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerEnableScannerRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerFrameReader : IClosable
  public sealed class BarcodeScannerFrameReaderFrameArrivedEventArgs
  public sealed class BarcodeScannerGetSymbologyAttributesRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerHideVideoPreviewRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerProviderConnection : IClosable {
    IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync();
    IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync(BitmapPixelFormat preferredFormat);
    IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync(BitmapPixelFormat preferredFormat, BitmapSize preferredSize);
  }
  public sealed class BarcodeScannerSetActiveSymbologiesRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
 public sealed class BarcodeScannerSetSymbologyAttributesRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerStartSoftwareTriggerRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerStopSoftwareTriggerRequest {
    IAsyncAction ReportFailedAsync(int reason);
    IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
  }
  public sealed class BarcodeScannerVideoFrame : IClosable
}
namespace Windows.Devices.Sensors {
  public sealed class HingeAngleReading
  public sealed class HingeAngleSensor
  public sealed class HingeAngleSensorReadingChangedEventArgs
  public sealed class SimpleOrientationSensor {
    public static IAsyncOperation<SimpleOrientationSensor> FromIdAsync(string deviceId);
    public static string GetDeviceSelector();
  }
}
namespace Windows.Devices.SmartCards {
  public static class KnownSmartCardAppletIds
  public sealed class SmartCardAppletIdGroup {
    string Description { get; set; }
    IRandomAccessStreamReference Logo { get; set; }
    ValueSet Properties { get; }
    bool SecureUserAuthenticationRequired { get; set; }
  }
  public sealed class SmartCardAppletIdGroupRegistration {
    string SmartCardReaderId { get; }
    IAsyncAction SetPropertiesAsync(ValueSet props);
  }
}
namespace Windows.Devices.WiFi {
  public enum WiFiPhyKind {
    HE = 10,
  }
}
namespace Windows.Foundation {
  public static class GuidHelper
}
namespace Windows.Globalization {
  public static class CurrencyIdentifiers {
    public static string MRU { get; }
    public static string SSP { get; }
    public static string STN { get; }
    public static string VES { get; }
  }
}
namespace Windows.Graphics.Capture {
  public sealed class Direct3D11CaptureFramePool : IClosable {
    public static Direct3D11CaptureFramePool CreateFreeThreaded(IDirect3DDevice device, DirectXPixelFormat pixelFormat, int numberOfBuffers, SizeInt32 size);
  }
  public sealed class GraphicsCaptureItem {
    public static GraphicsCaptureItem CreateFromVisual(Visual visual);
  }
}
namespace Windows.Graphics.Display.Core {
  public enum HdmiDisplayHdrOption {
    DolbyVisionLowLatency = 3,
  }
  public sealed class HdmiDisplayMode {
    bool IsDolbyVisionLowLatencySupported { get; }
  }
}
namespace Windows.Graphics.Holographic {
  public sealed class HolographicCamera {
    bool IsHardwareContentProtectionEnabled { get; set; }
    bool IsHardwareContentProtectionSupported { get; }
  }
  public sealed class HolographicQuadLayerUpdateParameters {
    bool CanAcquireWithHardwareProtection { get; }
    IDirect3DSurface AcquireBufferToUpdateContentWithHardwareProtection();
  }
}
namespace Windows.Graphics.Imaging {
  public sealed class BitmapDecoder : IBitmapFrame, IBitmapFrameWithSoftwareBitmap {
    public static Guid HeifDecoderId { get; }
    public static Guid WebpDecoderId { get; }
  }
  public sealed class BitmapEncoder {
    public static Guid HeifEncoderId { get; }
  }
}
namespace Windows.Management.Deployment {
  public enum DeploymentOptions : uint {
    ForceUpdateFromAnyVersion = (uint)262144,
  }
  public sealed class PackageManager {
    IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> DeprovisionPackageForAllUsersAsync(string packageFamilyName);
  }
  public enum RemovalOptions : uint {
    RemoveForAllUsers = (uint)524288,
  }
}
namespace Windows.Management.Policies {
  public static class NamedPolicy {
    public static IAsyncAction ClearAllPoliciesAsync();
    public static IAsyncAction ClearAllPoliciesAsync(string accountId);
    public static NamedPolicySetter TryCreatePolicySetter(string accountId);
    public static NamedPolicySetter TryCreatePolicySetterForUser(User user, string accountId);
  }
  public sealed class NamedPolicySetter
}
namespace Windows.Media.Audio {
  public sealed class CreateAudioDeviceInputNodeResult {
    HResult ExtendedError { get; }
  }
  public sealed class CreateAudioDeviceOutputNodeResult {
    HResult ExtendedError { get; }
  }
  public sealed class CreateAudioFileInputNodeResult {
    HResult ExtendedError { get; }
  }
  public sealed class CreateAudioFileOutputNodeResult {
    HResult ExtendedError { get; }
  }
  public sealed class CreateAudioGraphResult {
    HResult ExtendedError { get; }
  }
  public sealed class CreateMediaSourceAudioInputNodeResult {
    HResult ExtendedError { get; }
  }
  public enum MixedRealitySpatialAudioFormatPolicy
  public sealed class SetDefaultSpatialAudioFormatResult
  public enum SetDefaultSpatialAudioFormatStatus
  public sealed class SpatialAudioDeviceConfiguration
  public sealed class SpatialAudioFormatConfiguration
  public static class SpatialAudioFormatSubtype
}
namespace Windows.Media.Control {
  public sealed class CurrentSessionChangedEventArgs
  public sealed class GlobalSystemMediaTransportControlsSession
  public sealed class GlobalSystemMediaTransportControlsSessionManager
  public sealed class GlobalSystemMediaTransportControlsSessionMediaProperties
  public sealed class GlobalSystemMediaTransportControlsSessionPlaybackControls
  public sealed class GlobalSystemMediaTransportControlsSessionPlaybackInfo
  public enum GlobalSystemMediaTransportControlsSessionPlaybackStatus
  public sealed class GlobalSystemMediaTransportControlsSessionTimelineProperties
 public sealed class MediaPropertiesChangedEventArgs
  public sealed class PlaybackInfoChangedEventArgs
  public sealed class SessionsChangedEventArgs
  public sealed class TimelinePropertiesChangedEventArgs
}
namespace Windows.Media.Core {
  public sealed class MediaStreamSample {
    IDirect3DSurface Direct3D11Surface { get; }
    public static MediaStreamSample CreateFromDirect3D11Surface(IDirect3DSurface surface, TimeSpan timestamp);
  }
}
namespace Windows.Media.Devices.Core {
  public sealed class CameraIntrinsics {
    public CameraIntrinsics(Vector2 focalLength, Vector2 principalPoint, Vector3 radialDistortion, Vector2 tangentialDistortion, uint imageWidth, uint imageHeight);
  }
}
namespace Windows.Media.Import {
  public enum PhotoImportContentTypeFilter {
    ImagesAndVideosFromCameraRoll = 3,
  }
  public sealed class PhotoImportItem {
    string Path { get; }
  }
}
namespace Windows.Media.MediaProperties {
  public sealed class ImageEncodingProperties : IMediaEncodingProperties {
    public static ImageEncodingProperties CreateHeif();
  }
  public static class MediaEncodingSubtypes {
    public static string Heif { get; }
  }
}
namespace Windows.Media.Protection.PlayReady {
  public static class PlayReadyStatics {
    public static IReference<DateTime> HardwareDRMDisabledAtTime { get; }
    public static IReference<DateTime> HardwareDRMDisabledUntilTime { get; }
    public static void ResetHardwareDRMDisabled();
  }
}
namespace Windows.Media.Streaming.Adaptive {
  public enum AdaptiveMediaSourceResourceType {
    MediaSegmentIndex = 5,
  }
}
namespace Windows.Networking.BackgroundTransfer {
  public enum BackgroundTransferPriority {
    Low = 2,
  }
}
namespace Windows.Networking.Connectivity {
  public sealed class ConnectionProfile {
    bool CanDelete { get; }
    IAsyncOperation<ConnectionProfileDeleteStatus> TryDeleteAsync();
  }
  public enum ConnectionProfileDeleteStatus
}
namespace Windows.Networking.NetworkOperators {
  public enum ESimOperationStatus {
    CardGeneralFailure = 13,
    ConfirmationCodeMissing = 14,
    EidMismatch = 18,
    InvalidMatchingId = 15,
    NoCorrespondingRequest = 23,
    NoEligibleProfileForThisDevice = 16,
    OperationAborted = 17,
    OperationProhibitedByProfileClass = 21,
    ProfileNotAvailableForNewBinding = 19,
    ProfileNotPresent = 22,
    ProfileNotReleasedByOperator = 20,
  }
}
namespace Windows.Perception {
  public sealed class PerceptionTimestamp {
    TimeSpan SystemRelativeTargetTime { get; }
  }
  public static class PerceptionTimestampHelper {
    public static PerceptionTimestamp FromSystemRelativeTargetTime(TimeSpan targetTime);
  }
}
namespace Windows.Perception.Spatial {
  public sealed class SpatialAnchorExporter
  public enum SpatialAnchorExportPurpose
  public sealed class SpatialAnchorExportSufficiency
  public sealed class SpatialLocation {
    Vector3 AbsoluteAngularAccelerationAxisAngle { get; }
    Vector3 AbsoluteAngularVelocityAxisAngle { get; }
  }
}
namespace Windows.Perception.Spatial.Preview {
  public static class SpatialGraphInteropPreview
}
namespace Windows.Security.DataProtection {
  public enum UserDataAvailability
  public sealed class UserDataAvailabilityStateChangedEventArgs
  public sealed class UserDataBufferUnprotectResult
  public enum UserDataBufferUnprotectStatus
  public sealed class UserDataProtectionManager
  public sealed class UserDataStorageItemProtectionInfo
  public enum UserDataStorageItemProtectionStatus
}
namespace Windows.Services.Cortana {
  public sealed class CortanaActionableInsights
  public sealed class CortanaActionableInsightsOptions
}
namespace Windows.Services.Store {
  public sealed class StoreAppLicense {
    bool IsDiscLicense { get; }
  }
  public sealed class StoreContext {
    IAsyncOperation<StoreRateAndReviewResult> RequestRateAndReviewAppAsync();
    IAsyncOperation<IVectorView<StoreQueueItem>> SetInstallOrderForAssociatedStoreQueueItemsAsync(IIterable<StoreQueueItem> items);
  }
  public sealed class StoreQueueItem {
    IAsyncAction CancelInstallAsync();
    IAsyncAction PauseInstallAsync();
    IAsyncAction ResumeInstallAsync();
  }
  public sealed class StoreRateAndReviewResult
  public enum StoreRateAndReviewStatus
}
namespace Windows.Storage.Provider {
  public enum StorageProviderHydrationPolicyModifier : uint {
    AutoDehydrationAllowed = (uint)4,
  }
  public sealed class StorageProviderSyncRootInfo {
    Guid ProviderId { get; set; }
  }
}
namespace Windows.System {
  public sealed class AppUriHandlerHost
  public sealed class AppUriHandlerRegistration
  public sealed class AppUriHandlerRegistrationManager
  public static class Launcher {
    public static IAsyncOperation<bool> LaunchFolderPathAsync(string path);
    public static IAsyncOperation<bool> LaunchFolderPathAsync(string path, FolderLauncherOptions options);
    public static IAsyncOperation<bool> LaunchFolderPathForUserAsync(User user, string path);
    public static IAsyncOperation<bool> LaunchFolderPathForUserAsync(User user, string path, FolderLauncherOptions options);
  }
}
namespace Windows.System.Preview {
  public enum HingeState
  public sealed class TwoPanelHingedDevicePosturePreview
  public sealed class TwoPanelHingedDevicePosturePreviewReading
  public sealed class TwoPanelHingedDevicePosturePreviewReadingChangedEventArgs
}
namespace Windows.System.Profile {
  public enum SystemOutOfBoxExperienceState
  public static class SystemSetupInfo
  public static class WindowsIntegrityPolicy
}
namespace Windows.System.Profile.SystemManufacturers {
  public sealed class SystemSupportDeviceInfo
  public static class SystemSupportInfo {
    public static SystemSupportDeviceInfo LocalDeviceInfo { get; }
  }
}
namespace Windows.System.RemoteSystems {
  public sealed class RemoteSystem {
    IVectorView<RemoteSystemApp> Apps { get; }
  }
  public sealed class RemoteSystemApp
  public sealed class RemoteSystemAppRegistration
  public sealed class RemoteSystemConnectionInfo
  public sealed class RemoteSystemConnectionRequest {
    RemoteSystemApp RemoteSystemApp { get; }
    public static RemoteSystemConnectionRequest CreateForApp(RemoteSystemApp remoteSystemApp);
  }
  public sealed class RemoteSystemWebAccountFilter : IRemoteSystemFilter
}
namespace Windows.System.Update {
  public enum SystemUpdateAttentionRequiredReason
  public sealed class SystemUpdateItem
  public enum SystemUpdateItemState
  public sealed class SystemUpdateLastErrorInfo
  public static class SystemUpdateManager
  public enum SystemUpdateManagerState
  public enum SystemUpdateStartInstallAction
}
namespace Windows.System.UserProfile {
  public sealed class AssignedAccessSettings
}
namespace Windows.UI.Accessibility {
  public sealed class ScreenReaderPositionChangedEventArgs
  public sealed class ScreenReaderService
}
namespace Windows.UI.Composition {
  public enum AnimationPropertyAccessMode
  public sealed class AnimationPropertyInfo : CompositionObject
  public sealed class BooleanKeyFrameAnimation : KeyFrameAnimation
  public class CompositionAnimation : CompositionObject, ICompositionAnimationBase {
    void SetExpressionReferenceParameter(string parameterName, IAnimationObject source);
  }
  public enum CompositionBatchTypes : uint {
    AllAnimations = (uint)5,
    InfiniteAnimation = (uint)4,
  }
  public sealed class CompositionGeometricClip : CompositionClip
  public class CompositionGradientBrush : CompositionBrush {
    CompositionMappingMode MappingMode { get; set; }
  }
  public enum CompositionMappingMode
  public class CompositionObject : IAnimationObject, IClosable {
    void PopulatePropertyInfo(string propertyName, AnimationPropertyInfo propertyInfo);
    public static void StartAnimationGroupWithIAnimationObject(IAnimationObject target, ICompositionAnimationBase animation);
    public static void StartAnimationWithIAnimationObject(IAnimationObject target, string propertyName, CompositionAnimation animation);
  }
  public sealed class Compositor : IClosable {
    BooleanKeyFrameAnimation CreateBooleanKeyFrameAnimation();
    CompositionGeometricClip CreateGeometricClip();
    CompositionGeometricClip CreateGeometricClip(CompositionGeometry geometry);
    RedirectVisual CreateRedirectVisual();
    RedirectVisual CreateRedirectVisual(Visual source);
  }
  public interface IAnimationObject
  public sealed class RedirectVisual : ContainerVisual
}
namespace Windows.UI.Composition.Interactions {
  public sealed class InteractionSourceConfiguration : CompositionObject
  public enum InteractionSourceRedirectionMode
  public sealed class InteractionTracker : CompositionObject {
    bool IsInertiaFromImpulse { get; }
    int TryUpdatePosition(Vector3 value, InteractionTrackerClampingOption option);
    int TryUpdatePositionBy(Vector3 amount, InteractionTrackerClampingOption option);
  }
  public enum InteractionTrackerClampingOption
  public sealed class InteractionTrackerInertiaStateEnteredArgs {
    bool IsInertiaFromImpulse { get; }
  }
  public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource {
    InteractionSourceConfiguration PointerWheelConfig { get; }
  }
}
namespace Windows.UI.Input.Inking {
  public enum HandwritingLineHeight
  public sealed class PenAndInkSettings
  public enum PenHandedness
}
namespace Windows.UI.Input.Inking.Preview {
  public sealed class PalmRejectionDelayZonePreview : IClosable
}
namespace Windows.UI.Notifications {
  public sealed class ScheduledToastNotificationShowingEventArgs
  public sealed class ToastNotifier {
    event TypedEventHandler<ToastNotifier, ScheduledToastNotificationShowingEventArgs> ScheduledToastNotificationShowing;
  }
}
namespace Windows.UI.Shell {
  public enum SecurityAppKind
  public sealed class SecurityAppManager
  public struct SecurityAppManagerContract
  public enum SecurityAppState
  public enum SecurityAppSubstatus
  public sealed class TaskbarManager {
    IAsyncOperation<bool> IsSecondaryTilePinnedAsync(string tileId);
    IAsyncOperation<bool> RequestPinSecondaryTileAsync(SecondaryTile secondaryTile);
    IAsyncOperation<bool> TryUnpinSecondaryTileAsync(string tileId);
  }
}
namespace Windows.UI.StartScreen {
  public sealed class StartScreenManager {
    IAsyncOperation<bool> ContainsSecondaryTileAsync(string tileId);
    IAsyncOperation<bool> TryRemoveSecondaryTileAsync(string tileId);
  }
}
namespace Windows.UI.Text {
  public sealed class RichEditTextDocument : ITextDocument {
    void ClearUndoRedoHistory();
  }
}
namespace Windows.UI.Text.Core {
  public sealed class CoreTextLayoutRequest {
    CoreTextLayoutBounds LayoutBoundsVisualPixels { get; }
  }
}
namespace Windows.UI.ViewManagement {
  public enum ApplicationViewWindowingMode {
    CompactOverlay = 3,
    Maximized = 4,
  }
}
namespace Windows.UI.ViewManagement.Core {
  public sealed class CoreInputView {
    bool TryHide();
    bool TryShow();
    bool TryShow(CoreInputViewKind type);
  }
  public enum CoreInputViewKind
}
namespace Windows.UI.WebUI {
  public sealed class BackgroundActivatedEventArgs : IBackgroundActivatedEventArgs
  public delegate void BackgroundActivatedEventHandler(object sender, IBackgroundActivatedEventArgs eventArgs);
  public sealed class NewWebUIViewCreatedEventArgs
  public static class WebUIApplication {
    public static event BackgroundActivatedEventHandler BackgroundActivated;
    public static event EventHandler<NewWebUIViewCreatedEventArgs> NewWebUIViewCreated;
  }
  public sealed class WebUIView : IWebViewControl, IWebViewControl2
}
namespace Windows.UI.Xaml {
  public class BrushTransition
  public class ColorPaletteResources : ResourceDictionary
  public class DataTemplate : FrameworkTemplate, IElementFactory {
    UIElement GetElement(ElementFactoryGetArgs args);
    void RecycleElement(ElementFactoryRecycleArgs args);
  }
  public sealed class DebugSettings {
    bool FailFastOnErrors { get; set; }
  }
  public sealed class EffectiveViewportChangedEventArgs
  public class ElementFactoryGetArgs
  public class ElementFactoryRecycleArgs
  public class FrameworkElement : UIElement {
    bool IsLoaded { get; }
    event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
    void InvalidateViewport();
  }
  public interface IElementFactory
  public class ScalarTransition
  public class UIElement : DependencyObject, IAnimationObject {
    bool CanBeScrollAnchor { get; set; }
    public static DependencyProperty CanBeScrollAnchorProperty { get; }
    Vector3 CenterPoint { get; set; }
    ScalarTransition OpacityTransition { get; set; }
    float Rotation { get; set; }
    Vector3 RotationAxis { get; set; }
    ScalarTransition RotationTransition { get; set; }
    Vector3 Scale { get; set; }
    Vector3Transition ScaleTransition { get; set; }
    Shadow Shadow { get; set; }
    public static DependencyProperty ShadowProperty { get; }
    Matrix4x4 TransformMatrix { get; set; }
    Vector3 Translation { get; set; }
    Vector3Transition TranslationTransition { get; set; }
    void PopulatePropertyInfo(string propertyName, AnimationPropertyInfo propertyInfo);
    virtual void PopulatePropertyInfoOverride(string propertyName, AnimationPropertyInfo animationPropertyInfo);
    void StartAnimation(ICompositionAnimationBase animation);
    void StopAnimation(ICompositionAnimationBase animation);
  }
 public class UIElementWeakCollection : IIterable<UIElement>, IVector<UIElement>
  public class Vector3Transition
  public enum Vector3TransitionComponents : uint
}
namespace Windows.UI.Xaml.Automation {
  public sealed class AutomationElementIdentifiers {
    public static AutomationProperty IsDialogProperty { get; }
  }
  public sealed class AutomationProperties {
    public static DependencyProperty IsDialogProperty { get; }
    public static bool GetIsDialog(DependencyObject element);
    public static void SetIsDialog(DependencyObject element, bool value);
  }
}
namespace Windows.UI.Xaml.Automation.Peers {
  public class AppBarButtonAutomationPeer : ButtonAutomationPeer, IExpandCollapseProvider {
    ExpandCollapseState ExpandCollapseState { get; }
    void Collapse();
    void Expand();
  }
  public class AutomationPeer : DependencyObject {
    bool IsDialog();
    virtual bool IsDialogCore();
  }
  public class MenuBarAutomationPeer : FrameworkElementAutomationPeer
  public class MenuBarItemAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IInvokeProvider
}
namespace Windows.UI.Xaml.Controls {
  public sealed class AnchorRequestedEventArgs
  public class AppBarElementContainer : ContentControl, ICommandBarElement, ICommandBarElement2
  public sealed class AutoSuggestBox : ItemsControl {
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
  }
  public enum BackgroundSizing
  public sealed class Border : FrameworkElement {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
    BrushTransition BackgroundTransition { get; set; }
  }
  public class CalendarDatePicker : Control {
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
  }
  public class ComboBox : Selector {
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
    bool IsEditable { get; set; }
    public static DependencyProperty IsEditableProperty { get; }
    string Text { get; set; }
    Style TextBoxStyle { get; set; }
    public static DependencyProperty TextBoxStyleProperty { get; }
    public static DependencyProperty TextProperty { get; }
    event TypedEventHandler<ComboBox, ComboBoxTextSubmittedEventArgs> TextSubmitted;
  }
  public sealed class ComboBoxTextSubmittedEventArgs
  public class CommandBarFlyout : FlyoutBase
  public class ContentPresenter : FrameworkElement {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
    BrushTransition BackgroundTransition { get; set; }
  }
  public class Control : FrameworkElement {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
    CornerRadius CornerRadius { get; set; }
    public static DependencyProperty CornerRadiusProperty { get; }
  }
  public class DataTemplateSelector : IElementFactory {
    UIElement GetElement(ElementFactoryGetArgs args);
    void RecycleElement(ElementFactoryRecycleArgs args);
  }
  public class DatePicker : Control {
    IReference<DateTime> SelectedDate { get; set; }
    public static DependencyProperty SelectedDateProperty { get; }
    event TypedEventHandler<DatePicker, DatePickerSelectedValueChangedEventArgs> SelectedDateChanged;
  }
  public sealed class DatePickerSelectedValueChangedEventArgs
  public class DropDownButton : Button
  public class DropDownButtonAutomationPeer : ButtonAutomationPeer, IExpandCollapseProvider
  public class Frame : ContentControl, INavigate {
    bool IsNavigationStackEnabled { get; set; }
    public static DependencyProperty IsNavigationStackEnabledProperty { get; }
    bool NavigateToType(TypeName sourcePageType, object parameter, FrameNavigationOptions navigationOptions);
  }
  public class Grid : Panel {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
  }
  public class IconSourceElement : IconElement
  public sealed class InputPropertyAttribute : Attribute
  public interface IScrollAnchorProvider
  public class MenuBar : Control
  public class MenuBarItem : Control
  public class MenuBarItemFlyout : MenuFlyout
  public class NavigationView : ContentControl {
    UIElement ContentOverlay { get; set; }
    public static DependencyProperty ContentOverlayProperty { get; }
    bool IsPaneVisible { get; set; }
    public static DependencyProperty IsPaneVisibleProperty { get; }
    NavigationViewOverflowLabelMode OverflowLabelMode { get; set; }
    public static DependencyProperty OverflowLabelModeProperty { get; }
    UIElement PaneCustomContent { get; set; }
    public static DependencyProperty PaneCustomContentProperty { get; }
    NavigationViewPaneDisplayMode PaneDisplayMode { get; set; }
    public static DependencyProperty PaneDisplayModeProperty { get; }
    UIElement PaneHeader { get; set; }
    public static DependencyProperty PaneHeaderProperty { get; }
    NavigationViewSelectionFollowsFocus SelectionFollowsFocus { get; set; }
    public static DependencyProperty SelectionFollowsFocusProperty { get; }
    NavigationViewShoulderNavigationEnabled ShoulderNavigationEnabled { get; set; }
    public static DependencyProperty ShoulderNavigationEnabledProperty { get; }
    NavigationViewTemplateSettings TemplateSettings { get; }
    public static DependencyProperty TemplateSettingsProperty { get; }
  }
  public class NavigationViewItem : NavigationViewItemBase {
    bool SelectsOnInvoked { get; set; }
    public static DependencyProperty SelectsOnInvokedProperty { get; }
  }
  public sealed class NavigationViewItemInvokedEventArgs {
    NavigationViewItemBase InvokedItemContainer { get; }
    NavigationTransitionInfo RecommendedNavigationTransitionInfo { get; }
  }
  public enum NavigationViewOverflowLabelMode
  public enum NavigationViewPaneDisplayMode
  public sealed class NavigationViewSelectionChangedEventArgs {
    NavigationTransitionInfo RecommendedNavigationTransitionInfo { get; }
    NavigationViewItemBase SelectedItemContainer { get; }
  }
  public enum NavigationViewSelectionFollowsFocus
  public enum NavigationViewShoulderNavigationEnabled
  public class NavigationViewTemplateSettings : DependencyObject
  public class Panel : FrameworkElement {
    BrushTransition BackgroundTransition { get; set; }
  }
  public sealed class PasswordBox : Control {
    bool CanPasteClipboardContent { get; }
    public static DependencyProperty CanPasteClipboardContentProperty { get; }
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
    FlyoutBase SelectionFlyout { get; set; }
    public static DependencyProperty SelectionFlyoutProperty { get; }
    void PasteFromClipboard();
  }
  public class RelativePanel : Panel {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
  }
  public class RichEditBox : Control {
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
    FlyoutBase ProofingMenuFlyout { get; }
    public static DependencyProperty ProofingMenuFlyoutProperty { get; }
    FlyoutBase SelectionFlyout { get; set; }
    public static DependencyProperty SelectionFlyoutProperty { get; }
    RichEditTextDocument TextDocument { get; }
    event TypedEventHandler<RichEditBox, RichEditBoxSelectionChangingEventArgs> SelectionChanging;
  }
  public sealed class RichEditBoxSelectionChangingEventArgs
  public sealed class RichTextBlock : FrameworkElement {
    FlyoutBase SelectionFlyout { get; set; }
    public static DependencyProperty SelectionFlyoutProperty { get; }
    void CopySelectionToClipboard();
  }
  public sealed class ScrollContentPresenter : ContentPresenter {
    bool CanContentRenderOutsideBounds { get; set; }
    public static DependencyProperty CanContentRenderOutsideBoundsProperty { get; }
    bool SizesContentToTemplatedParent { get; set; }
    public static DependencyProperty SizesContentToTemplatedParentProperty { get; }
  }
  public sealed class ScrollViewer : ContentControl, IScrollAnchorProvider {
    bool CanContentRenderOutsideBounds { get; set; }
    public static DependencyProperty CanContentRenderOutsideBoundsProperty { get; }
    UIElement CurrentAnchor { get; }
    double HorizontalAnchorRatio { get; set; }
    public static DependencyProperty HorizontalAnchorRatioProperty { get; }
    bool ReduceViewportForCoreInputViewOcclusions { get; set; }
    public static DependencyProperty ReduceViewportForCoreInputViewOcclusionsProperty { get; }
    double VerticalAnchorRatio { get; set; }
    public static DependencyProperty VerticalAnchorRatioProperty { get; }
    event TypedEventHandler<ScrollViewer, AnchorRequestedEventArgs> AnchorRequested;
    public static bool GetCanContentRenderOutsideBounds(DependencyObject element);
    void RegisterAnchorCandidate(UIElement element);
    public static void SetCanContentRenderOutsideBounds(DependencyObject element, bool canContentRenderOutsideBounds);
    void UnregisterAnchorCandidate(UIElement element);
  }
  public class SplitButton : ContentControl
  public class SplitButtonAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IInvokeProvider
  public sealed class SplitButtonClickEventArgs
  public class StackPanel : Panel, IInsertionPanel, IScrollSnapPointsInfo {
    BackgroundSizing BackgroundSizing { get; set; }
    public static DependencyProperty BackgroundSizingProperty { get; }
  }
  public sealed class TextBlock : FrameworkElement {
    FlyoutBase SelectionFlyout { get; set; }
    public static DependencyProperty SelectionFlyoutProperty { get; }
    void CopySelectionToClipboard();
  }
  public class TextBox : Control {
    bool CanPasteClipboardContent { get; }
    public static DependencyProperty CanPasteClipboardContentProperty { get; }
    bool CanRedo { get; }
    public static DependencyProperty CanRedoProperty { get; }
    bool CanUndo { get; }
    public static DependencyProperty CanUndoProperty { get; }
    object Description { get; set; }
    public static DependencyProperty DescriptionProperty { get; }
    FlyoutBase ProofingMenuFlyout { get; }
    public static DependencyProperty ProofingMenuFlyoutProperty { get; }
    FlyoutBase SelectionFlyout { get; set; }
    public static DependencyProperty SelectionFlyoutProperty { get; }
    event TypedEventHandler<TextBox, TextBoxSelectionChangingEventArgs> SelectionChanging;
    void ClearUndoRedoHistory();
    void CopySelectionToClipboard();
    void CutSelectionToClipboard();
    void PasteFromClipboard();
    void Redo();
    void Undo();
  }
  public sealed class TextBoxSelectionChangingEventArgs
  public class TextCommandBarFlyout : CommandBarFlyout
  public class TimePicker : Control {
    IReference<TimeSpan> SelectedTime { get; set; }
    public static DependencyProperty SelectedTimeProperty { get; }
    event TypedEventHandler<TimePicker, TimePickerSelectedValueChangedEventArgs> SelectedTimeChanged;
  }
  public sealed class TimePickerSelectedValueChangedEventArgs
  public class ToggleSplitButton : SplitButton
  public class ToggleSplitButtonAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IToggleProvider
  public sealed class ToggleSplitButtonIsCheckedChangedEventArgs
  public class ToolTip : ContentControl {
    IReference<Rect> PlacementRect { get; set; }
    public static DependencyProperty PlacementRectProperty { get; }
  }
  public class TreeView : Control {
    bool CanDragItems { get; set; }
    public static DependencyProperty CanDragItemsProperty { get; }
    bool CanReorderItems { get; set; }
    public static DependencyProperty CanReorderItemsProperty { get; }
    Style ItemContainerStyle { get; set; }
    public static DependencyProperty ItemContainerStyleProperty { get; }
    StyleSelector ItemContainerStyleSelector { get; set; }
    public static DependencyProperty ItemContainerStyleSelectorProperty { get; }
    TransitionCollection ItemContainerTransitions { get; set; }
    public static DependencyProperty ItemContainerTransitionsProperty { get; }
    object ItemsSource { get; set; }
    public static DependencyProperty ItemsSourceProperty { get; }
    DataTemplate ItemTemplate { get; set; }
    public static DependencyProperty ItemTemplateProperty { get; }
    DataTemplateSelector ItemTemplateSelector { get; set; }
    public static DependencyProperty ItemTemplateSelectorProperty { get; }
    event TypedEventHandler<TreeView, TreeViewDragItemsCompletedEventArgs> DragItemsCompleted;
    event TypedEventHandler<TreeView, TreeViewDragItemsStartingEventArgs> DragItemsStarting;
    DependencyObject ContainerFromItem(object item);
    DependencyObject ContainerFromNode(TreeViewNode node);
    object ItemFromContainer(DependencyObject container);
    TreeViewNode NodeFromContainer(DependencyObject container);
  }
  public sealed class TreeViewCollapsedEventArgs {
    object Item { get; }
  }
  public sealed class TreeViewDragItemsCompletedEventArgs
  public sealed class TreeViewDragItemsStartingEventArgs
  public sealed class TreeViewExpandingEventArgs {
    object Item { get; }
  }
  public class TreeViewItem : ListViewItem {
    bool HasUnrealizedChildren { get; set; }
    public static DependencyProperty HasUnrealizedChildrenProperty { get; }
    object ItemsSource { get; set; }
    public static DependencyProperty ItemsSourceProperty { get; }
  }
  public class TwoPaneView : Control
  public enum TwoPaneViewMode
  public enum TwoPaneViewPriority
  public enum TwoPaneViewTallModeConfiguration
  public enum TwoPaneViewWideModeConfiguration
  public sealed class WebView : FrameworkElement {
    event TypedEventHandler<WebView, WebViewWebResourceRequestedEventArgs> WebResourceRequested;
  }
  public sealed class WebViewWebResourceRequestedEventArgs
}
namespace Windows.UI.Xaml.Controls.Maps {
  public enum MapTileAnimationState
  public sealed class MapTileBitmapRequestedEventArgs {
    int FrameIndex { get; }
  }
  public class MapTileSource : DependencyObject {
    MapTileAnimationState AnimationState { get; }
    public static DependencyProperty AnimationStateProperty { get; }
    bool AutoPlay { get; set; }
    public static DependencyProperty AutoPlayProperty { get; }
    int FrameCount { get; set; }
    public static DependencyProperty FrameCountProperty { get; }
    TimeSpan FrameDuration { get; set; }
    public static DependencyProperty FrameDurationProperty { get; }
    void Pause();
    void Play();
    void Stop();
  }
  public sealed class MapTileUriRequestedEventArgs {
    int FrameIndex { get; }
  }
}
namespace Windows.UI.Xaml.Controls.Primitives {
  public class CommandBarFlyoutCommandBar : CommandBar
  public sealed class CommandBarFlyoutCommandBarTemplateSettings : DependencyObject
  public class FlyoutBase : DependencyObject {
    bool AreOpenCloseAnimationsEnabled { get; set; }
    public static DependencyProperty AreOpenCloseAnimationsEnabledProperty { get; }
    bool InputDevicePrefersPrimaryCommands { get; }
    public static DependencyProperty InputDevicePrefersPrimaryCommandsProperty { get; }
    bool IsOpen { get; }
    public static DependencyProperty IsOpenProperty { get; }
    FlyoutShowMode ShowMode { get; set; }
    public static DependencyProperty ShowModeProperty { get; }
    public static DependencyProperty TargetProperty { get; }
    void ShowAt(DependencyObject placementTarget, FlyoutShowOptions showOptions);
  }
  public enum FlyoutPlacementMode {
    Auto = 13,
    BottomEdgeAlignedLeft = 7,
    BottomEdgeAlignedRight = 8,
    LeftEdgeAlignedBottom = 10,
    LeftEdgeAlignedTop = 9,
    RightEdgeAlignedBottom = 12,
    RightEdgeAlignedTop = 11,
    TopEdgeAlignedLeft = 5,
    TopEdgeAlignedRight = 6,
  }
  public enum FlyoutShowMode
  public class FlyoutShowOptions
  public class NavigationViewItemPresenter : ContentControl
}
namespace Windows.UI.Xaml.Core.Direct {
  public interface IXamlDirectObject
  public sealed class XamlDirect
  public struct XamlDirectContract
  public enum XamlEventIndex
  public enum XamlPropertyIndex
  public enum XamlTypeIndex
}
namespace Windows.UI.Xaml.Hosting {
  public class DesktopWindowXamlSource : IClosable
  public sealed class DesktopWindowXamlSourceGotFocusEventArgs
  public sealed class DesktopWindowXamlSourceTakeFocusRequestedEventArgs
  public sealed class WindowsXamlManager : IClosable
  public enum XamlSourceFocusNavigationReason
  public sealed class XamlSourceFocusNavigationRequest
  public sealed class XamlSourceFocusNavigationResult
}
namespace Windows.UI.Xaml.Input {
  public sealed class CanExecuteRequestedEventArgs
  public sealed class ExecuteRequestedEventArgs
  public sealed class FocusManager {
    public static event EventHandler<GettingFocusEventArgs> GettingFocus;
    public static event EventHandler<FocusManagerGotFocusEventArgs> GotFocus;
    public static event EventHandler<LosingFocusEventArgs> LosingFocus;
    public static event EventHandler<FocusManagerLostFocusEventArgs> LostFocus;
  }
  public sealed class FocusManagerGotFocusEventArgs
  public sealed class FocusManagerLostFocusEventArgs
  public sealed class GettingFocusEventArgs : RoutedEventArgs {
    Guid CorrelationId { get; }
  }
  public sealed class LosingFocusEventArgs : RoutedEventArgs {
    Guid CorrelationId { get; }
  }
  public class StandardUICommand : XamlUICommand
  public enum StandardUICommandKind
  public class XamlUICommand : DependencyObject, ICommand
}
namespace Windows.UI.Xaml.Markup {
  public sealed class FullXamlMetadataProviderAttribute : Attribute
  public interface IXamlBindScopeDiagnostics
  public interface IXamlType2 : IXamlType
}
namespace Windows.UI.Xaml.Media {
  public class Brush : DependencyObject, IAnimationObject {
    void PopulatePropertyInfo(string propertyName, AnimationPropertyInfo propertyInfo);
    virtual void PopulatePropertyInfoOverride(string propertyName, AnimationPropertyInfo animationPropertyInfo);
  }
  public class Shadow : DependencyObject
  public class ThemeShadow : Shadow
}
namespace Windows.UI.Xaml.Media.Animation {
  public class BasicConnectedAnimationConfiguration : ConnectedAnimationConfiguration
  public sealed class ConnectedAnimation {
    ConnectedAnimationConfiguration Configuration { get; set; }
  }
  public class ConnectedAnimationConfiguration
  public class DirectConnectedAnimationConfiguration : ConnectedAnimationConfiguration
  public class GravityConnectedAnimationConfiguration : ConnectedAnimationConfiguration
  public enum SlideNavigationTransitionEffect
  public sealed class SlideNavigationTransitionInfo : NavigationTransitionInfo {
    SlideNavigationTransitionEffect Effect { get; set; }
    public static DependencyProperty EffectProperty { get; }
  }
}
namespace Windows.UI.Xaml.Navigation {
  public class FrameNavigationOptions
}
namespace Windows.Web.UI {
  public interface IWebViewControl2
  public sealed class WebViewControlNewWindowRequestedEventArgs {
    IWebViewControl NewWindow { get; set; }
    Deferral GetDeferral();
  }
  public enum WebViewControlPermissionType {
    ImmersiveView = 6,
  }
}
namespace Windows.Web.UI.Interop {
  public sealed class WebViewControl : IWebViewControl, IWebViewControl2 {
    event TypedEventHandler<WebViewControl, object> GotFocus;
    event TypedEventHandler<WebViewControl, object> LostFocus;
    void AddInitializeScript(string script);
  }
}  

Removals:


namespace Windows.Gaming.UI {
  public sealed class GameMonitor
  public enum GameMonitoringPermission
}

The post Windows 10 SDK Preview Build 17723 available now! appeared first on Windows Developer Blog.

One click deploy for MakeCode and the amazing AdaFruit Circuit Playground Express

$
0
0

Circuit Playground Express and CrickitThere's a ton of great open source hardware solutions out there. Often they're used to teach kids how to code, but their also fun for adults to learn about hardware!

Ultimately that "LED Moment" can be the start of a love affair with open source hardware and software! Arduino is great, as is Arduino talking to the Cloud! If that's too much or too many moving parts, you always start small with other little robot kits for kids.

Recently my 10 year old and I have been playing with the Circuit Playground Express from Adafruit. We like it because it supports not just block-based programming and JavaScript via MakeCode (more on that in a moment) but you can also graduate to Circuit Python. Want to be even more advanced/ You can also use the Arduino IDE to talk to Circuit Playground Express. It's quickly becoming our favorite board. Be sure to get the board, some batteries and a holder, as well as a few alligator clips.

The Circuit Playground Express board is round and has alligator-clip pads around it so you don't have to solder to get started. It has as bunch of sensors for light, temperature, motion, sound, as well as an IR receiver and transmitter and LEDs for visual output. There's a million things you can do with it. This summer Microsoft Research is doing a project a week you can do with the kids in your life with Make Code!

I think the Circuit Playground Express is excellent by itself, but I like that I can stack it on top of the AdaFruit Crickit to make a VERY capable robotics platform. It's an ingenious design where three screws and metal standoffs connect the Crickit to the Circuit Playground and provide a bus for power and communication. The 10 year old wants to make a BattleBot now.

Sitting architecturally on top of all this great hardware is the open source Microsoft Make Code development environment. It's amazing and more people should be talking about it. MakeCode works with LEGO Mindstorms EV3, micro:bit, Circuit Playground Express, Minecraft, Cue robots, Chibichips, and more. The pair of devices is truly awesome.

Frankly I'm blown away at how easy it is and how easily my kids were productive. The hardest part of the whole thing was the last step where they need to copy the compiled code to the Circuit Playground Express. The editor is all online at GitHub https://github.com/Microsoft/pxt and you can run it locally if you like but there's no reason to unless you're developing new packages.

We went to https://makecode.adafruit.com/ for the Circuit Playground Express. We made a new project (and optionally added the Crickit board blocks as an extension) and then got to work. The 10 year old followed a tutorial and made a moisture sensor that uses an alligator clip and a nail to check if our plants need to be watered! (If they do, it beeps and turns red!)

You can see the code here as blocks...

The MakeCode IDE

or see the same code as JavaScript!

let Soil_reading = 0
let dry_value = 0
dry_value = 1500
light.setBrightness(45)
light.setAll(0x00ff00)
forever(function () {
    Soil_reading = input.pinA1.value()
    console.logValue("Soil reading", Soil_reading)
    if (Soil_reading < dry_value) {
        light.setAll(0xff0000)
        music.playTone(262, music.beat(BeatFraction.Half))
    } else {
        light.clear()
    }
    pause(__internal.__timePicker(2000))
})

When you've written your code, you just click DOWNLOAD and you'll get a "uf2" file.

Downloading compiled MakeCode UF2 files

Then the hardest part, you plug in the Circuit Playground Express via USB, it shows up as a Drive called "CPLAYBOOT," and you copy that file over. It's easy for techies, but a speed bump for kids.

Downloading compiled MakeCode UF2 files

It's really a genius process where they have removed nearly every obstacle in the hardware. After the file gets copied over (literally after the last byte is written) the device resets and starts running it.

The "Developer's Inner Loop" is as short as possible, so kudos to the team. Code, download, deploy, run/test, repeat.

This loop is fast and clever, but I wanted to speed it up a little so I wrote this little utility to automatically copy your MakeCode file to the Circuit Playground Express. Basically the idea is:

  • Associate my app with *.uf2 files
  • When launched, look for a local drive labeled CPLAYBOOK and copy the uf2 file over to it.

That's it. It speeds up the experience and saves me a number of clicks. Sure there's batch file/powershell/script ways to do it but this wasn't hard.

static void Main(string[] args)
{
    var sourceFile = args[0];
    var drive = (from d in DriveInfo.GetDrives()
                 where d.VolumeLabel == "CPLAYBOOT"
                 select d.RootDirectory).FirstOrDefault();
    
    if (drive == null) {
        Console.WriteLine("Press RESET on your Circuit Playground Express and try again!");
        Environment.Exit(1);
    }
    Console.WriteLine($"Found Circuit Playground Express at {drive.FullName}");
    File.Copy(sourceFile, Path.Combine(drive.FullName, Path.GetFileName(sourceFile)));
}

Then I double click on the uf2 file and get this dialog and SCROLL DOWN and click "Look for another app on this PC." (They are making this hard because they want you to use a Store App, which I haven't made yet)

Selecting a custom app for UF2 files

Now I can just click my uf2 files in Windows Explorer and they'll automatically get deployed to my Circuit Playground Express!

Found Circuit Playground Express at D:

You can find source here https://github.com/shanselman/MakeCodeLaunchAndCopy if you're a developer, just get .NET Core 2.1 and run my .cmd file on Windows to build it yourself. Feel free to make it a Windows Store App if you're an overachiever. Pull Requests appreciated ;)

Otherwise, get the a little release here https://github.com/shanselman/MakeCodeLaunchAndCopy/releases and unzip the contents into its own folder on Windows, go double-click a UF2 file and point Windows to the MakeCodeLaunchAndCopy.exe file and you're all set!


Sponsor: Preview the latest JetBrains Rider with its built-in spell checking, initial Blazor support, partial C# 7.3 support, enhanced debugger, C# Interactive, and a redesigned Solution Explorer.



© 2018 Scott Hanselman. All rights reserved.
     

4 steps to engage employees with new live events in Microsoft 365

$
0
0

Earlier this month, we announced new intelligent event capabilities in Microsoft 365 that enable anyone to create live and on-demand events for teams and across the organization. Today, we invite you to use the public preview of live events in Microsoft 365 and discover new ways to foster connection and engagement between leaders and employees at every level in your organization.

More than ever before, employees in the modern workplace seek work environments that unlock creativity, make their lives more productive and fulfilling, and foster a sense of connection with their organization’s mission and purpose.

A critical first step for your organization to thrive in this new culture of work is to drive alignment of your people around shared purpose and goals. Leaders realize that organizations who do this well have an advantage in attracting and retaining an engaged workforce.

Here are four ways your organization can enable leaders and employees to connect with new live events in Microsoft 365:

1—Use live events to kickstart interactive discussions across your organization

Today, executives at Microsoft—including CEO Satya Nadella—use Microsoft 365 to connect and communicate with employees around the globe. Now, any company or organization with Microsoft 365 can create these moments of high engagement, where people are focused on leaders and their messages and ask questions to clarify or reinforce conversations in the community.

Using Microsoft Stream, Teams, or Yammer, you can create a live event wherever your audience, team, or community resides. Attendees receive notifications and can participate in real-time, with high-definition video and interactive discussion using web, mobile, or desktop.

Following an event, it’s easy to make the recording available on an event page, allowing you to watch the event on your own schedule and catch up quickly with powerful AI features that unlock the content of the event recording. The recording is automatically transcribed and detects changes in speakers—making it simple to search for content later.

For employees who are in different time zones or unable to attend live, the conversation keeps going, so they still feel connected to leaders and peers—helping to overcome geographical or organizational boundaries.

The event and recordings are powered by Microsoft Stream, the intelligent video service in Office 365.

Image of a laptop open to display a live event in Microsoft 365.

2—Foster sustained dialogue in open communities

Give everyone a voice—before, during, and after a live event in Microsoft 365—with Yammer communities that span functions or the entire organization. Providing a forum for employees to be heard is an important piece of transforming a culture. These communities are where people can come any time to raise ideas, concerns, or questions, and where leaders can reply in an authentic way.

An active Yammer community builds trust and a sense of connection and belonging. And it provides a forum where employees who might not feel comfortable speaking out during a live event can connect directly with leaders.

With inline message translation, live events in Microsoft 365 empowers people to express themselves in their own language.

3—Create an intranet site for leaders to share events, blogs, video, news, and resources

Communicate at scale as a leader with a continuous, online presence using content, conversation, and video channels within a SharePoint communications site. You can optimize for news distribution and blogs, and deepen engagement with related content, polls and surveys, and readership analytics.

This is also a great spot to share recorded events for later viewing. Simply create a dedicated page for each event where employees can submit questions and comments in advance. Leaders and organizers can then use this input to craft the messaging and content of the events.

4—Plan corporate communications and measure impact

Executive and internal communications may be managed by a team of one or a team of many—but it takes careful planning and execution to ensure success. Microsoft Teams—the hub for teamwork in Office 365—is ideally suited to work together in the creation and production of events and other executive communications. It provides an effective backstage for your live event, giving you a shared space to work with speakers and approve content before sharing with a broader audience.

Once you have begun engaging your audience, every message within a Yammer community has a visible count of how many people your post has reached. This helps both community organizers and employees understand what is being read. Group insights demonstrate how the knowledge and information created in the community benefit people—regardless of their membership status in the group. For example, passive visitors may gain value from group conversations and apply the information elsewhere in their daily work. You can also see the number of views for an event recording and across a channel, and how many people liked the video. Pages and news articles also have statistics to understand readership.

Empowering all leaders across an organization

Leadership, of course, does not just refer to organizational leaders. Leaders of communities may be subject matter experts, functional managers, or passionate individuals who are leading areas of expertise, practices, or interest groups. These same capabilities in Microsoft 365 can enable leaders at any level to create and sustain connection with their communities.

Patrick Yates, manager of Diversity and Inclusion at TDS Telecom, considers community connections and engagement an important part of the employee experience, and a boon to recruiting talent. “Younger generations entering the workforce especially want a modern, inclusive environment—to be part of something that’s larger than themselves.”

Connect your employees and leaders today

Experience the public preview of live events in Microsoft 365, and get started on connecting your leaders and employees today. We will be adding additional features and functionality based on your feedback in the Tech Community.

To create a live event, you will need an Office 365 E3 or E5 license and your admin must give you permission to do so. To attend a live event, you need an Office 365 license for authenticated users. Public (anonymous) access is possible in specific configurations.

To learn more, visit Connect leaders and employees on Office.com, and for more information on the intelligent event capabilities, visit Microsoft live events Tech Community.

The post 4 steps to engage employees with new live events in Microsoft 365 appeared first on Microsoft 365 Blog.

Bing Maps Autosuggest API GA Release

$
0
0

Introducing the Bing Maps Autosuggest API, the newest addition to the Bing Maps REST services. The Autosuggest API is used to return a ranked list of suggested entities based on a user's partial query. The service can return three possible entity types: Addresses (including roads), points of interest, and businesses (currently available in the US only with new markets coming soon).

A maximum of ten (10) autosuggested entities can be returned per request, and the returned entities can be delimited by country and culture. The response can be specified for either JSON or XML format.

The Autosuggest API is designed to help developers populate online query forms such as delivery addresses as well as map search bars. Check out this e-commerce online ordering form to see an example of how the Autosuggest API can be used in JavaScript to populate a list of suggested addresses. Another great example of an Autosuggest API usecase is LinkedIn’s “Your Commute” feature. Moreover, autosuggested entities can easily be displayed using the Bing Maps V8 SDK. For an example using JavaScript, the Bing Maps V8 SDK, and Bootstrap, see the Autosuggest API Browser.

Autosuggest API

Check out Bing Maps Autosuggest API and let us know what you think. You can connect with the team at the Bing Maps Forums to share feedback and let us know what you would like to see next.

- Bing Maps Team

R Generation: 25 Years of R

$
0
0

The August 2018 issue of Significance Magazine includes a retrospective feature on the R language. (I suggest reading the PDF version, also available for free access.) The article by Nick Thieme looks back at the 25 years since the R language was first conceived at Auckland University in 1992. It follows the history of R through the first public announcement in 1993, its first release as open source software in 1995, the formation of the R Core Group and the launch of CRAN in 1997, and the release of R version 1.0.0 on February 29, 2000.

Significance Aug 2018
Image credit: Significance (Wiley), August 2018

The article includes comments from many of the major players in the R project and from the R community, including Ross Ihaka and Robert Gentleman (R's creators), Peter Dalgaard, Hadley Wickham, Julia Silge,  Gabriela de Queiroz. The article is a great overview of the R phenomenon, its applications, and community, and you can read the entire article at the link below.

Significance: R generation: The story of a statistical programming language that became a subcultural phenomenon


Adventist Health System is enhancing healthcare delivery using Microsoft 365

$
0
0

Today’s post was written by Tony Qualls, director of enterprise technical services at Adventist Health System in Altamonte Springs, Florida.

Over the years, healthcare has changed from hospital-based care to preventive and continuous care that happens throughout an individual’s life—outside of hospital walls and inside patient homes and neighborhood clinics. Consequently, Adventist Health System is in the midst of a big transformation to a more consumer-centric organization to meet the needs of patients and families at every stage of health.

Our more than 80,000 employees are embracing this new care delivery model, and as many of them are frequently on the go, they need secure, quick access to information from anywhere.

With Microsoft 365, we’re able to give them access to the information they need in a secure, compliant environment. We’ve been a longtime user of Microsoft Office 365 to deliver the latest productivity innovations to our clinical and non-clinical employees. We migrated to Microsoft 365 to gain more flexibility with our licensing for Office 365 and for the Windows 10 operating system and Microsoft Enterprise Mobility + Security (EMS).

We have 28,000 Microsoft 365 E3 licenses for our office staff and 41,000 Office 365 F1 licenses for our Firstline team members—nurses, doctors, and other employees. These individuals carry laptops and tablets with them throughout the day or access shared devices using badge-tapping technology. With Microsoft 365, we can cost-effectively license the specific applications that employees need to accomplish various tasks throughout their workdays.

For example, our clinical staff uses Skype for Business Online to improve patient flow and connect physicians with remote patients. Now, we’re taking it to the next level with Microsoft Teams—probably the fastest-growing Office 365 application we have deployed. Everything’s in one place—SharePoint Online sites, files, chat, meetings, and Microsoft Planner. It’s so easy to use, and we find that after people get invited to one Teams channel, they turn around and create channels of their own to support other projects. With Teams, we have persistent conversations, documents, and other resources about a topic in one place, which helps groups focus and move faster. In addition, it’s a highly secure environment that we trust, and we can remain completely compliant with HIPAA and other healthcare regulations.

At Adventist Health System, we strive for excellence in all that we do. Our IT employees strive to be recognized as an industry leader. Utilizing Teams is just one way we are supporting our organization’s vision to be wholistic, exceptional, connected, affordable, and viable.

Communication is crucial to the success of any organization, and Adventist Health System is no different. The quicker we can share information, updates, and plans, the faster we gain buy-in from our team members. The clinical workspace thrives on rapid communication and collaboration around patient care. This, in turn, helps foster better outcomes and patient satisfaction.

It’s exciting to see the Teams roadmap incorporating artificial intelligence capabilities by offering speech-to-text and meeting transcription services. As we gather takeaways and valuable information from meetings, I am happy that Teams allows me to focus on listening to my staff and peers while it captures and transcribes meeting notes for later review.

There’s an abundance of innovation coming from Microsoft, and we’ve taken the approach of releasing new Office 365 applications directly to employees and letting user communities provide guidance, tips, and support on Yammer channels. This has been a great adoption model that has empowered employees to put these tools to work in ways that make sense for them.

Because Microsoft matches productivity innovation with security innovation, we can confidently utilize new technologies on tens of thousands of mobile devices. We’ve standardized on Windows 10 Enterprise, chiefly for security features such as default encryption. But EMS also includes a great bundle of security tools and licensing options that have significantly decreased our licensing costs while giving us enhanced security capabilities.

From a support perspective, Microsoft Intune and mobile email with Exchange Online have been tremendous timesavers. Employees had to unenroll and re-enroll devices in a previous email security program, and our infrastructure support team was inundated with support tickets around the need to resync mobile email accounts. But with Intune, employees download the Microsoft Outlook mobile app, we apply the correct policies, and they’re off and running.

With Microsoft 365, our clinical, support, and IT staffs are all better equipped to help Adventist Health System transform its business in a secure, compliant manner to meet the needs of today’s changing healthcare landscape.

—Tony Qualls

The post Adventist Health System is enhancing healthcare delivery using Microsoft 365 appeared first on Microsoft 365 Blog.

Microsoft Azure Data welcomes Data Platform Summit attendees

$
0
0

I am extremely honored to be delivering the keynote next week at the Data Platform Summit (DPS) in Bangalore. DPS is one of the events that I am looking forward to participating in as it will provide me with a pulse on data and analytics in the Asia Pacific region. More importantly, the event gives me a chance to connect with you — our customers, partners, and overall community.

As a preface, I want to share with you some of the exciting work happening on the Azure Data team at Microsoft and invite you to take a closer look. It is no secret that today’s mobile-first, cloud-first world is evolving to the intelligent cloud and intelligent edge, the new frontier for computing and data management. And IT decision makers and developers are at the forefront, driving this evolution.

We see three key trends that are defining and shaping the evolution of data management. 

  1. First, data continues to grow exponentially and it’s not stopping any time soon. The explosion of data creates an urgency to deliver insights.
  2. Second, the rate of cloud adoption is increasing. Investments in public cloud technologies drive the need to collect data and innovate further at a global scale.
  3. Finally, data fuels artificial intelligence. The more data that is collected and processed, the more accurate and powerful the AI algorithms become. 

Recognizing these trends, I’m excited to talk to the community about how the Azure Data team is chartering a set of priorities for data and analytics to help our customers and our community achieve more. Only Microsoft delivers a consistent and global platform optimized for hybrid cloud for all applications and data. We provide both the flexibility to maintain consistent hybrid cloud environments, and the rich choice of migration and modernization options.

Data modernization on-premises: Modernize apps to SQL Server 2017.

Last year, we released SQL Server 2017— a major update introducing cross-platform compatibility with Linux. With over 5.6 million downloads so far, this is the fastest adoption of any SQL Server release. For those of you running SQL Server 2008 and 2008 R2, you’d be interested to know that we recently announced Extended Security Updates, which helps you secure your workloads for three more years after the end of support deadline of July 9, 2019. This gives you more time to determine your future path — either upgrading to SQL Server 2017 or rehosting your applications to Azure with no code changes (see SQL Database Managed Instance below). Learn about the new features in SQL Server 2017 and SQL on Linux.

Data modernization to Azure: Lift, shift, and modernize your applications on database-as-a-service solutions.

If you’re looking to migrate your on-premise SQL Servers to the cloud, SQL Database Managed Instance is a great option that requires no application code changes. We expanded the Azure Hybrid Benefit program to include support for SQL Server. With this program, you can move your on-premises SQL Server licenses with active Software Assurance to Managed Instance, helping you save up to 55 percent*.  You can also leverage the free, self-guided process in the Database Migration Service to migrate at scale from multiple sources to your target database with minimal downtime. This includes OSS migrations to the Azure Database Services for PostgreSQL and MySQL.

Globally distributed apps: Migrate NoSQL applications with globally distributed database service.

Azure Cosmos DB was built for the cloud to support tomorrow’s modern app patterns and scenarios. Azure Cosmos DB is Microsoft's globally distributed, multi-model database. With the click of a button, Azure Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure's geographic regions, ideal for real-time personalization, big data, AI, gaming and IoT scenarios. You can easily unlock value and respond to customers anywhere in the world — with single-digit latency, backed by SLA guarantees across throughput, latency, availability, and consistency — something no other database service can offer.

Processing over 100 trillion transactions per day, Azure Cosmos DB is leveraged by customers like ASOS and Jet.com, who are using it to achieve massive scale and fuel business innovation. Moreover, we are seeing many customers migrate their existing NoSQL applications, such as MongoDB and Cassandra, to Azure Cosmos DB to get these industry-leading benefits.

Cloud scale analytics: Modernize data warehouse to leverage OSS and governance.

Companies are often times data rich, but insight poor. Integrating data systems is critical to solving this challenge. The faster you can unlock the power of data, the faster you can innovate. With SQL Data Warehouse, Azure Data Factory, and Power BI, you can do just that by creating your analytics hub while reducing costs. The latest version of SQL Data Warehouse, the Compute Optimized Gen2 tier, sets new performance standards for cloud data warehousing. Customers now get up to 5 times better query performance, 4 times more concurrency, and 5 times higher computing power compared to the previous generation. New instant data movement capabilities allow for efficient movement between data warehouse nodes.

We also recently announced the general availability of Azure Databricks, which combines the best of the Apache® Spark™ analytics platform and Microsoft Azure to help bring insights and enable collaboration.

As you can see, data is ubiquitous. We are enabling a portfolio of solutions to support the entire life cycle of data ingestion, exploration, prep, analysis, and archival. The most amazing things happen when developers bring together multiple databases and services to build truly unique end-to-end solutions and simply use the right tool for the job.

I am excited to see you all next week at DPS!

Rohan

*The cost does not include Software Assurance cost.

Azure Marketplace consulting offers: April

$
0
0

We continue to expand the Azure Marketplace ecosystem. In April, 73 consulting offers successfully met the onboarding criteria and went live. See details of the new offers below:

clip_image002

1-Day: Getting Started with Industrial Azure IoT: Create a roadmap for delivering an Azure IoT pilot in 30 days to connect industrial equipment to the cloud. Connect a chosen product line to the cloud with dashboards and alerts, ready for integration with your enterprise systems.

clip_image004

Advance Analytics Platform Modernization: 1-Wk POC: This limited implementation is designed to prove if the Azure Advanced Analytics Platform is right for your organization’s advanced analytics initiative.

clip_image006

App Modernization: 2-Wk Assessment: Why not see what the cloud can do for you? iLink systems can develop an incremental development roadmap for the application migration and modernization process and spearhead your company's digital transformation.

clip_image008

Application Portfolio Evaluation: 2-Wk Assessment: Altoros will assist you in identifying the key workloads to be migrated to the Kubernetes cluster, assessing application portability and developing the overall migration strategy.

clip_image010

Architecting Azure Solutions: 5-day Workshop: In this instructor-led workshop, deploy Azure solutions using built-in DevOps tools, such as Azure Resource Manager templates, deployments, resource groups, tags, and Role-Based Access Control.

clip_image012

AzStudio PaaS Platform: 1-hr Briefing: This session walks you through how our Configuration-as-a-Service (CaaS) and application building blocks enable rapid Platform-as-a-Service development or legacy .NET app modernization across your organization.

clip_image010[1]

Azure Analytics Solutions: 2-Day Virtual Workshop: This two-day, instructor-led course details how to operationalize end-to-end cloud analytics solutions using the Azure Portal and Azure PowerShell.

clip_image014

Azure Cloud Readiness Assessment (Remote): Are you considering moving your apps or infrastructure to Microsoft Azure? This two-day assessment will quantify the time, effort, and cost required to make the move to the cloud.

clip_image014[1]

Azure Cloud Readiness: 2-Day Assessment: Are you considering moving your apps or infrastructure to Microsoft Azure? This two-day assessment will quantify the time, effort, and cost required to make the move to the cloud.

clip_image008[1]

Azure Container Service: 10-Wk Implementation: Encapsulate your legacy applications in containers. Engineers at Altoros will enable smooth migration to Azure Container Service and help you leverage the containerized runtime environment and production-grade capabilities.

clip_image016

Azure Data Maturity: 3-Week Assessment: In three short weeks, Decisive Data will deliver an Azure data capability and maturity assessment, along with a complete BI roadmap and plan you can follow, step-by-step, toward a mature data culture.

clip_image018

Azure Data Platform: 3-Day Workshop: This workshop introduces the Azure Data Platform with a strategic overview, assessment, and kick-start proof of concept. Receive expert guidance from a senior BlueGranite consultant.

clip_image018[1]

Azure Databricks: 1-Day Workshop: In this on-site workshop, up to 10 attendees from your organization will receive a detailed overview of Azure Databricks, giving them an understanding of where and how it fits into the Azure Data Platform.

clip_image019

Azure Databricks: 1-Wk Proof of Concept: In this one-week to two-week proof of concept, BlueGranite experts will work with your organization to demonstrate Azure Databricks’ capabilities for data engineering, data science, and more.

clip_image020

Azure Developer Hackathon: 2-Day Virtual Workshop: This instructor-led workshop builds upon previous Microsoft Official Courseware or equivalent experience building ASP.NET and C# applications. Enhance your learning with real-world situations.

clip_image021

Azure Fundamentals: 2-Day Virtual Workshop: In this instructor-led workshop, students will be introduced to the principles of cloud computing and will become familiar with how these principles have been implemented in Microsoft Azure.

clip_image023

Azure Integration Framework: 5 Day Implementation: Sierra Systems can train your IT team to link any application’s source data, synchronizing your enterprise through the Microsoft Azure platform and, from that, to any connected application.

clip_image025

Azure IoT: 2-Day POC: Let MCA Connect show you how to connect an IoT device to Azure IoT Hub, flow the data through Stream Analytics, store data in Azure SQL Server/Azure Data Lake, and surface the data using Microsoft Power BI for analysis and alerts.

clip_image027

Azure IoT: 3-Day Workshop: During this three-day workshop, your team will learn about the Azure IoT platform and work directly with DMC's team of engineers and developers to create the technical strategy for your IoT solution.

clip_image028

Azure Machine Learning Services: 3-Wk PoC: Developing a proof of concept is a shortcut to understanding what value artificial intelligence can bring to your operations, validating the feasibility of your ideas. Altoros will help you to capture your business objectives in this regard.

clip_image023[1]

Azure Managed Services: 5 Day Implementation: By selecting Sierra Systems’ support, your environment receives Azure support, patching, monitoring, backups, security, and SQL Server and Storage on Azure.

clip_image030

Azure Migration Readiness: 6-Wk Assessment: A successful cloud migration starts with a data-driven understanding of your server infrastructure. This infrastructure assessment analyzes workload utilization and provides Azure migration recommendations and cost projections.

clip_image031

Azure SQL Data Warehouse: 4-Day Workshop: This hands-on, instructor-led training helps data warehouse developers and administrators adopt the MPP architecture found in Azure SQL Data Warehouse for scalable, high-performance analytics in the cloud.

clip_image030[1]

Azure Workload Migration: 8-Wk Proof of Concept: This server assessment analyzes workload utilization, provides migration recommendations and cost projections, and migrates an Infrastructure-as-a-Service workload or containerized app to Azure as a proof of concept.

clip_image033

BizTalk to Logic Apps Migration: 3-Day Assessment: The assessment will help you understand the feasibility and process of migrating some or all of your current BizTalk Server integration solutions to Logic Apps.

clip_image028[1]

Blockchain for Enterprise: 10-Day Assessment: During the assessment stage, experts at Altoros will help enterprises start their blockchain journey by setting business objectives and functional requirements, as well as estimate the costs and time needed for further adoption.

clip_image035

Cloud Architecture: 4-Week Assessment: This four-week Azure architecture assessment helps management, line-of-business, and IT teams validate the design of their cloud deployment and identify potential areas of improvement.

clip_image028[2]

Cloud Foundry Enablement: 10-Wk Implementation: Get a full-scale, production-ready Microsoft Azure installation deployed to the cloud infrastructure of your choice, with all required integrations set up and configured.

clip_image028[3]

Cloud Foundry Training Courses: 3-Day Workshop: This training by Altoros engineers covers building and operating Cloud Foundry clusters with BOSH. It also covers microservices architecture and includes a deep dive into deployment, configuration, and management.

clip_image037

Cloud Migration Platform: 1-Hr Briefing: Understand how Wipro's Cloud Migration Platform can help customers accelerate their journey to the cloud. This involves an overview of Wipro's platform and a demo of the solution.

clip_image039

Cloud Migration Service: 2-Wk Implmentation: This engagement is suitable for organizations that are considering migrating workloads to Microsoft Azure, whether the workloads are public, private, or hybrid.

clip_image041

Cloud Strategy Engagement: 3 Day Assessment: If your organization wants to explore what moving IT operations into the cloud entails, Synergy Technical can help define scope and assess the speed of change for improved agility.

clip_image043

Cloud Workload Cybersecurity: 3-Wk Assessment: Cloudneeti’s cloud security assessments help organizations discover, govern, and enforce security and compliance policies for Microsoft Azure and Office 365.

clip_image021[1]

Developing Azure Solutions: 4-Day Virtual Workshop: This instructor-led workshop will demonstrate how to take a web app and expand its functionality as part of moving it to Azure. The course does not require any previous experience with the ASP.NET platform.

clip_image045

Digital Transformation Journey 3-Day Workshop: If you are evaluating how to move your Microsoft apps to the cloud or are looking to build a roadmap, Microexcel is offering this workshop to evaluate the state of your cloud environment and provide a clear path ahead.

clip_image047

DR as a Service: 1-Week Implementation: Disaster recovery-as-a-service (DRaaS) allows organizations to provide a remote-site recovery solution for their IT server infrastructure at a low price point. Stratus Innovations Group offers low-cost, scalable disaster recovery.

clip_image049

Dynamics Nav on Azure: 4-Day Implementation (U.S.): Compusoft Advisors will perform a Microsoft Dynamics NAV implementation at the customer's location with an on-site assessment. This will involve deploying a Dynamics NAV application server in an instance of Azure Virtual Machines.

clip_image050

Dynamics Nav on Azure: 4-Day Implementation (Australia): Compusoft Advisors will perform a Microsoft Dynamics NAV implementation at the customer's location with an on-site assessment. This will involve deploying a Dynamics NAV application server in an instance of Azure Virtual Machines.

clip_image050[1]

Dynamics Nav on Azure: 4-Day Implementation (India): Compusoft Advisors will perform a Microsoft Dynamics NAV implementation at the customer's location with an on-site assessment. This will involve deploying a Dynamics NAV application server in an instance of Azure Virtual Machines.

clip_image049[1]

Dynamics Nav on Azure: 4-Day Implementation (U.K.): Compusoft Advisors will perform a Microsoft Dynamics NAV implementation at the customer's location with an on-site assessment. This will involve deploying a Dynamics NAV application server in an instance of Azure Virtual Machines.

clip_image051

Dynamics Nav on Azure: 4-Day Implementation (Canada): Compusoft Advisors will perform a Microsoft Dynamics NAV implementation at the customer's location with an on-site assessment. This will involve deploying a Dynamics NAV application server in an instance of Azure Virtual Machines.

clip_image052

EDW to Azure SQL Data Migration: 1-Day Workshop: This instructor-led workshop is intended for data professionals. In this workshop, you will migrate a retail chain from a data warehouse in an on-premises SQL Server into Azure SQL Data Warehouse.

clip_image021[2]

Enterprise Ready Cloud: 1-Day Virtual Workshop: This instructor-led workshop teaches individuals how to govern Azure deployments and distributed administration and how to secure remote connectivity and development work for their offshore developers.

clip_image054

FastStart | App Innovation: 6 - Wk Workshop: Marquam has developed this FastStart program to support organizations that want to maximize productivity by leveraging the latest Microsoft technologies, including Azure Bot Service and Azure Cognitive Services.

clip_image055

Implementing Azure Infrastructure: 5-Day Workshop: This workshop introduces students to Microsoft Azure and teaches them how to manage their infrastructure on Azure rather than on-premises.

clip_image056

Industrial Azure IoT: 30 day Proof of Concept: Create an industrial connected product pilot to securely connect equipment in the field to an Azure IoT Hub solution with dashboards, reports, and notifications.

clip_image028[4]

Infrastructure Capacity: 4-Day Assessment: Altoros cloud architects provide the strategic advice and technical expertise required to assess the current state of your IT infrastructure, elicit requirements, detect limitations, and provide recommendations.

clip_image058

Infrastructure Lift and Shift: 4-Wk Assessment: This four-week assessment creates a detailed plan and cost analysis for the migration of datacenters, via a lift-and-shift strategy, to Azure virtual machines and containers.

clip_image059

Integration Platform Modernization: 1-Week POC: This limited one-week proof-of-concept implementation is designed to prove if Azure Integration Platform-as-a-Service (iPaaS) is right for your organization’s hybrid integration platform initiative.

clip_image055[1]

Intelligent Analytics: 1-day Virtual Workshop: Learn real-time analytics without IoT. Enable intelligent conversation in a machine learning-enabled chat pipeline and apply analytics to visualize customer sentiment in real time.

clip_image060

Intelligent Factory: 2-Week Implementation: Quickly and easily connect devices, controllers, human-machine interfaces (HMIs), and edge-type software to a central IoT hub. The key piece of our architecture is the Stratus Innovations Group IoT Protocol Gateway Adapter.

clip_image052[1]

Intelligent Vending Machines: 1-Day Workshop: This instructor-led workshop details how to implement an IoT solution for intelligent vending machines. Use Azure Machine Learning to drive on-demand pricing, real-time analytics, and messaging flows.

clip_image052[2]

Internet of Things: 1 Day Virtual Workshop: This instructor-led workshop details how to implement an end-to-end solution analyzing high-velocity data in Azure. Learn to create a lambda architecture, filtering data for use in hot and cold paths.

clip_image021[3]

IoT for Business: 1-Day Virtual Workshop: In this instructor-led workshop, you will use the unique benefits of Internet of Things (IoT) technology to build a smart-city solution to help improve traffic and public transportation in New York City.

clip_image035[1]

IoT with Azure and Raspberry Pi: 1-Day Workshop: Gain hands-on experience with Azure IoT services and Raspberry Pi by creating a simple monitoring solution for temperature and humidity.

clip_image033[1]

Logic Apps: 10-Day Implementation: Synegrate will work with you to understand your requirements, create a high-level architecture, and implement a production-ready use case with Azure Logic Apps. By the end, your enterprise integration use case will be on Azure.

clip_image061

Logic Apps: 3-Day Assessment: In this assessment, Synegrate will help you understand the capabilities and advantages of Azure Logic Apps in relation to your current integration solutions.

clip_image062

Logic Apps: 3-Day Proof of Concept: This proof of concept will implement a single use case to showcase the feasibility of Azure Logic Apps as an enterprise integration solution for your organization.

clip_image063

Machine Learning Frameworks: 3-Day Workshop: Engineers at Altoros will provide insights into the under-the-hood mechanisms of popular machine learning frameworks, including TensorFlow, Caffe2, Deeplearning4j, PyTorch, and Keras.

clip_image065

Machine Learning: 5-Day Proof of Concept: This workshop is for technical and business leaders and is held on-site at the client’s facility. Day 1 focuses on business problems and use-case options. Day 2 reviews data and provides input. Days 3-5 cover machine learning.

clip_image063[1]

Migrating Workloads to Cloud: 10-Wk Implementation: Proficient in the open-source Cloud Foundry technology and its commercial distributions, Altoros assists companies in migrating production workloads to cloud environments.

clip_image063[2]

Migration to Azure Cosmos DB: 10-Day Assessment: During this assessment, Altoros will address data sources, legacy applications, security requirements, infrastructure, and database suitability for migration to Cosmos DB, and will provide an optimization and migration plan.

clip_image066

Mobile App Innovation: 1-Day Virtual Workshop: Attendees will be guided through an implementation of an end-to-end mobile baggage tracking system for a customer in the airline industry, and they will design an IoT solution to track the assets from any device.

clip_image066[1]

On-Premise Identity Infrastructure: 2-Day Workshop: This workshop teaches IT professionals how to integrate their on-premises Active Directory Domain Services environment with Azure Active Directory and how to use Azure Active Directory as a directory service.

clip_image067

On-Premises Core Infrastructure: 3-Day Workshop: This instructor-led workshop covers a range of components, including Azure Compute, Azure Storage, and network services that customers can benefit from when deploying hybrid solutions.

clip_image068

Permissioned Blockchain: 10-Wk Proof of Concept: Altoros assists enterprises in evaluating the potential of blockchain to address the specific needs of an organization. Altoros will investigate a variety of blockchain frameworks available on the market to implement the optimal solution.

clip_image069

PowerApps Cloud Challenge for Azure: 5 Day PoC: The volume of new Azure data sources is rapidly increasing, and so is the demand to manipulate this data with end-user tools. Sierra Systems assists you in achieving PowerApps business benefits quickly and cost-effectively.

clip_image070

Serverless Architecture: 1-Day Virtual Workshop: This instructor-led workshop focuses on setting up and configuring a serverless architecture within Azure using Azure Functions, Azure Logic Apps, Azure Event Grid, Azure Cosmos DB, and Azure Storage.

clip_image071

Smart Cloud Operations: 4-Wk Implementation: This Smart Cloud Operations package delivers the essential support and fast response you need to maintain your cloud infrastructure 24-7.

clip_image070[1]

SQL Server Hybrid Cloud: 1-day Virtual Workshop: In this instructor-led workshop, you will design a hybrid cloud disaster recovery solution to handle large spikes in load, strengthen security to encrypt PCI data, and implement archival strategies.

clip_image072

SQL Server Migration: 10-Day Implementation: Working in tandem with your database development and administration teams, Synegrate will execute an SQL migration plan developed as part of our SQL Server migration assessment.

clip_image072[1]

SQL Server Migration: 3-Day Assessment: This assessment will help you understand the pitfalls and challenges associated with a cloud database migration and will generate a clear plan for migrating your on-premises database workloads to Azure SQL Server.

clip_image073

Virtual Datacenter: 2-Day Implementation: Our Virtual Datacenter offering provides you with the ability to quickly scale up a public and hybrid cloud IT infrastructure, allowing you to leverage the innovative functionality and massive cloud IT economies-of-scale business model.

Automatic intelligent insights to optimize performance with SQL Data Warehouse

$
0
0

We are excited to announce that SQL Data Warehouse (SQL DW) serves you intelligent performance insights within the Azure portal! SQL DW is a flexible, secure, and fully managed analytics platform for the enterprise optimized for running complex queries fast across petabytes of data.

Continuously delivering on fully managed experiences, customers no longer need to monitor their data warehouse to detect data skew and suboptimal table statistics with this release. Data skew and suboptimal table statistics are common issues that can degrade the performance of your data warehouse if left unchecked. At no additional cost, SQL DW surfaces intelligent insights for all Gen2 data warehouses and is tightly integrated with Azure Advisor to deliver you best practice recommendations. SQL DW analyzes your data warehouse collecting telemetry and surfaces recommendations based on your active workload. This analysis happens on a daily cadence where you can download recommendations, configure certain subscriptions to be analyzed, or postpone recommendations from being generated.

To check for recommendations, visit the Azure Advisor portal:

AzureAdvisor_0

image

AzureAdvisor_2

To generate these recommendations yourself, you can run the following T-SQL script and identify the specific tables being impacted by skew and statistics. For feedback on recommendations, please reach out to sqldwadvisor@service.microsoft.com or click on the ‘Feedback’ button within the portal. Stay tuned for additional recommendations!

Next Steps

Realtime Transit Trip Updates Added to CalcRoute API

$
0
0
We are announcing the addition of real-time transit trip updates to the CalcRoute API. Real-time transit data is made available by a limited set of transit agencies who provide their data in real-time format. We have coverage provided by 100 agencies in metro areas across the world including New York, Chicago, Boston, Los Angeles, Toronto, Houston, and Baltimore. Currently, the 4 markets where coverage exists are the United States, Canada, Australia, New Zealand, and the Netherlands, the last of which has coverage nationwide. The addition of real-time trip updates means we now 1) recommend better routes that accounts for these updates and 2) expose these updates to developers in the API response’s childItineraryItems object:

 

childItineraryItems:

[

{

compassDirection: "",

details:

[

{

maneuverType: "TransitDepart",

mode: "Transit",

names:

[

"Washington St @ E Newton St"

],

roadType: "None"

}

],

exit: "",

iconType: "None",

instruction:

{

formattedText: null,

maneuverType: "TransitDepart",

text: "Depart: Washington St @ E Newton St"

},

isRealTimeTransit: true,

maneuverPoint:

{

type: "Point",

coordinates:

[

42.338763,

-71.073677

]

},

realTimeTransitDelay: -71,

realTimeTransitTimeOfUpdate: "2018-07-26T17:56:19.0000000-04:00",

sideOfStreet: "Unknown",

time: "/Date(1532639269000-0700)/",

tollZone: "",

transitStopId: 32279,

transitTerminus: "",

travelDistance: 0,

travelDuration: 0,

travelMode: "Transit",

tripId: 94599

},

 

Definitions for the 3 new fields:
  • isRealTimeTransit - Indicates if the trip schedule is from a realtime update or from a static schedule
  • realTimeTransitDelay – Indicates the number of seconds of the delay the train is delayed from the expected arrival time as indicated by the static schedule
  • realTimeTransitTimeOfUpdate – Indicates the time (with local time offset from UTC) when the real time update was last updated by the real time feed provider

If a real time update is provided, this means that the time field has been updated to reflect the real time update. To retrieve the original time scheduled in the static timetable for that leg of the trip, simply subtract the realTimeTransitDelay from time.

You can find a code-sample that leverages real-time trip updates here: https://github.com/v-chrfr/real-time-sample. The sample generates the viewer included below:

Reatime Route Transit Viewer

- Bing Maps Team

Getting started with IoT: what do you do with all that data?

$
0
0

The Internet of Things (IoT) is all about generating data, helping organizations discover new insights about their operations from that data, and identifying opportunities to become more productive and innovative. In the first post in this series, we introduced Getting started with IoT: how to connect, secure, and manage your “things". But once your IoT devices are deployed, secured, and provisioned through Azure IoT Hub, the question remains: where do you send all of the data?

Information such as the telemetry data generated by your devices and sensors is time-sensitive. Other information isn’t. The role of Azure IoT Hub is to determine how each data packet needs to be prioritized and where to send it. These messages fall into four general categories:

  • IoT Hub message routing: Includes alerts and time sensitive telemetry data
  • File uploads: Media files and large batches of telemetry data that are uploaded by intermittently connected devices, or compressed to conserve bandwidth
  • Device Twin reported properties: Device state information such as capabilities and conditions, or the status of workflows like firmware or configuration updates
  • IoT Hub integration with Event Grid: An alternative to message routing, Event Grid integrates IoT Hub Events into Azure and non-Azure services. These events could include such things as the creation or deletion of an IoT device.

Message Routing versus Event Grid

Message Routing and Event Grid both have similar capabilities, so it can be difficult to know when you should choose one over the other. While both are designed to be resilient and ensure that messages get through, they are each designed for different scenarios.

Azure Message Routing

  • Supports limited endpoints, but you can build connectors to other endpoints (out of the box, it connects to Event Hub, Storage Hub, Service Bus Queue, and Service Bus topics)
  • Designed for:
    • Sending telemetry data to other services
    • Communicating back and forth between the device and back-end
    • Routing messages to custom endpoints based on what’s in the header or body of a message

Event Grid

  • Supports more endpoints and can be extended outside the Azure ecosystem to connect with third-party business apps
  • Can send alerts about an event to multiple endpoints
  • Though it can’t guarantee the order in which events are sent, it can include time stamps to help preserve a chronological record
  • Designed for:
    • Creating serverless computing applications
    • Automating IT operations
    • Integrating with business apps to trigger an action whenever a particular event takes place, such as the creation of a new virtual machine. 

Knowing how to handle the information you generate, and where to route it, can be a challenge. But once you start establishing connections, you can begin to comprehend the potential of IoT to transform business.

Learn more about building out your IoT capabilities and see how easy it is to get started with your first deployment. Download the Azure IoT developer guide and learn more about incorporating IoT into your business.

Improve collaborative care and clinical data sharing with blockchain

$
0
0

Currently, the healthcare industry suffers major inefficiencies due to diverse uncoordinated and unconnected data sources/systems. Collaboration is vital to improve healthcare outcomes. With digitized health data, the exchange of healthcare information across healthcare organizations is essential to support effective care collaboration. Traditional health information exchanges have had limited success.

Blockchain offers new capabilities to greatly improve health information exchange. At Microsoft we are working to maximize the benefits of solutions that have the potential to improve patient outcomes, reduce healthcare costs, and enhance the experiences of patients and healthcare workers. With that I’d like to announce a new partner solution and pilot for a better health information exchange that uses blockchain, and runs in Microsoft Azure.

Interoperability and exchanges

Grapevine World, one of the leaders in the application of blockchain technology, make use of the Institute for Healthcare Enterprise (IHE) methodology for interoperability. They employ multiple blockchains for tracking data provenance, and provide a crypto token as means of exchange within their ecosystem.

image

Grapevine World is a decentralized ecosystem for the seamless exchange and utilization of health data in a standardized, secure manner. In collaboration with the University of Southampton and Tiani Spirit, they have developed a new blockchain-enabled platform using the trusted Microsoft Azure cloud platform to track the provenance of healthcare data. The intent is to break down data barriers, and simplify the access and ability to use health data by professionals.

Data provenance: crucial to healthcare

The need to know the origin and quality of medical data has long been recognized in clinical research. Data provenance is the foundation of data quality and is commonly implemented by automatically capturing the traces of data manipulation over space and time.

This pilot aims to demonstrate the value of combining market-proven interoperability standards in health data exchange (IHE) and blockchain technology (Hyperledger Fabric) for tracking and assessing health data provenance. The pilot will act as a trial run to assess the potential of the solution for clinical trial matching for one of Grapevine’s early adopters, a Forbes 100 pharmaceutical corporation (requesting to remain unnamed at the time of the announcement).

“Following a successful pilot execution with our early adopter, we are excited to receive strong interest from multiple health and life science organisations to subsequently adopt our solution. Benefiting from Microsoft’s global reach and strong support from the interoperability community, we meet a growing market need and will together overcome the current limitations for achieving a truly connected healthcare community.”

Wernhard Berger, Chief Business Development Officer and Co-Founder of Grapevine World.

The clinical trial matching use case serves only as an initial launching pad for Grapevine’s platform, which is designed to facilitate the consented data access for various types of organizations with a need for large-scale health data (universities, med- and biotech companies, etc.).

Blockchain holds great potential for healthcare consortiums to collaborate to improve the quality of care, lower costs, and improve the experience of patients and healthcare workers. Powered by Microsoft Azure, Grapevine can overcome many of the challenges preventing many blockchain-based projects from reaching production stage, and limiting real-world adoption of this emergent technology in healthcare. Azure delivers industry-leading cloud-based security and compliance capabilities to empower healthcare consortiums to leverage blockchain to its full potential to help improve healthcare.

Get a demo, or start prototyping

Find more information about how this joint solution can benefit your organization or request a remote demo. To get started with rapid prototyping your blockchain solution, see the Azure Blockchain Workbench. Once created, you can also deploy it as an Ethereum blockchain on Azure. The Azure Blockchain Workbench will also be adding support for both the Hyperledger Fabric and R3 Corda Blockchain platforms. The Azure Blockchain Workbench enables you to accelerate your prototyping, technical POCs and pilots. It frees you to focus on results, and business value rather than blockchain technologies and deployment complexities.

I post regularly about new developments in healthcare, blockchain, and cloud computing on social media. If you would like to follow me you can find me on LinkedIn and Twitter. What is your take on health information exchange enabled by blockchain? What other use cases and solutions do you see in healthcare using blockchain? I welcome your feedback, comments, and questions.


Managed Disks migration now available in the Azure Portal

$
0
0

We are excited to announce the capability of converting VMs with unmanaged Disks to Managed Disks in the Azure Portal! Now you can migrate to Managed Disks in single click without requiring PowerShell or CLI scripts.

Our customers love the benefits of using Managed Disks. Many customers have already adopted Managed Disks since we launched it. If you have not started using Managed Disks, here’s a quick recap of all the capabilities to motivate you to use Managed Disks.

  • Scale your application without worrying about storage account limits.
  • Achieve high-availability across your compute and storage resources with aligned fault domains.
  • Create VM Scale Sets with up to 1,000 instances.
  • Integrate disks, snapshots, images as first-class resources into your architecture.
  • Secure your disks, snapshots, and images through Azure Role Based Access Control (RBAC)

To read more about the benefits of Managed Disks, see Azure Managed Disks Overview.

Migrating to Managed Disks in Azure Portal

Migrating in the Azure Portal is a pretty simple experience. Let’s walk through this process.

If you are using a VM with unmanaged disks, you will see an info banner on the VM overview blade.

vm1

Once you click on the banner, it will launch the migration blade.

vm2

Please note, if your VM is in an Availability Set, the migration blade will prompt you to migrate the Availability Set first.

One the migration starts, you will be able to see the status of the migration as indicated in the screenshot below.

vm3a

Once back in the Resource Group view, you will now see an additional disk resource. You’ll see one disk for every OS & Data Disks that were attached to the VM.

vm4

You can also click on the Disks item in the sidebar to view additional details about the disks of the VM.

vm5

Automating migration to Managed Disks

If you’d like to automate migration to Managed Disks, see instructions below using

Real example: improve accuracy, reduce training times for existing R codebase

$
0
0

When you buy an item on a favored website, does the site show you pictures of what others have bought? That’s the result of a recommendation system. Retailers have been building such systems for years, many built using the programming language R. For older implementations of recommender systems, it’s time to consider improving performance and scalability by moving these systems to the cloud —the Azure cloud.

image

Problem: to re-host and optimize an existing R model in Azure

Recently, we were asked to help a customer improve the performance and process surrounding the R implementation of their recommender solution and host the model in Azure. Many of their early analytic products were built in R, and they wanted to preserve that investment. After a review of their solution, we identified bottlenecks that could be vanquished. We worked together to find a way to significantly improve the model training time using parallel R algorithms. Then we worked to streamline how they operationalized their R model. All the work was done using libraries available with Microsoft Machine Learning Server (R Server). 

The architecture: Azure SQL + Machine Learning Server

There are several components and steps to the solution. We needed a database for hosting the training data and used Azure SQL.  We also needed a mechanism to expose the R model as a REST endpoint and used Microsoft Machine Learning Server (MLS) in Azure to host the parallel R algorithms but with a twist: MLS is installed on virtual machines in Azure. One is dedicated to model training (DEV); the second hosts the model in production (OPS). The separation allows for different machine optimizations. The DEV server is configured for compute-intensive workloads (more memory, optimized chipset); the OPS server is smaller and optimized for responding to web service calls.

Recommended next steps

Read Optimize and reuse an existing recommendation system to learn details on the architecture of the solution, and get explanations to help you implement your own version. We hope you find this helpful and we welcome your feedback.

Tiered Compilation Preview in .NET Core 2.1

$
0
0

If you are a fan of .NET performance there has been a lot great news lately such as Performance Improvements in .NET Core 2.1 and Announcing .NET Core 2.1, but we’ve got more. Tiered compilation is a significant new performance feature that we are making available as a preview for anyone to try out, starting in .NET Core 2.1. In many scenarios that we have tested, applications start faster and run faster at steady state. All it needs from you is a smidgen of curiosity, a project that runs on .NET Core 2.1, and a trivial change to your environment variables or project file to enable it. In the rest of this post we’ll cover what it is, how you use it, and why it is the hidden gem of the 2.1 release!

What is Tiered Compilation?

Since the beginnings of .NET Framework, every method in your code was typically compiled once. However there are tradeoffs to be made when deciding how to do that compilation that will affect the performance of your application. For example the JIT could do very aggressive optimization and get great steady-state performance, but optimizing code well is not a quick endeavor so your application would start very slowly. Alternately the JIT could use very simple compilation algorithms that run quickly so your application starts fast, but the code quality would be much worse and steady-state application throughput would suffer. .NET has always tried to take a balanced approach that would do a reasonable job at both startup and steady-state performance, but using a single compilation means compromise was required.

The Tiered Compilation feature changes the premise by allowing .NET to have multiple compilations for the same method that can be hot-swapped at runtime. This separates the decision making so that we can pick a technique that is best for startup, pick a second technique that is best for steady-state and then deliver great performance on both. In .NET Core 2.1 this is what Tiered Compilation aims to do for your application if you opt-in:

  • Faster application startup time – When an application starts it waits for some MSIL code to JIT. Tiered compilation asks the JIT to generate the initial compilation very quickly, sacrificing code quality optimization if needed. Afterwards, if the method is called frequently, more optimized code is generated on a background thread and the initial code is replaced to preserve the application’s steady state performance.
  • Faster steady-state performance – For a typical .NET Core application most of the framework code will load from pre-compiled (ReadyToRun) images. This is great for startup, but the pre-compiled images have versioning constraints and CPU instruction constraints that prohibit some types of optimization. For any methods in these images that are called frequently Tiered Compilation requests the JIT to create optimized code on a background thread that will replace the pre-compiled version.

Faster? How much faster?

Part of reason we are releasing this as a preview is to learn how it performs for your apps, but below are some examples we have tested it on. Although very scenario dependent, we hope these results are typical of what you will see on similar workloads and that the results will continue to improve as the feature matures. The baseline is .NET Core 2.1 RTM running in a default configuration and all the numbers are scaled so that baseline always measures 1.0. In this first group we’ve got a couple of Tech Empower tests and Music Store, our frequent sample ASP.NET app.

 

Although a few of our ASP.NET benchmarks benefited particularly well (MvcPlaintext RPS up over 60% – wow!), tiered compilation is in no way specific to ASP.NET. Here are some example .NET Core command line apps you might come across in daily development:

How will your apps fare? It is much easier to measure than to predict but we can offer a few broad rules of thumb.

  1. The startup improvements apply primarily to reduced time jitting managed code. You can use tools such as PerfView to determine how much time your app spends doing this. In our testing time spent jitting would often decrease by about 35%.
  2. The steady-state improvements apply primarily to applications that are CPU bound where some of the hot code is coming from the .NET or ASP.NET precompiled libraries. Profilers such as PerfView can help you determine if your app is in this category.

Trying it out

A small disclaimer, the feature is still a preview. We’ve done a lot of testing on it but haven’t enabled the feature by default because we want to gather feedback and continue to make adjustments. Turning it on might not make your app faster or you might run into other rough edges we’ve missed. We are here to help if you encounter issues and you can always disable it easily. You can turn this on in production if you like, but we strongly suggest testing it out beforehand.

There are several ways to opt-in, all of which have the same effect:

  • If you build the application yourself using .NET 2.1 SDK – Add the MSBuild property <TieredCompilation>true</TieredCompilation> to the default property group in your project file. For example:
  • If you run an application that has already been built, edit runtimeconfig.json to add System.Runtime.TieredCompilation=true to the configProperties. For example:
    {
      "runtimeOptions": {
        "configProperties": {
          "System.Runtime.TieredCompilation": true
        }
      },
      "framework": {
        ...
      }
    }
  • If you run an application and don’t want to modify any files, set the environment variable
 COMPlus_TieredCompilation=1

For more details about trying it out and measuring performance, check out the Tiered Compilation Demo

Getting Technical

Curious how it works? Fear not, understanding these internal details are not necessary to use tiered compilation and you can skip this section if you wish. At a glance the feature can be divided into four different parts:

  • The JIT compiler which can be configured to generate assembly code of differing quality – Surprisingly to many people, this has not been the focus in the feature so far. Going back to almost the beginning of .NET the JIT supported a default compilation mode and a no optimization compilation mode that is used for debugging. The normal mode produces better code quality and takes longer to compile whereas ‘no optimization’ mode is the reverse. For Tiered Compilation we created new configuration names ‘Tier0’ and ‘Tier1’, but the code these configurations generate is largely identical to the ‘no optimization’ and ‘normal’ modes we generated all along. Most of the JIT changes so far have involved making the JIT generate code faster when ‘Tier0’ code is requested. We hope to continue improving Tier0 compilation speed in the future, as well as improve the code quality produced at Tier1.
  • The CodeVersionManager which keeps track of different compilations (versions) of code that exist for the same method – At its most basic this is a big in-memory dictionary that stores the mapping between .NET methods in your application and a list of different assembly implementations the runtime has at its disposal to execute the method. We use a few tricks to optimize this data structure but if you want to dig in on this aspect of the project our very nice spec is available.
  • A mechanism to hot-swap at runtime between different assembly code compilations of the same method – When method A calls method B, the call lands on a jmp instruction. By adjusting the target of the jmp instruction the runtime can control which implementation of B is executed.
  • A policy that decides what code versions to create and when to switch between them – The runtime always creates Tier0 first which is either code loaded from a ReadyToRun image, or code jitted with minimal optimization. A call counter is used to determine which methods are run frequently and a timer is used to avoid the work of creating Tier1 too soon during startup. Once both the counter and timer are satisfied the method is queued and a background thread compiles the Tier1 version. For more details check out the spec.

Where do we go from here?

Tiered Compilation creates a variety of possibilities we could continue to capitalize on well into the future. Historically our JIT has been constrained to investing in techniques relatively near the middle ground positions of speed and code quality that .NET has always needed. Now that the runtime can capitalize on more extreme tradeoff positions we’ve got the leeway and the incentive to push the boundaries, both to make compilation faster and to generate higher quality code. With runtime hot-swapping of code .NET could start doing more detailed profiling and then use the runtime feedback to do even better optimization (profile guided optimization). Such techniques can allow code generators to out-perform even the best static optimizers that don’t have access to profile data. Or there are yet other options such as dynamic deoptimization for better diagnostics, collectible code to reduce memory usage, and hot patching for instrumentation or servicing. For now our most immediate goal remains a bit closer to the ground – make sure the functionality in the preview works well, respond to your feedback, and finish this first iteration of the work.

Wrapping Up

We hope Tiered Compilation gives your applications the same great improvements as our benchmarks and we know there is even more untapped potential yet to come. Please give it a try and then come visit on github to give us your feedback, discuss, ask questions, and maybe even contribute some code of your own. Thanks!

General availability of instance size flexibility for Azure Reserved Virtual Machine Instances

$
0
0

This blog post was co-authored by Arabinda Mohapatra, Prinicipal Engineering Manager, Microsoft Azure.

We are excited to announce instance size flexibility for Azure Reserved Virtual Machine Instances, a new feature that makes your reserved instance purchasing and management even simpler by applying reservation discounts to different virtual machine (VM) sizes within the same VM group.

With instance size flexibility, you don’t have to deploy the exact same VM size to get the benefit of your purchased Azure Reserved Instances (RI) as other VM sizes within the same VM group also get the RI discount.

For example, consider the following VM groups:

VM name VM group Ratios

Standard_D2s_v3

DSv3 Series

1

Standard_D4s_v3

DSv3 Series

2

Standard_D8s_v3

DSv3 Series

4

Standard_D16s_v3

DSv3 Series

8

Standard_D32s_v3

DSv3 Series

16

Standard_D64s_v3

DSv3 Series

32

If you have purchased 1 Azure Reserved Instance for a D2s_v3 VM, then the following VM Instances could be covered through your reserved instance purchase if they are in the same region:

  1. 1 Standard_D2S_v3
  2. 1/2 Standard_D4s_v3
  3. 1/4 Standard_D8s_v3
  4. 1/8 Standard_D16s_v3
  5. 1/16 Standard_D32s_v3
  6. 1/32 Standard_D64s_v3

Adding to the differentiated simplicity of Azure Reserved Instances, instance size flexibility applies your Azure Reserved Instance benefits to the infrastructure costs of your VM regardless of its operating system including Windows Server, Linux, RHEL, and more. You will be charged just for any additional software running in your VMs as applicable.

Instance size flexibility will be enabled by default for any existing Azure Reserved Instance with shared scope, while for reserved instances with single scope you can enable instance size flexibility from the reservation configuration. Read the documentation to learn how to change the scope for an Azure Reserved Instance

Next steps

To get started, please see our documentation to learn how to toggle instance size flexibility option for Single Reserved Instance.

Microsoft Inspire 2018 Bing Maps APIs session recordings are now available

$
0
0

The Bing Maps team was in Las Vegas, Nevada July 15th through the 18th, for Microsoft Inspire 2018. If you were not able to attend, the sessions are now available for viewing on the Microsoft Partner Network.

How Partners are Building Intelligent Experiences with Search and Geospatial

 

Breakout synopsis: The Bing APIs offer a wide range of solutions for customers to enable customized apps and services. From Cognitive Services search engine services (web, image, visual, news, video, entity, and more) to geospatial mapping and fleet management solutions, these enterprise grade APIs allow customers the ability to create customized, intelligent and immersive experiences harnessing the power of Bing. Join this session and learn how partners are using Bing APIs.

View session recording

Open Source Tools and Developing with Bing Maps and Search APIs

 

Theater synopsis: Open source tools for developers are changing the way companies can integrate the latest location technologies from Bing Maps or intelligent search from using Bing APIs. In this session we'll review several of these new tools and provide insight on how you can accelerate your geospatial application development.

View session recording

Mobile Workforce Location Tracking with Bing Maps

 

Theater synopsis: If your business relies on coordinating your mobile workforce, this theater session is essential viewing. We'll look at Bing Maps Fleet Tracker which leverages the mobile phones your staff is already carrying to provide a real-time dashboard of where your assets are located. You’ll learn how to do a one click deployment to have your tracking solution live on Azure in just minutes, including location based alerts.

View session recording

For more information about the Bing Maps Platform, go to https://www.microsoft.com/maps/choose-your-bing-maps-API.aspx.

- Bing Maps Team

Viewing all 10804 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>