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

Start using Microsoft 365 to accelerate modern compliance

$
0
0

Today’s post was written by Rudra Mitra, Partner Director of Microsoft 365 Security and Compliance.

With more than 200 updates from 750 regulatory bodies a day, keeping up to date with all the changes is a tremendous challenge. As privacy regulations, like the General Data Protection Regulations (GDPR), continue to evolve, compliance requirements can seem complex to understand and meet. However, when you store your data in the Microsoft Cloud, achieving compliance becomes a shared responsibility between you and Microsoft. Take the National Institute of Standards and Technology (NIST) 800-53 security control framework as an example—Microsoft helps you take care of 79 percent of the 1,021 controls, and you can focus your efforts on the remaining 21 percent. Additionally, Microsoft provides you with a broad set of security and compliance solutions to more seamlessly implement your controls.

Take a look at how Johnson Controls, an energy and technology company, uses Microsoft 365 solutions to manage massive amounts of data and meet their security and compliance needs.

In addition to a number of investments made over the last year to support GDPR compliance and the privacy rights of individuals, we hear from you that organizations need more built-in capabilities to proactively achieve modern compliance. Therefore, we are working diligently to bring more artificial intelligence (AI) powered, user-centered, and integrated compliance solutions into Microsoft 365. Today, we’re announcing new and expanded capabilities that support your organization’s compliance journey.

Assess and manage your compliance for GDPR and more

Conducting ongoing risk assessments of your information management systems is a crucial activity to help your organization understand the effectiveness of security, compliance, and privacy controls; recognize the risks; and make appropriate plans to remediate when needed.

We expanded Compliance Manager to offer 12 assessments, including security control frameworks, such as NIST CSF and CSA CCM, and regulated industry standards like FFIEC and FedRAMP. These assessments can help you proactively enhance your data protection controls and meet compliance obligations. Learn more about this update in our Tech Community blog.

Screenshot shows a Standard Assessment in Compliance Mananger.

Harness intelligence to protect and govern your most important data

To ensure effective protection and governance around your most important data, you should implement intelligent solutions and processes to automatically discover, classify, label, and monitor this data—no matter where it lives or travels.

The unified labeling experience in Microsoft 365, now generally available, provides organizations with a more integrated and consistent approach to creating, configuring, and automatically applying comprehensive policies to protect and govern data across devices, apps, cloud services, and on-premises locations. This new approach gives customers a single destination to create and configure data sensitivity labels for both Azure Information Protection and Office 365, so you can set up sensitivity and retention labels and policies in the same place. These labels can be used to enforce policy across our information protection services—for example, Windows Information Protection will be able to understand the presence of a data sensitivity label in a document and apply policy to protect that data on the device.

Image shows labeling capabilities in Security and Compliance.

The unified labeling experience is complemented by user experiences built into Office apps and Windows—no plug-ins or add-ons required. This native labeling is now available in public preview for Office apps on Mac, iOS, and Android—giving customers a labeling experience they are familiar with if they are already using the Azure Information Protection client on Windows. We also support a growing ecosystem of third-party apps and security solutions. You can now preview the ability to open protected PDF files directly within Adobe Acrobat on Windows.

Additionally, our Information Protection SDK is now generally available, making it easy for ISVs and third-parties to build labeling and protection experiences into their apps and services.

In addition to the new unified labeling experience, we have several updates to Microsoft 365 data governance capabilities. First, you can now auto-apply a label to Exchange Online content and to files associated with a specific content type in SharePoint Online, such as tax documents or human resources information. Once you map a content type to a retention label with an auto-classification query, you can auto-apply retention and deletion policies to all files with that content type. This new capability enables you to align labels to your existing information architecture and governance policies.

We also made it easier for you to configure complex record retention schedules for your departments, locations, and categories with the new file plan capability, now available in public preview. The file plan capability allows you to import or export the retention plan as a template and bulk edit labels, providing a more robust way to manage your record retention policies.

Image shows a file import being validated in Security and Compliance.

Finally, long-term audit log availability is now coming to public preview for Microsoft 365 and Office 365 E5 subscribers. This is an important update for organizations that need long-term access to audit logs for regulatory or security purposes. The audit log availability has now increased from 90 days to one year.

Learn more about all of these data governance updates at the Tech Community blog.

Enforce zero-standing access to your sensitive data

For organizations looking to protect and control their data, governing privileged access can reduce the risk of data compromise and help meet compliance obligations regarding access to sensitive data. Built on the principle of no standing access, where admins do not have access by default, we are announcing the general availability of privileged access management in Office 365. This feature enables organizations to govern privileged access by requiring admins to go through an approval process and gain temporary permissions to perform high-risk tasks like a journal rule, which is a task that can expose and exfiltrate data by copying messages to an external shadow mailbox. Once an admin elevates permissions to execute the high-risk task, it can be automatically or manually be approved before access is granted—either way all activities are logged and auditable.

Privileged access management is available in the Microsoft 365 Admin Center, and organizations can now also manage Customer Lockbox requests and Data Access requests from Azure Managed Apps from a single management pane for privileged access to your Microsoft 365 data. Read more details on the Tech Community blog.

Image shows an approved Privileged Access request in Outlook.

Proactively safeguard your sensitive emails with insights

We’re also sharing a few new enhancements in Office 365 Message Encryption that enable organizations to more seamlessly collaborate on and proactively protect their sensitive emails. First, to further enable collaboration for consumer recipients, Office 365 Message Encryption now offers organizations the option to control whether attachments should be encrypted for the encrypt-only template, so that recipients can have full permissions to share the attachment with anyone—this feature is generally available today.

To help IT admins proactively protect and control sensitive emails, organizations can monitor encrypted messages by viewing reports on encrypted messages. The new reporting dashboard in public preview provides granular details such as message ID, along with sender and recipient information. IT admins can use the insights to proactively adjust and apply policies to sensitive emails. To learn more about these capabilities and more, read the Tech Community blog for details.

Image shows a message encryption report in Security and Compliance.

Streamline compliance investigations process with enhanced Search & Tagging capabilities

Litigation and regulatory demands, like GDPR, are requiring organizations to be more efficient at discovering information in a timely manner. Organizations also have a responsibility to support internal investigations such as corporate fraud, discrimination, work rule violation, and other misconduct.

To further streamline the process of identifying relevant data, the new Search & Tagging feature in Advanced eDiscovery, now generally available, enables you to find the most relevant information within an existing eDiscovery case, using keywords, metadata, and analytics capabilities like Themes and Relevance Score. Additionally, you can preview and organize the data using case-specific tags, which can help you save time and cost when reviewing documents. Learn more about Search & Tagging.

Address global data residency needs with Multi-Geo Capabilities

Increasingly, governments around the world are enacting laws that mandate data residency for cloud data. Global companies are often challenged with digitally transforming with the cloud and staying in compliance with their data residency requirements.

Image shows Multi-Geo capabilities in Office 365.

Multi-Geo Capabilities in Office 365 can help address these concerns and make it easy for companies to meet their global data residency needs and empower every employee with a modern productivity experience. Earlier this year, we launched Multi-Geo Capabilities for Exchange Online and OneDrive, giving you controls over the country/region where each employee’s mailbox content and files are stored at-rest.

In 2019, we’re rolling out Multi-Geo Capabilities in SharePoint Online and Office 365 Groups, letting you control the country/region of SharePoint Online Team Sites and Office 365 Group content such as files, associated SharePoint Sites, and group mailboxes. Learn more about Multi-Geo Capabilities.

Learn more about the Microsoft 365 Compliance solutions

Our investment in data privacy and compliance is beyond the GDPR, and we want to help you make compliance a less burdensome process, so you can focus on your core work, to empower employees to achieve more. You can find more resources below to learn more about the compliance solutions Microsoft 365 provides:

The post Start using Microsoft 365 to accelerate modern compliance appeared first on Microsoft 365 Blog.


A new vision for modern work management with Microsoft Project

$
0
0

At Microsoft, our mission is to empower every person and every organization on the planet to achieve more. Today, I’m pleased to announce a new vision for Microsoft Project and three new services designed to help people work together more efficiently.

Over the last few years, the basic organizing concept for work—the project—has changed significantly. Once a well-defined set of tasks, people, and milestones, today’s projects take on many shapes and sizes. They can be formal or ad hoc. They can last a few hours or go on for years. They can be assigned to a small group or cut across many large organizations.

As a result, whether we realize it or not, we have all become project managers. And to stay on top of the ever-shifting requirements of our day-to-day jobs, we need tools that are simple enough for anyone to use, flexible enough to support any project type, powerful enough to handle initiatives of any size, and transparent enough to provide visibility across the organization.

Modern work management

Introducing modern work management with Microsoft Project. It all starts with Home, a new service that allows you to see and manage all your projects in one place. From Home, you can easily create projects using the new project management service. Versatile by design, this new service is designed to support any role, skill level, or project type. These new Project services are born in the cloud, so teams can always access the same data—no matter where they are or what device they’re using. And they include a comprehensive set of capabilities, including resource and financial management and time and expense tracking. Future releases will allow customers to connect the full power of the Project desktop app to the service.

Work is happening across your organization all the time, and it can be hard to keep track of the details. The new Roadmap service will give you a cross-functional, big picture view of all the work in process. With Roadmap, it doesn’t matter whether your teams are using Microsoft Project or Azure DevOps (formerly VSTS). You can create timeline views of multiple projects—complete with key dates and milestones—so that all the work is visible. And in future releases, we’ll add support for Planner and third-party services like Jira, making Project your one-stop-shop for managing work across the organization. Roadmap is the first capability of Portfolio, a set of program and portfolio management services designed to be simple, visual, and intuitive.

The power of the Microsoft platform

We’ve built these new Project services to take advantage of the strengths of the broader Microsoft platform. In fact, all three new services are built on the Microsoft Common Data Service for Apps platform. This solid foundation provides a long list of benefits, including access to PowerApps and Microsoft Flow for custom business solutions and integration with Power BI for advanced analytics and reporting.

What’s next?

These new services will be introduced in a series of releases. Home is generally available today, the first release of Roadmap will be available early next year, and the first release of the new project management service will be available in the first half of next year. All three services will be packaged as a part of the Project Online Professional and Project Online Premium subscriptions, so current subscribers can take advantage of the new capabilities at no additional cost. And while these new services will become our primary project management services over time, customers who are already using Project Online can continue to do so with confidence. We are committed to your success no matter what Project service you choose to use.

We’re very excited to see what individuals, teams, and organizations will achieve with these new services in Microsoft Project!

The post A new vision for modern work management with Microsoft Project appeared first on Microsoft 365 Blog.

Azure Pipelines is the CI/CD solution for any language, any platform, any cloud

$
0
0

As previously announced, Azure Pipelines is the Continuous Integration and Continuous Delivery (CI/CD) solution for any language, application, or platform. Azure Pipelines has evolved in last couple of years as we are seeing customers use this service for both enhanced CI/CD functionality, and as a dedicated CI/CD service to use in their DevOps toolchains.

Simple Pipeline to build and deploy

Simple Pipeline

Any language, any platform, any cloud

Azure Pipelines’ key value proposition is to build, test any language, and deploy to any platform or any cloud.

Using Azure Pipelines you can build and test any language including Go, Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, and iOS apps. Azure Pipelines supports hosted agents for Windows, Mac, and Linux apps without you worrying about the infrastructure for building and testing applications. You can configure CI whether your application code is stored in Azure Repos, GitHub, GitLab, or Bitbucket.

Once the application is built, you can use Azure Pipelines to target any platform including Linux/Windows VMs, Kubernetes, Azure PaaS Services. You can also target any cloud, such as AWS for GCP. 

Kubernetes deployments

Azure Pipelines can be used to easily setup a reliable continuous delivery service for deploying your containerized apps to any Kubernetes cluster, running in any cloud.

The built-in Docker support helps you use Azure Pipelines to build and push your Docker images to Azure Container Registry without needing to set up an infrastructure of your own. However, the support is not limited to just Azure. Azure Pipelines can also be used with any container registry like Docker Hub. You can build either Windows or Linux container images.

Once the container image is available in the registry, Azure Pipelines supports deploying apps to an Azure Kubernetes service cluster by using Helm or Kubernetes spec files. These files can be stored as code, using Git as the source of truth for versioning environment configurations as well as applications.

Kubernetes deployment configuration image

Kubernetes deployment configuration

VM deployments

Azure Pipelines provides multiple ways of deploying to a VM using Deployment Groups or using traditional on-premises VM managers like SCVMM or VMWare.

A deployment group is a logical set of deployment target machines that have agents installed on each one. Deployment groups represent the physical environments - for example, "Dev", "Test", "UAT", and "Production". In Azure Pipelines, you can configure a job with a set of steps or scripts to target one or more deployment groups to perform an application update, database update, or even a configuration change.

Rolling updates

Deployment group supports deployment strategies like rolling update behind load balancer. Deployment group can be used to target Windows VM or Linux VM running in any cloud, or a VM running inside an enterprise boundary. You can see in the below image how we are updating VM images 20 percent at a time using the Rolling update strategy.


VMs rolling update image

VMs rolling update

On-premises deployment

For traditional on-premises deployment, you can deploy directly to the VMs or you can use any VM manager solution like SCVMM or VMWare to provision, deploy, or manage the environments. The SCVMM extension for Azure Pipelines helps you provision, manage, and deploy to your on-premises infrastructure. You can dynamically provision new virtual machines in System Center Virtual Machine Manager (SCVMM) and deploy to those virtual machines using Azure Pipelines. 

Multi-Cloud Deployments

Multi-cloud is becoming critical. Azure Pipelines can deploy to Azure, AWS, and GCP, and via our extensible tasks, to other clouds as well. Most of Azure deployment tasks are built-in and available default in the product, you can use them to deploy to Azure Web Application, Azure Web App for Containers or Azure SQL Database. Azure Pipelines has an AWS extension available to deploy to any AWS service – AWS Elastic Beanstalk, AWS EC2 with CodeDeploy and AWS CloudFormation stacks.

Progressive delivery

In Azure Pipelines you can use stages, gates, and approvals to control the blast radius of the deployment with standard patterns for progressive exposure.

  • Azure Pipelines help you model simple to complex multi-stage orchestration workflows based on your application and customer delivery requirements. You can deploy to Dev/QA environments on a continuous basis to make sure you are hitting the right quality before taking them to the production/customer environment.
  • Approvals and Release gates give you additional control over the start and completion of the deployment pipeline to model all quality gates needed for your automated deployments.
  • Using Azure Pipelines, you get full traceability from deployment, build, commit, and work item so you know what features/bugs are getting deployed at each stage. You can use this to easily create release notes for your product.
  • Azure Pipelines can even deploy from other CI systems, like Jenkins. Azure Pipelines also integrates well with other version control and issue tracking systems to get the same end to end functionalities including traceability, branch conditions, and triggers.

Free for Open Source Projects

Finally Azure Pipelines provides a great offer for Open Source Projects by providing unlimited build minutes and 10 free parallel jobs, and integrates well with Github repos. Using the Azure Pipeline app on Github Marketplace, you can easily create and setup a CI/CD pipeline for any Github repo.

Please try out Azure Pipelines and share your feedback using @AzureDevOps, Developer Community, or comment on this post.

To learn more about Azure Pipelines, see our documentation for tutorials, concepts, and other learning materials.

 

Gopinath Chigakkagari

@gopinach

Books on C++17

$
0
0

This post is part of a regular series of posts where the C++ product team here at Microsoft and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC toolset, the standard language and library, the C++ standards committee, isocpp.org, CppCon, etc. Today’s post is by Marian Luparu.

C++17 is an important evolution of the C++ language, and you may be wondering how you should get started learning about it. On our blog, you will always find the latest announcements related to our team’s work on C++17 and future standards and, as part of this new series, advice on any C++17 related topics you’ve asked us about. But many of you may also want the more systematic approach to learning, an approach that books can give you when absorbing such a large topic.

Here are three books, written by our Microsoft MVPs, that can be good starting points to get yourself familiar with C++17

Professional C++, 4th edition, by Marc Gregoire

“Professional C++” is the advanced manual for C++ programming. Designed to help experienced developers get more out of the latest release, this book skims over the basics and dives right in to exploiting the full capabilities of C++17. Each feature is explained by example, each including actual code snippets that you can plug into your own applications. Case studies include extensive, working code that has been tested on Windows and Linux, and the author’s expert tips, tricks, and workarounds can dramatically enhance your workflow. Even many experienced developers have never fully explored the boundaries of the language’s capabilities; this book reveals the advanced features you never knew about, and drills down to show you how to turn these features into real-world solutions.

C++ is notoriously complex, and whether you use it for gaming or business, maximizing its functionality means keeping up to date with the latest changes. Whether these changes enhance your work or make it harder depends on how well-versed you are in the newest C++ features. Professional C++ gets you up to date quickly, and provides the answers you need for everyday solutions.

The Modern C++ Challenge: Become an expert programmer by solving real-world problems, by Marius Bancila

C++ is one of the most widely-used programming languages and has applications in a variety of fields, such as gaming, GUI programming, and operating systems, to name a few. Through the years, C++ has evolved into (and remains) one of the top choices for software developers worldwide. This book will show you some notable C++ features and how to implement them to meet your application needs. Each problem is unique and doesn’t just test your knowledge of the language; it tests your ability to think out of the box and come up with the best solutions. With varying levels of difficulty, you’ll be faced with a wide variety of challenges. And in case you’re stumped, you don’t have to worry: we’ve got the best solutions to the problems in the book. So are you up for the challenge?

This book will appeal to C++ developers of all levels. There’s a challenge inside for everyone.

C++17 in Detail, by Bartłomiej Filipek

Although C++17 is not as big as C++11, it’s larger than C++14. Everyone expected modules, co-routines, concepts and other powerful features, but it wasn’t possible to prepare everything on time. Is C++17 weak? Far from it! And this book will show you why!

The book brings you exclusive content about C++17 and draws from the experience of many articles that have appeared on bfilipek.com. The chapters were rewritten from the ground-up and updated with the latest information. All of that equipped with lots of new examples and practical tips. Additionally, the book provides insight into the current implementation status, compiler support, performance issues and other relevant knowledge to boost your current projects.

If you know a bit of C++11/14 and you want to move forward into the latest C++ techniques, then this book is for you.

What other good C++17 books would you recommend to someone that is just getting started with C++? How about a C++ expert that hasn’t looked at C++17 yet?

Windows 10 SDK Preview Build 17763 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 17763 or greater). The Preview SDK Build 17763 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 install on Windows 10 Insider Preview builds and supported Windows operating systems.
  • 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=17763 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.

Windows App Certification Kit

When testing your app with the Windows App Certification Kit, the test may crash if your app includes 2 or more TargetDeviceFamily entries in the Package.appxmanifestfile. For example:


<TargetDeviceFamily Name="Windows.Universal"
                        MinVersion="10.0.0.0"
                        MaxVersionTested="10.0.0.0"/>
    <TargetDeviceFamily Name="Windows.Desktop"
                        MinVersion="10.0.0.0"
                        MaxVersionTested="10.0.0.0"/>

You can work around the issue by removing one of the TargetDeviceFamily entries.

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 for more information.

The following APIs have been added to the platform since the release of 17134. The APIs below listed have been removed.

In addition, please note the following removal since build 17744:


namespace Windows.ApplicationModel.DataTransfer
{ public sealed class DataPackagePropertySetView : IIterable<IKeyValuePair<string, object>>, IMapView<string, object> {
string SourceDisplayName { get; } } }

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; }
  }
  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.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.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; }
    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 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 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 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);
  }
}
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
}

Additional Store Win32 APIs

The following APIs have been added to the Application Certification Kit list.

  • CM_Get_Device_Interface_List_SizeA
  • CM_Get_Device_Interface_List_SizeW
  • CM_Get_Device_Interface_ListA
  • CM_Get_Device_Interface_ListW
  • CM_MapCrToWin32Err
  • CM_Register_Notification
  • CM_Unregister_Notification
  • CoDecrementMTAUsage
  • CoIncrementMTAUsage
  • ColorAdapterGetCurrentProfileCalibration
  • ColorAdapterGetDisplayCurrentStateID
  • ColorAdapterGetDisplayProfile
  • ColorAdapterGetDisplayTargetWhitePoint
  • ColorAdapterGetDisplayTransformData
  • ColorAdapterGetSystemModifyWhitePointCaps
  • ColorAdapterRegisterOEMColorService
  • ColorAdapterUnregisterOEMColorService
  • ColorProfileAddDisplayAssociation
  • ColorProfileGetDisplayDefault
  • ColorProfileGetDisplayList
  • ColorProfileGetDisplayUserScope
  • ColorProfileRemoveDisplayAssociation
  • ColorProfileSetDisplayDefaultAssociation
  • DeviceIoControl
  • EventEnabled
  • EventProviderEnabled
  • ExitProcess
  • GetProductInfo
  • GetSystemTimes
  • InstallColorProfileA
  • InstallColorProfileW
  • LocalFileTimeToLocalSystemTime
  • LocalSystemTimeToLocalFileTime
  • MLCreateOperatorRegistry
  • RoIsApiContractMajorVersionPresent
  • RoIsApiContractPresent
  • RtlVirtualUnwind
  • SetProcessValidCallTargetsForMappedView
  • sqlite3_value_nochange
  • sqlite3_vtab_collation
  • sqlite3_vtab_nochange
  • sqlite3_win32_set_directory
  • sqlite3_win32_set_directory16
  • sqlite3_win32_set_directory8
  • ubiditransform_close
  • ubiditransform_open
  • ubiditransform_transform
  • ubrk_getBinaryRules
  • ubrk_openBinaryRules
  • unum_formatDoubleForFields
  • uplrules_getKeywords
  • uspoof_check2
  • uspoof_check2UTF8
  • uspoof_closeCheckResult
  • uspoof_getCheckResultChecks
  • uspoof_getCheckResultNumerics
  • uspoof_getCheckResultRestrictionLevel
  • uspoof_openCheckResult

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

R developer’s guide to Azure

$
0
0

If you want to run R in the cloud, you can of course run it in a virtual machine in the cloud provider of your choice. And you can do that in Azure too. But Azure provides seven dedicated services that provide the ability to run R code, and you can learn all about them in the new R Developer's Guide to Azure at Microsoft Docs. The services include:

Click on the links above for detailed documentation on how to run R in each of these services. Like all Microsoft Docs this guide is hosted in Github, so if you have suggestions for modifications or additions to this document, you can use the "Content Feedback" link to provide suggestions directly in the repository.

Microsoft Docs: R developer's guide to Azure

.NET Framework September 2018 Preview of Quality Rollup

$
0
0

Late last week we released the September 2018 Preview of Quality Rollup.

Quality and Reliability

This release contains the following quality and reliability improvements.

CLR

  • Updated code to prevent errors regarding invalid date format when Japanese Era 4 is used with a future date [568291]
  • Parsing Japanese dates having a year number exceeding the number of years in that date era will succeed instead of throwing errors [603100]
  • When asynchronously reading a process output an IndexOutOfRangeException is thrown when less than a character’s worth of bytes is read at the beginning of a line [621951]
  • Fix in the JIT compiler for a rare case of struct field assignments, described here: https://github.com/Microsoft/dotnet/issues/779 [641182]
  • DateTime.Now and DateTime.Utc will now always be synchronized with the system time, DateTime and DateTimeOffset operations will continue to work as it used to work [645660]
  • Spin-waits in several synchronization primitives were conditionally improved to perform better on Intel Skylake and more recent microarchitectures. To enable these improvements, set the new configuration variable COMPlus_Thread_NormalizeSpinWait to 1. [647729]
  • Corrected JIT optimization which resulted in removal of interlocked Compare Exchange operation [653568]

WPF

  • Under certain circumstances, WPF applications using the spell-checker that use custom dictionaries can throw unexpected excpetions and crash [622262]

Note: Additional information on these improvements is not available. The VSTS bug number provided with each improvement is a unique ID that you can give Microsoft Customer Support, include in StackOverflow commentsor use in web searches.

Getting the Update

The Security and Quality Rollup is available via Windows Update, Windows Server Update Services, Microsoft Update Catalog, and Docker.

Microsoft Update Catalog

You can get the update via the Microsoft Update Catalog. For Windows 10, .NET Framework updates are part of the Windows 10 Monthly Rollup.

The following table is for Windows 10 and Windows Server 2016+ versions.

Product Version Preview of Quality Rollup KB
Windows 10 1803 (April 2018 Update) Catalog
4458469
.NET Framework 3.5 4458469
.NET Framework 4.7.2 4458469
Windows 10 1709 (Fall Creators Update) Catalog
4457136
.NET Framework 3.5 4457136
.NET Framework 4.7.1, 4.7.2 4457136
Windows 10 1703 (Creators Update) Catalog
4457141
.NET Framework 3.5 4457141
.NET Framework 4.7, 4.7.1, 4.7.2 4457141
Windows 10 1607 (Anniversary Update)
Windows Server 2016
Catalog
4457127
.NET Framework 3.5 4457127
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 4457127

The following table is for earlier Windows and Windows Server versions.

Product Version Preview of Quality Rollup KB
Windows 8.1
Windows RT 8.1
Windows Server 2012 R2
Catalog
4458613
.NET Framework 3.5 4457009
.NET Framework 4.5.2 4457017
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 4458612
Windows Server 2012 Catalog
4458612
.NET Framework 3.5 4457008
.NET Framework 4.5.2 4457018
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 4457014
Windows 7
Windows Server 2008 R2
Catalog
4458611
.NET Framework 3.5.1 4457008
.NET Framework 4.5.2 4457019
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 4457014
Windows Server 2008 Catalog
4458614
.NET Framework 2.0, 3.0 4457007
.NET Framework 4.5.2 4457019
.NET Framework 4.6 4457014

Previous Monthly Rollups

The last few .NET Framework Monthly updates are listed below for your convenience:

Go Cloud-native with Spring Cloud on Azure

$
0
0

Spring Framework and its ecosystem are widely adopted by Java developers to build web applications. We are collaborating closely with Pivotal developers to bring a rich Spring on Azure experience to Java developers for existing and new cloud-native apps. To this point, we wanted to enable streamlined efforts for running Spring apps in the cloud and we are excited to announce the Spring Cloud for Azure project. In addition, with the new Spring Boot Extension Pack in Visual Studio Code, you can have a lightweight development experience with your Spring Boot applications.

Spring Cloud Azure

Spring Cloud provides boilerplate patterns for developers to quickly build and orchestrate microservice based applications. Extending this further, Spring Cloud on Azure is designed to provide seamless Spring integration with Azure services and allows developers to leverage Azure’s secure infrastructure and geographic reach worldwide. Developers can adopt a Spring-idiomatic way to automatically provision resources and take advantage of services on Azure, with only few lines of configuration and minimal code changes.

Key Spring Cloud on Azure modules now include:

Module

Spring Library

Features

Spring Cloud Stream Binder for Event Hub Spring Cloud Stream Provides the binder implementation for Spring Cloud Stream with Azure Event Hub service.
Spring Resource with Azure Storage Spring Resource Provides the implementation for Spring Resource with Azure Storage Blob.
Spring Caching with Azure Redis Cache Spring Caching Auto configuration for Spring Caching with Azure Redis Cache.

The Spring Cloud on Azure modules are now available on Maven Central Repository. This is just the start so stay tuned for more updates on upcoming Spring Cloud modules. To get started, visit the Spring on Azure documentation and try it out with these samples.

Spring Boot Development in VS Code

Visual Studio Code is a free open source editor with powerful Spring and Java support. The Spring Boot Extension Pack in Visual Studio Code provides you with a lightweight developer experience for your Spring Boot application development. Check out the Build Spring Boot App with VS Code tutorial for more details. For more details, go to:

  • Spring Initializr for managing Spring dependencies and generating new projects.
  • Spring Boot Tools to provide validation and content assistance for Spring Boot projects.
  • Boot Dashboard (preview) to manage Spring Boot applications in VS Code workspace.

Next step

Check out the Spring on Azure documentation to get started. Also, don’t forget to try Visual Studio Code for a faster and leaner experience with building Java and Spring apps.


Manage Azure Monitor using Java

$
0
0

Azure Monitor maximizes the availability and performance of your applications by delivering an end-to-end monitoring solution for collecting, analyzing, and acting on telemetry from your cloud and on-premises environments. It helps you understand how your applications are performing and proactively identifies issues affecting them and the resources they depend on. Today, we released version 1.16 of the Azure Management Libraries for Java. Now you can programmatically manage Azure Monitor using Azure Management Libraries for Java, specifically, you can:

  • Manage Diagnostic Settings
  • Stream logs and metrics to Event Hub, Storage Account or Log Analytics
  • Query Metrics
  • Set up Metric Alerts
  • Query Activity Logs
  • Set up Activity Log Alerts
  • Setup Auto Scale
  • Perform Advanced Analytics

If you you’re ready to dive right in, go to the Azure Management Libraries for Java GitHub repo:

Getting started

Add the following dependency fragment to your Maven POM file to use 1.16 version of the libraries:

<dependency>
     <groupId>com.microsoft.azure</groupId>
     <artifactId>azure</artifactId>
     <version>1.16.0</version>
</dependency>

Stream Azure Service Logs and Metrics through Event Hub

Azure diagnostic logs – service and app logs from managed Azure services and resources – can be streamed in near real-time to any third-party logging and telemetry systems of your choice, such as Elastic Stack, Splunk or Grafana, by creating an Event Hub and streaming service logs and metrics to the Event Hub:

DiagnosticSetting ds = azure.diagnosticSettings()
     .define("DiaEventHub")
     .withResource(docDb.id())
     .withEventHub(eventHubAuthRule.id(), "MyEventHub")
     .withLog("DataPlaneRequests", 0)
     .withLog("MongoRequests", 0)
     .withMetric("AllMetrics", Period.minutes(5), 0)
     .create();

Read on for the full sample code.

Query Metrics

Through metrics emitted by Azure resources, Azure Monitor enables you to gain visibility into the performance and health of Azure services and your applications running on Azure. Using Java code, you can query metrics for any Azure resources, for example:

// Get metric definitions for storage account
for (MetricDefinition metricDefinition : azure.metricDefinitions().listByResource(storageAccount.id())) {
     // Find metric definition for Transactions
        if (metricDefinition.name().localizedValue().equalsIgnoreCase("transactions")) {
             // Query metric records
             MetricCollection metricCollection = metricDefinition.defineQuery()
                  .startingFrom(recordDateTime.minusDays(7))
                  .endsBefore(recordDateTime)
                  .withAggregation("Average")
                  .withInterval(Period.minutes(5))
                  .withOdataFilter
                    ("apiName eq 'PutBlob' and responseType eq 'Success' and geoType eq 'Primary'")
                  .execute();
                   …

Read on for the full sample code.

Query Activity Logs

Azure Activity Log is a subscription log that provides insights into subscription-level events occurring in Azure. These events include a range of data from Azure Resource Manager operational data to service health updates. Using activity logs, you can determine who, when and what changes were applied on resources in your subscription.

You can query activity logs for the same period from the previous example.

// Query activity logs
PagedList<EventData> logs = azure.activityLogs().defineQuery()
     .startingFrom(recordDateTime.minusDays(7))
     .endsBefore(recordDateTime)
     .withAllPropertiesInResponse()
     .filterByResource(storageAccount.id())
     .execute();
 
for (EventData event : logs) {
     ...
     System.out.println("tCaller: " + event.caller());
     System.out.println("tCorrelationId: " + event.correlationId());
     System.out.println("tSubscriptionId: " + event.subscriptionId());
}

Read on for the full sample code.

Setup Metric Alerts

An Action Group is a collection of notification preferences that can be defined by you. Notifications can be configured to call a telephone number, send an SMS message, send an e-mail, call a Web hook, send data to an ITSM tool, call a Logic App in Azure or send push notifications to the Azure app.

Using Java code, you can create an Action Group to be notified when metric alert conditions are triggered:

ActionGroup ag = azure.actionGroups().define("criticalPerformanceActionGroup")
     .withExistingResourceGroup(rgName)
     .defineReceiver("tierOne")
         .withPushNotification("ops_on_duty@performancemonitoring.com")
         .withEmail("ops_on_duty@performancemonitoring.com")
         .withSms("1", "4255655665")
         .withVoice("1", "2062066050")
         .withWebhook("https://www.weeneedmorepower.performancemonitoring.com")
     .attach()
     .defineReceiver("tierTwo")
          .withEmail("ceo@performancemonitoring.com")
          .attach()
     .create();

Then, create a Metric Alert for triggering notifications. For example, you can create a metric alert which triggers notifications when there are critical changes to the performance of Web apps on Azure App Service:

MetricAlert ma = azure.alertRules().metricAlerts().define("Critical performance alert")
     .withExistingResourceGroup(rgName)
     .withTargetResource(servicePlan.id())
     .withPeriod(Period.minutes(5))
     .withFrequency(Period.minutes(1))
     .withAlertDetails(3,
          "Single Resource with Multiple Criteria, Multiple Dimensions and Wildcard")
     .withActionGroups(ag.id())
     .defineAlertCriteria("Metric1")
         .withMetricName("CPUPercentage", "Microsoft.Web/serverfarms")
         .withCondition(MetricAlertRuleCondition.GREATER_THAN,
              MetricAlertRuleTimeAggregation.TOTAL, 80)
         .withDimension("Instance", "*")
         .attach()
    
     .create();

Read on for the full sample code.

Setup Activity Log Alerts

Just like metric alerts, you can audit and receive notifications when important events or activities are occurring in your subscription through Activity Log Alerts. You can create an activity log alert and specify an action group to be notified.

For example, using Java code, you can setup an activity log alert for potential security breaches and send notifications to users:

ActivityLogAlert ala = azure.alertRules().activityLogAlerts().define("Potential security breach alert")
     .withExistingResourceGroup(rgName)
     .withTargetSubscription(azure.subscriptionId())
     .withDescription("Security StorageAccounts ListAccountKeys trigger")
     .withRuleEnabled()
     .withActionGroups(ag.id())
     // fire an alert when all conditions below are true
     .withEqualsCondition("category", "Security")
     .withEqualsCondition("resourceId", storageAccount.id())
     .withEqualsCondition("operationName", "Microsoft.Storage/storageAccounts/listkeys/action")
     .create();

Read on for the full sample code.

Setup Autoscale

Autoscale allows you to have the right amount of resources running to handle the load on your applications. It allows you to add instances to handle increases in load and save money by removing instances that are idling. You can define configuration of auto scale-out and scale-in rules by using a define() and create() method chain.

For example, using Java code, you can setup auto scale to scale out or scale instances based on pre-defined conditions, say the number of HTTP requests received by Web apps on App Service:

AutoscaleSetting scaleSettings = azure.autoscaleSettings().define(autoscaleSettingsName)
     .withRegion(Region.US_SOUTH_CENTRAL)
     .withExistingResourceGroup(rgName)
     .withTargetResource(webapp.appServicePlanId())
     // define default profile
     .defineAutoscaleProfile("Default profile")
          .withFixedInstanceCount(1)
          .attach()
     // defining Monday to Friday profile
     .defineAutoscaleProfile("Monday to Friday")
          .withMetricBasedScale(1, 2, 1)
          // create a scale-out rule
          .defineScaleRule()
               ...
               .attach()
          // create a scale-in rule
          .defineScaleRule()
               ...        
               .attach()
          // create schedule for auto scale
          .withRecurrentSchedule("Pacific Standard Time", "09:00",
               DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY,
               DayOfWeek.THURSDAY, DayOfWeek.FRIDAY)
          .attach()
          // define end time for the "Monday to Friday" profile specified above
          ...
     .create();

Read on for the full sample code.

Try managing Azure Monitor using Java today

Test it out, stream logs and metrics from managed Azure services and resources, setup some alerts, put some load on them and see for yourself how these telemetry data can help with performance and root cause analysis troubleshooting. Tell us what you think (via e-mail or comments below).

You can get more samples from our GitHub repo.

Additional resources

A new way to send custom metrics to Azure Monitor

$
0
0

In today’s world of modern applications, metrics play a key role in helping you understand how your apps, services, and the infrastructure they run on, are performing. They can help you detect, investigate, and diagnose issues when they crop up. To provide you this level of visibility Azure has made resource-level platform metrics available via Azure Monitor. However, many of you need to collect more metrics, and unlock deeper insights about the resources and applications you are running in your hybrid environment.

To accomplish this, you have already been able to send custom metrics from your apps via Application Insights SDKs. Today, we are happy to announce the public preview of custom metrics in Azure Monitor, now enabling you to submit metrics, collected anywhere, for any Azure resource. These metrics can be additional performance indicators, like Memory Utilization, about your resources; or business-related metrics emitted by your application, like page load times. As part of the unified metric experience in Azure Monitor, now you can:

  • Send custom metrics with up to 10 dimensions
  • Categorize and segregate metrics using namespaces
  • Leverage a unified set of metrics and alerts experiences via Azure Monitor
    • Plot custom metrics alongside your resources’ platform metrics in charts and dashboards on the Azure Portal
    • Access your custom metrics via the same set of REST APIs as your platform metrics
    • Author and configure alert rules on any custom metric emitted to Azure Monitor; with added support to enable you to filter on any dimensions the metric has
  • Three months of retention of your custom metrics, preserved at 1-min granularity

You can send your custom metrics to Azure Monitor in a few different ways:

Read on to learn how you can get started on emitting your custom metrics to Azure Monitor.

Emit metrics from your Windows VMs

Many of you use the Azure Diagnostics Extensions (Windows and Linux) on Azure VMs and Classic Cloud Services to collect detailed guest OS level performance data. Previously, these diagnostics extensions allowed you to send the data to your Storage Tables and supported a limited set of metrics experiences on top of these guest-OS metrics.

As part of today’s release, we have upgraded the Windows Diagnostic Extension to have the option to send your performance counters directly to the Azure Monitor. This means you can chart, alert on, query, and filter on dimensions for Windows guest-OS metrics directly via the Azure Monitor experiences and REST APIs. We have published a walkthrough on how to install and configure the diagnostics extension. Sending guest OS metrics to Azure Monitor using the Linux diagnostics extension is not available at this time but will be coming soon.

Azure%20Monitor%20-%20VM%20Guest%20and%20Platform%20Metrics

A chart showing a guest OS metric (‘Memory/% Committed Bytes’) and a platform metric (‘Percentage CPU’) plotted side-by-side for a Windows Virtual Machine

Emit metrics from your Linux VMs using InfluxData’s Telegraf plugin agent

There’s a rich ecosystem of open source monitoring tools that enable you to collect metrics for workloads running on Linux VMs. Telegraf, is one such popular open-source agent. That is why we worked with our partners at InfluxData, the team behind this agent, to build an integration with Azure Monitor.

Telegraf is an open-source plugin-driven agent that enables the collection of metrics from over 150 different sources (depending on what’s running on your VM). Most of these plugins are contributed by the community which means you can expect even more collector agents to become available in the coming months. Output plugins, then enable the agent to write to destinations of your choosing. The agent integrated directly with our custom metrics REST API, and now supports a brand new “Azure Monitor Output plugin”. This enables you to install the Telegraf agent and collect metrics about the workloads (ex. MySQL, NGINX etc.) running on your Linux VM and have them published to Azure Monitor as custom metrics. Here is a quick walkthrough on how to set this up yourself!

Unified experience for Application Insights SDK emitted metrics

As part of Application Insights, you’ve always had the ability to use the Application Insights SDK to instrument your code to collect insights about your application and emit these as custom metrics. From there you were able to alert on these metrics and plot charts with the ability to split and filter on dimensions. Today we are enabling you to alert on dimensions as well; this is automatically available for all standard metrics emitted by Application Insights. To enable alerting on dimensions for your custom metrics there is a simple opt-in experience for your Application Insights component.

Pricing

All resource-level platform metrics will continue to be available to you for free. Custom metrics emitted against Azure resources will be metered. Custom metrics will be free for the first 150MB per month, after which they will be subject to metering based on the volume of data ingested.

Application Insights customers will continue to be metered based on the current Application Insights pricing model with no changes. Enabling dimensional alerting on custom metrics is completely optional, opting into this feature will be subject to custom metrics metering.

More information on the pricing of these features can be found here.

Wrapping up

Azure already gives you visibility into how your resources are performing with platform metrics via Azure Monitor. Now, you can supplement these metrics by emitting your own custom metrics about your applications and resources to Azure Monitor. We are excited about this initial release and in the coming months will continue to make this available in more Azure regions, add more features, and enable other capabilities across Azure Monitor to take advantage of custom metrics. We would love to hear from you as you try this out; drop us a comment, or head over to User Voice to let us know what you think!

Azure Monitor alerting just got better!

$
0
0

In March 2018, we announced the next generation of alerts in Azure. Since then, we have received overwhelming feedback from you appreciating the new capabilities and providing asks for the next set of enhancements. Today, I am happy to announce exciting new developments in Azure Monitor alerts.

One Alerts experience

The unified alerts experience in Azure Monitor just got better! We are introducing the unified experience in all major services in Azure, complemented with the One Metrics and One Logs experience to provide you quick access to these capabilities.

As part of the alerts experience, we’re introducing new ways to visualize and manage alerts, providing a bird’s eye view to all alerts across subscriptions by severity, a drill down view into all the alerts and a detailed view to examine each alert. This is complemented by Smart Groups (preview), which automatically consolidates multiple alerts into a single group using advanced AI techniques. Using these capabilities, you can troubleshoot issues in your environment quickly.

Screenshot_1

 

Screenshot_2

Expanded coverage

We are expanding alerting coverage to include more Azure services including web apps, functions and slots, custom metrics, and standard and webtest for Azure Monitor Application Insights.

The alerts experience now also provides a single pane of glass for viewing fired alerts for enumerating across your environment - whether you use Azure Monitor, SCOM, Nagios or Zabbix to manage your environment. This experience is backed by a new unified API for enumerating alerts, which you can use programmatically to integrate against other tools you use.

Screenshot_3

We’ve also heard from you for the need to monitor for complex conditions across your stack. We are enabling alerts across logs generated by App Insights and Log Analytics. Using this capability, you can create alert rules across logs generated by infrastructure/PaaS services and your app by defining queries that span multiple workspaces or apps or both in the alert rule.

Screenshot_4

Defining rules at scale

One consistent piece of feedback we’ve received from you is to allow for defining a single alert rule that targets multiple resources. Today, we are introducing multi-resource metric alert rules to allow you to do just that! As part of the rule, you can specify a list of resources, a resource group or a subscription as a target. All of the resources will be individually monitored for the criteria specified in the rule. You can also define an alert rule with “*”, which allows you to auto grow and shrink as resources are added in your environment targeted by the rule. We are currently supporting this capability for Virtual Machines only, but will soon expand this to other resource-types. Watch this space for more!

Screenshot_5

Alerting on multiple dimensions? We’ve got that covered too! As part of alerting at scale, we are allowing you the ability to define multiple dimensions that should be monitored using a single alert rule. Again, we are supporting * in this scenario too, to cover newly added or removed dimension values in the rule.

Screenshot_7

Faster log alerts is now Generally Available

As part of today’s announcements, we are also declaring GA of metric alerts for logs. This capability allows you to convert specific log types in log analytics (heartbeat, perf counters, events and update) to metrics and create alert rules on these metrics. This brings down the latency to generate a log alert to under 5 minutes.

Alerting on multiple dimensions is also supported for metric alerts for logs - allowing you to monitor multiple computers in your log analytics workspace in a single alert rule!

Screenshot_6

The Azure monitor alerts team is excited to bring these new enhancements to you! We would love to hear your feedback as you deploy these capabilities in your environment. You can reach us at azurealertsfeedback@microsoft.com. We look forward to hearing from you.

Azure Monitor is providing a unified logs experience

$
0
0

We’re happy to provide a new, unified log search and analytics experience for Azure Monitor logs, as announced earlier this week. Azure Monitor logs is the central analytics platform for monitoring, management, security, application, and all other log types in Azure. The new logs experience, embedded directly in Azure Portal, integrates the capabilities offered so far through different pages and portals. It provides a single place where you can run both basic searches over logged data, as well as advanced queries that provide diagnostics, root-cause analyses or visualizations. Azure Monitor logs is based on the same Log Analytics data and query engine that many of you have already been using.

Another major improvement is the coming integration of the logs experience with Azure resources, starting with Virtual Machines. This means that instead of leaving the VM you work on to launch Azure Monitor, you can access its logs directly through the VM’s monitoring menu, just like you do for alerts and metrics. When opening logs through a specific resource, you are automatically scoped to log records of that resource only (unlike launching logs through Azure Monitor which has the wider scope of the entire selected workspace). We are working across Azure to ensure that this experience is available for every Azure resource. Note that some options like Query Explorer and Alert integration are not yet available through the resource view, and we will be adding them soon.

The new logs experience

The logs experience is designed to help you get the most of your data – starting with a clear view of your logs and running simple searches, all the way to creating customized advanced queries that you can rely on for your production alerting and dashboarding systems.

Azure Monitor Logs

Find your way around your logs

The amount of log data collected can be enormous. The new experience offers a set of query examples that can help you get started. As results show up, suggested filters would be displayed, created dynamically based on your result set, so you can easily slice-and-dice the data and zoom in on relevant logs.

Write advanced queries

To get the best insights on your data, you may want to write your own queries. To make query editing easier, logs exposes a full schema view of your data (tables, fields and data types), provides syntax highlighting and IntelliSense (language auto-completion), and a query explorer to access your queries, as well as queries provided by Azure to help you get started. If you’re using multiple workspaces, you can use the workspace selector to quickly switch between them, or even query a different workspace in each tab.

Utilize queries in various ways

Once you’ve created a query that provides meaningful data, you may want to keep tracking that over time or react to changes in the query results. To accomplish that, you can create Azure Monitor alerts based on log queries, pin queries to Azure dashboards, export them to power BI or simply share the query link with a colleague.

We invite you to take part and provide your feedback directly to LAUpgradeFeedback@microsoft.com.

Rich insights for virtual machines from Azure Monitor

$
0
0

At Ignite we announced the public preview of Azure Monitor for VMs, a new capability that provides an in-depth view of VM health, performance trends, and dependencies. You can access Azure Monitor for VMs from the Azure VM resource blade to view details about a single VM, from Azure Monitor to understand compute issues at scale, and from the Resource Group blade to understand whether all the VMs in a common deployment are behaving as you expect.

Azure Monitor for VMs brings together key monitoring data about your Windows and Linux VMs, allowing you to:

  • Monitor the health and availability of VMs, with customizable alert thresholds
  • Troubleshoot guest-level performance issues and understand trends in VM resource utilization
  • Determine whether back-end VM dependencies are connected properly, and which clients of a VM may be affected by any issues the VM is having
  • Discover VM hotspots at scale based on resource utilization, connection metrics, health signals and alerts

Health

Health capabilities in Azure Monitor for VMs include out of the box configurable VM Health criteria that are powered by the same health modeling services used internally across Microsoft.

Health gives you powerful views to VM availability signals, including how many VMs are in a critical or warning state (or not able to connect to the monitoring service), which VMs by OS or resource type are reporting health issues, and details on health problems with CPU, disk, memory, and network adapters.  You can quickly and proactively identify the top issues with VMs, configure near-real time alerts on health conditions, and link to Knowledge Base articles to remediate issues.

Health

Maps

Azure Monitor for VMs includes dependency maps powered by the existing OMS Service Map solution and its Azure VM extension. Maps deliver a new Azure-centric user experience, with VM resource blade integration, Azure metadata, and dependency maps for Resource Groups and Subscriptions. Maps automatically show you how VMs and processes are interacting, identify surprise dependencies to third party services, and monitor connection failures, live connection counts, network bytes sent and received by process, and service-level latency.

In addition to the visual experience and group-level mapping in the user experience, you can now query VMConnection events in Log Analytics to alert on spikes in network traffic from selected workloads, query at scale for failed dependencies, and plan Azure migrations from on-prem VMs by analyzing connections over weeks or months.

The Service Map solution itself is not deprecated. Over time we expect to migrate users away from the existing OMS-based user experience and into the richer, integrated experiences of Azure Monitor.

Map

Performance

Performance views are powered by Log Analytics, and offer powerful aggregation and filtering capabilities including “Top N” VM sorting and searching across subscriptions and regions, aggregation of VM metrics (e.g. average memory ) across all VMs in a resource group across regions, percentiles of performance values over time, and breakdown and selection of VM Scale Set instances.

If you’ve had challenges isolating which of your thousands of VMs are resource constrained, quickly troubleshooting logical disk or memory consumption issues, or getting performance diagnostics where and when you need it while performing administration on your VMs, we’d love to get your feedback on these new Performance experiences.

Perf

 

Virtual Machine Details

Getting started

If you’re running VMs in an on-prem or hybrid environment, or using Azure VM Scale Sets, you can use the Performance and Map capabilities from the “Virtual Machines (preview)” menu of Azure Monitor to find resource constraints and visualize dependencies. The Health capability currently supports Azure VMs, and will be extended in the future to support other resource types.  For the full list of supported OSes, please see our documentation page.

To get started, go to the resource blade for your VM and click on “Insights (preview)” in the Monitoring section. When you click “Try now”, you’ll be prompted to choose a Log Analytics workspace, or we can generate one for you. Once you’re comfortable with the capabilities on a few VMs, you can view VMs at scale in Azure Monitor under “Virtual Machines (preview)”, and on-board to entire resource groups and subscriptions using Azure Policy or using Powershell.

DayZero

Check out our full documentation to get more details. We’d love to hear what you like and don’t like about Azure Monitor for VMs, and where you’d like us to take it. Please click “Provide Feedback” in the user experience to share your thoughts with us.

Serial console for Azure VMs now generally available

$
0
0

Earlier this year, we released the public preview of the serial console feature of Azure Virtual Machines (VMs). Today we are announcing the general availability of serial console and we’ve added numerous features and enhanced performance to make serial console an even better tool for systems administrators, IT administrators, DevOps engineers, VM administrators, and systems engineers.

For those new to serial console, you’ll likely recognize this scenario: You’ve made a change to your VM that results in you being unable to connect to your VM through SSH or RDP. In the past, this would have left you pretty helpless. However, serial console enables you to interact with your VM directly through the VM’s serial port – in other words, it is independent of the current network state, or as I like to say, it’s “like plugging a keyboard into your VM.” This means that you can debug an otherwise unreachable VM to fix issues like a broken fstab or a misconfigured network interface, without needing to resort to deleting and recreating your VM.

loading

The latest features for serial console include a subscription-level enable/disable feature, support for magic SysRq keys, support for non-maskable interrupts, accessibility improvements, and performance and stability improvements. Serial console can now be turned off for all VMs in a subscription. The details on this feature are in our documentation for Linux and Windows VMs.

The system request key, also known as the magic SysRq key, allows you to enter key combinations that will be understood by the Linux kernel regardless of its state. Like a SysRq, a non-maskable interrupt (NMI) can forcibly crash your VM, which is useful if your VM is completely frozen. In other words, we’re giving you an additional tool in your toolkit for even more of those nasty debugging situations. More details are available in our documentation for Linux and Windows VMs.

We have also focused on making the serial console more accessible for anyone with visual, hearing or physical impairments. Without the need to use a mouse, you can now tab through serial console to show exactly where you are on screen. Serial console also includes native screen reader support, meaning that your screen reader will be able to tell you exactly what is going on within your serial console.

You can see serial console in action in this episode of Azure Fridays and learn more by visiting our serial console documentation for Linux and Windows VMs.

Azure ISVs expand the possibilities with Azure Stack

$
0
0

Azure Stack features a growing independent software vendor (ISV) community that operates across a broad-spectrum of environments, empowering you to create compelling and powerful solutions.

Today, I’d like to highlight some of our ISV partners that address common customer requirements for Azure Stack.

Data protection and disaster recovery

Operators and users of Azure Stack deploying applications and datasets need the ability to quickly recover from data loss and catastrophic failures. With offerings from multiple partners, you can enable data protection and disaster recovery for your applications and data. Supported partners include: Acronis, Actifio, Carbonite, Commvault, Dell EMC, MicroFocus, Quest, Rubrik, Veritas, and ZeroDown. The blog post, Protecting applications and data on Azure Stack, by my colleague Hector Linares, provides an overview of how to protect your applications and data.

Security

Vulnerability and policy compliance scanning for the Azure Stack infrastructure is now a reality thanks to the integration of Azure Stack with Qualys. The Qualys virtual scanner appliance is also coming to the Azure Stack marketplace to enable users to protect their workloads. Backing up your application’s secrets on a Hardware Secure Module (HSM) will soon be available thanks to the Azure Stack marketplace solution CipherTrust Cloud Key Manager (CCKM) by Thales, which allows you to interface an HSM with your Key Vault running on Azure Stack. Auditing is a fundamental part of security. Azure Stack now exposes a Syslog client that forwards security logs, alerts and audits which you monitor using the EventTracker SIEM.

Networking

Azure Stack’s Marketplace has best-in-class virtual network appliance solutions that compliment and extend Azure Stack’s base networking functionality. Take advantage of high-speed site-to-site VPN gateway solutions from Arista, F5 and Palo Alto Networks and that allow you to achieve up to 10x faster throughput than the native VPN Gateway resources in Azure Stack today. You can also use these solutions to connect two Virtual Networks in the same Azure Stack or across Azure Stack deployments.

Looking for an Enterprise grade Web Application Firewall (WAF) or application load balancers? Barracuda, Check Point, F5, Palo Alto, and Positive Technologies have offerings you should take a look at.

If you’re looking for DDoS IDS/IPS protection for your application, check out CloudGuard from Check Point, or BIG-IP VE from F5.

Need a Local Traffic Manager or a Global Traffic Manager to balance applications in your Datacenter but can’t use Azure Traffic Manager? Why not take a look at BIG-IP Virtual Edition from F5 that offers rich functionality and policy based centralized management that can balance applications across multiple Azure Stack deployments?

Migration

Azure Stack has ISV solutions for every stage of application migration, from envisioning/discovery to modernization by leveraging PaaS capabilities. Partners including Carbonite, Cloudbase, Commvault, Corent Technologies provide ways to migrate various workloads to both Azure and Azure Stack.

Billing and business insights

Service providers need the ability to track usage of end customers and bill them for their consumption, while you need the ability to control costs incurred when operating Azure Stack. Billing partners like CloudAssert and Exivity can extract Azure Stack usage data and provide consumption-based billing and cost management for both service providers and enterprise customers.

Developer platform and tools

When building modern applications, you can leverage the tools and frameworks that you rely on. The following are some of the current available frameworks and tools in Azure Stack:

Bitnami provides Application and Infrastructure stacks within the Azure Stack Marketplace. Bitnami’s offerings provide Azure users with a catalog of “ready to deploy” apps from Big Data like Cassandra to CMS like WordPress to High-Availability production ready clustered solutions like Node.js.

HashiCorp Terraform enables the necessary workflows for provisioning and managing Azure infrastructure at any scale, in the cloud or on premises. Using an Infrastructure as Code methodology, operators create reusable configuration files which are then used for creating or changing Azure or Azure Stack infrastructure.

Pivotal Cloud Foundry enables a continuous delivery platform for modern applications, allowing customers to deploy and manage their Cloud Foundry infrastructure in Azure Stack.

Red Hat OpenShift Container Platform is available now for Azure Stack, providing hybrid enterprise container orchestration and management.

These are just a few highlights of ISV solutions in our growing Azure Stack Marketplace. There are many first and third party offers in the Azure Stack Marketplace, including operating systems, applications, open source tools, and solution templates. Check back frequently as we add new Marketplace items all the time.

If you are attending Ignite, drop by the Azure Stack booth and we can direct you to any of our partners!


Manage your SQL Information Protection policy in Azure Security Center

$
0
0

We are pleased to share that your SQL Information Protection policy can now be centrally managed for your entire tenant within Azure Security Center. SQL Information Protection is an advanced security capability for discovering, classifying, labeling, and protecting sensitive data in your Azure data resources. With central policy management you can now define a customized classification and labeling policy that will be applied across all databases on your tenant.

SQL Information Protection

SQL Information Protection (SQL IP) consists of an advanced set of capabilities that form a new information protection paradigm in SQL aimed at protecting the data, not just the database. It provides the following abilities:

  • Discovery and recommendations: The classification engine scans your database and identifies columns containing potentially sensitive data. It then provides you an easy way to review and apply the appropriate classification recommendations via the Azure portal.
  • Labeling: Sensitivity classification labels can be persistently tagged on columns using new classification metadata attributes introduced into the SQL engine. This metadata can then be utilized for advanced sensitivity-based auditing and protection scenarios.
  • Monitoring/Auditing: Sensitivity of the query result set is calculated in real time and used for auditing access to sensitive data.
  • Visibility: The database classification state can be viewed in a detailed dashboard in the Azure portal. Additionally, you can download a report, in Excel format, to be used for compliance and auditing purposes, as well as other needs.

The labeling of sensitive data is done using a classification taxonomy, consisting of Labels and Information Types. Labels are the main classification attributes, used to define the sensitivity level of the stored data. Information Types provide additional granularity into the type of data stored in the database column. In addition, string patterns containing special keywords are used to help discover different classes of sensitive data and associate it with the right Information Type and Label.

Customizing your Information Protection policy

You can now customize the Labels and Information Types used by SQL Information Protection. While the system has a built-in classification taxonomy to start out, many customers have requested the ability to set their own values for sensitivity labels and types of data.

The policy is a singular policy for your entire Azure tenant and can be managed in Azure Security Center. Managing your own customized policy enables you to:

  1. Define a fully customized set of sensitivity labels, according to your organizational requirements.
  2. Rank the sensitivity labels in a linear order, signifying a scale of least to most sensitive.
  3. Add customized Information Types to identify sensitive data types specific to your organization's data environment.
  4. Fully customize the association of Information Types to sensitivity Labels, so that each type of data discovered is automatically assigned the right sensitivity classification.
  5. Add a customized set of discovery keywords and string patterns to each Information Type, used by the data discovery engine to automatically identify sensitive data in your databases.
  6. Rank the Information Types in hierarchical order to definitively determine the association when overlapping data types are discovered.

Information Protection Policy

Once your Information Protection policy is fully defined, it will apply to the classification of data on all Azure SQL databases in your tenant.

Get started today!

You can now use Information Protection central policy management to define your organization's Information Protection policy, across all your Azure SQL databases. This gives you the flexibility and control over how sensitive data is discovered in your systems, and enables you to align the sensitivity labels and classification classes to your organizational needs.

Try it out and let us know what you think!

Try Azure CosmosDB for 30 days free, no commitment or sign up

$
0
0

Today we are extending Try Cosmos DB for 30 days free! Try Cosmos DB allows anyone to play with Azure Cosmos DB, with no Azure sign-up required and at no charge, for 30 days with ability to renew unlimited times. As many of you know, Azure Cosmos DB is the first globally distributed, massively scalable, multi-model database service. The service is designed to allow customers to elastically and horizontally scale both throughput and storage across any number of geographical regions. It also offers greater than 10 ms latencies at the 99th percentile, 99.999 percent high availability, and five well defined consistency models to developers to make precise tradeoffs between performance, availability, and consistency of data. Azure Cosmos DB is also the first globally distributed database service in the market today to offer comprehensive Service Level Agreements (SLAs) for throughput, latency, availability, and consistency.

With Try Cosmos DB we want to make it easy for developers to evaluate, build, and test their app, do a hands-on-lab, a tutorial, and create a demo or perform unit testing without incurring any costs or making any commitment. Our goal is to enable any developer to easily experience Azure Cosmos DB and what it has to offer, become more comfortable with our database service, and build the expertise with our stack at zero cost. With Try Cosmos DB for free, you can go from nothing to a fully running planet-scale Azure Cosmos DB app in less than a minute.

Try Azure Cosmos DB now

Try it out for yourself, it takes less than a minute. Or watch this quick video.

image

In seconds, you will have your newly created free Azure Cosmos DB account with an invite to open it in the Azure portal and try out our Quick Starts.

image
Click Open in Azure Portal, which will navigate the browser to the newly created free Azure Cosmos DB account with Quick Starts page open.

image

Follow the Quick Starts to get a running app connected to Azure Cosmos DB in under 30 seconds or proceed exploring the service on your own.

When in the portal, you will be reminded how long you have before your account expires. The trial period is 30 days, but you can extend it for another 24 hours, or click on the link to sign up for a free trial when you are new to Azure or create a new Azure Cosmos DB account if you already have a subscription.

With Try Azure Cosmos DB for free, you can create a container (a collection of documents, a table, or a graph) and globally-distribute it to up to 3 regions, and use any of the capabilities Azure Cosmos DB provides for 30 days. Once the trial expires, you can always come back and create it all over again.

image

Play with Azure Cosmos DB and let us know what you think

Azure Cosmos DB is the database of the future! It is what we believe is the next big thing in the world of massively scalable databases! It makes your data available close to where your users are worldwide. It is a globally distributed, multi-model database service for building planet scale apps with ease using the API and data model of your choice. You never know it until you try!

If you need any help or have questions or feedback, please reach out to us on the developer forums on Stack Overflow. Stay up-to-date on the latest Azure Cosmos DB news and features by following us on Twitter #CosmosDB, @AzureCosmosDB.

New features and enhancements released in Bing Custom Search V3

$
0
0

We are happy to share the release of additions and enhancements to Bing Custom Search. Bing Custom Search is an easy-to-use, ad-free search solution that enables users to build a search experience and query content on their specific site, or across a hand-picked set of websites or domains. To help users surface the results they want, Bing Custom Search provides a simple web interface where users can control ranking specifics and pin, or block, responses to suit their needs.

The Bing Custom Search API gives you powerful ranking, a global-scale search index, and document processing with fast, simple setup. 

Bing Custom Search Hosted UI

At Microsoft, we are committed to making AI accessible to everybody, and we are happy to see that a considerable number of websites around the world are powered by Bing Custom Search. We have been prioritizing new features and enhancements based on the feedback we have received since we announced the general availability of Bing Custom Search v1 in October 2017. In May 2018, we released Bing Custom Search v2 with important new features like custom image search, custom autosuggest, and a means for retrieving key insights regarding the usage of the custom search instance. Today, with Bing Custom Search v3, we are releasing even more. Get details about what’s new in Bing Custom Search v3 by reading the release announcement post on the Bing Developers Blog.

For questions please reach out to us via Stack Overflow and Azure Support. We would also love to hear your feedback.

Announcing private preview of Azure VM Image Builder

$
0
0

Today I am excited to announce the private preview of Azure VM Image Builder, a service which allows users to have an image building pipeline in Azure. Creating standardized virtual machine (VM) images allow organizations to migrate to the cloud and ensure consistency in the deployments. Users commonly want VMs to include predefined security and configuration settings as well as application software they own. However, setting up your own image build pipeline would require infrastructure and setup. With Azure VM Image Builder, you can take an ISO or Azure Marketplace image and start creating your own golden images in a few steps.

How it works

Azure VM Image Builder lets you start with either a Linux-based Azure Marketplace VM or Red Hat Enterprise Linux (RHEL) ISO and begin to add your own customizations. Your customizations can be added in the form of a shell script, and because the VM Image Builder is built on HashiCorp Packer, you can also import your existing Packer shell provisioner scripts. As the last step, you specify where you would like your images hosted, either in the Azure Shared Image Gallery or as an Azure Managed Image. See below for a quick video on how to create a custom image using the VM Image Builder.

part1v2

For the private preview, we are supporting these key features:

  • Migrating an existing image customization pipeline to Azure. Import your existing shell scripts or Packer shell provisioner scripts.
  • Migrating your Red Hat subscription to Azure using Red Hat Cloud Access. Automatically create Red Hat Enterprise Linux VMs with your eligible, unused Red Hat subscriptions.
  • Integration with Azure Shared Image Gallery for image management and distribution
  • Integration with existing CI/CD pipeline. Simplify image customization as an integral part of your application build and release process as shown here:

part2v2

If you are attending Microsoft Ignite, feel free to join us at breakout session BRK3193 to learn more about this service.

Frequently asked questions

Will Azure VM Image Builder support Windows?

For private preview, we will support Azure Marketplace Linux images (specifically Ubuntu 16.04 and 18.04). Support for Windows VM is on our roadmap.

Can I integrate Azure VM Image Builder into my existing image build pipeline?

You can call the VM Image Builder API from your existing tooling.

Is VM Image Builder essentially Packer as a Service?

The VM Image Builder API shares similar style to Packer manifests, and is optimized to support building images for Azure, supporting Packer shell provisioner scripts.

Do you support image lifecycle management in the preview?

For private preview, we will only support creation of images, but not ongoing updates. The ability to update an existing custom image is on our roadmap.

How much does VM Image Builder cost?

For private preview, Azure VM Image Builder is free. Azure Storage used by images are billed at standard pricing rates.

Sign up today for the private preview

I hope you sign up for the private preview and give us feedback. Register and we will begin sending out more information in October.

New Azure HDInsight management SDK now in public preview

$
0
0

Today, we are excited to announce the preview of the new Azure HDInsight Management SDK. This preview SDK brings support for new languages and can be used to easily manage your HDInsight clusters.

Highlights of this preview release

  • More languages: In addition to .NET, we now offer HDInsight SDKs for Python, Java, and Go as well.
  • Manage HDInsight clusters: The SDK provides several useful operations to manage your HDInsight clusters, including the ability to create clusters, delete clusters, scale clusters, list existing clusters, get cluster details, update cluster tags, execute script actions, and more.
  • Monitor HDInsight clusters: Control monitoring on your HDInsight clusters via the Operations Management Suite (OMS). Use the SDK to enable OMS monitoring on a cluster, disable OMS monitoring on a cluster, and view the status of OMS monitoring on a cluster.
  • Script actions: Use the SDK to execute, delete, list, and view details for script actions on your HDInsight clusters.

Get started

You can learn how to quickly get started with the HDInsight Management SDK in the language of your choice here:

Reference documentation

We also provide reference documentation that you can use to learn about all available functions in the HDInsight Management SDK.

Try HDInsight now

We hope you will take full advantage of the HDInsight Management SDK Preview and we are excited to see what you will build with Azure HDInsight. Read this developer guide and follow the quick start guide to learn more about implementing these pipelines and architectures on Azure HDInsight. Stay up-to-date on the latest Azure HDInsight news and features by following us on Twitter #HDInsight and @AzureHDInsight. For questions and feedback, reach out to AskHDInsight@microsoft.com.

About HDInsight

Azure HDInsight is an easy, cost-effective, enterprise-grade service for open source analytics that enables customers to easily run popular open source frameworks including Apache Hadoop, Spark, Kafka, and others. The service is available in 27 public regions and Azure Government Clouds in the US and Germany. Azure HDInsight powers mission-critical applications in a wide variety of sectors and enables a wide range of use cases including ETL, streaming, and interactive querying.

Viewing all 10804 articles
Browse latest View live


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