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

Because it’s Friday: Wavy Lines Illusion

$
0
0

Another fine illusion: in this one, the pairs of horizontal lines are all smooth sine curves, despite the appearance of the jagged zig-zags:

Curvature-blindness-illusion

It's really hard for me at least to tell that the zig-zags in the light grey region are actually curved. Zooming all the way in may help if you want to check for yourself.

That's all from us at the blog for this week. Next week, we'll be taking a break for the week of the US Independence Day holiday, but we'll be back the week of Monday July 9, reporting from the useR! conference in Brisbane. In the meantime, have a great weekend!

 


Migrating IoT Edge solutions to GA

$
0
0

On Wednesday, June 27, 2018, we announced the general availability of Azure IoT Edge. This release adds tons of new features for those already using public preview bits. Customers who have never used Azure IoT Edge can start with the Linux or Windows quickstarts. Those who have started projects on preview bits should upgrade to the latest bits and integrate breaking changes.  Details on both of these processes are below.

Upgrade to the latest bits

Uninstall preview bits

Use iotedgectl to uninstall the preview bits from your Edge device by running the following command. You can skip this step if you are installing GA bits on a device or VM that has never run preview bits.

iotedgectl uninstall

Delete preview runtime container images

Use “docker rmi” to remove the container images for preview versions of Edge Agent and Edge Hub from your Edge device. You can skip this step if you are installing GA bits on a device or VM that has never run preview bits.

Remove references to preview container images in deployments

The IoT Edge Security Daemon includes functionality to allow the user to specify which versions of the Edge Agent and Edge Hub are used by an Edge device. This allows you to control when bits on your device get updated. The version of these runtime components are specified in your deployment. Deployments created during preview include references to preview container images. You must change them to reference GA container images, ensuring that the Security Daemon does not downgrade your machine to preview bits. An example deployment snippet is below.

"systemModules": {
     "edgeAgent": {
         "type": "docker",
         "settings": {
             "image": "microsoft/azureiotedge-agent:1.0-previewmcr.microsoft.com/azureiotedge-agent:1.0",
             "createOptions": "{}"
         }
     },
     "edgeHub": {
         "type": "docker",
         "settings": {
             "image": "microsoft/azureiotedge-hub:1.0-previewmcr.microsoft.com/azureiotedge-hub:1.0",
             "createOptions": "{}"
         },
         "status": "running",
         "restartPolicy": "always"
     }
},

Install GA bits

The quickstarts for Linux and Windows walk you through setting up an IoT Edge device with these new infrastructural components. You will notice that the quickstarts start by installing a component introduced with GA called the IoT Edge Security Daemon. This is part of the Edge Security Manager, a set of components that help us secure the edge.

The IoT Edge Security Daemon starts each time an Edge device boots and initiates the IoT Edge Agent. This means that iotedgectl is no longer needed when working with IoT Edge devices.

Hsmlib is another new component which is part of the IoT Edge Security Manager. Different versions of hsmlib integrate with device specific hardware and allow the IoT Edge Security Daemon to perform cryptographic functions. Advanced types of hardware enable IoT Edge to provide innovative security and functionality. For example, devices with a hardware security module (eg. TPM) can be provisioned via the Device Provisioning Service.

SecurityManagerA default version of hsmlib is installed along with the IoT Edge Security Daemon. This version of hsmlib supports our standard security promise which uses the Edge device’s file system for storage of secrets as well as our secure enclave promise using TPM at /tpm0.

Integrate breaking changes

The vast majority of feature additions have been done in a backwards compatible manner making it easy to migrate your projects on to GA bits. We’ve learned an incredible amount from having the product in public preview and are making a few small breaking changes based on user feedback. These changes are as small as possible while still delivering usability improvements to the product.

Client SDK split

Change

The DeviceClient object, used to write IoT Edge modules, will split into two objects: DeviceClient and ModuleClient.

Impact

Small code change. You must change the class name for all DeviceClient objects in your module code to ModuleClient. We've also introduced a factory class for creating ModuleClients. This helper class hides the details of correctly integrating with the IoT Edge Security Daemon.

Before

DeviceClient deviceClient = DeviceClient.CreateFromConnectionString(connStr, transportSettings);

After

ModuleClient moduleClient =
ModuleClient.CreateFromEnvironment(transportSettings);

Additionally, the API surface of the ModuleClient will be reduced to only the functionality that is currently supported for modules. This should not affect any existing module code as those APIs do not work.

Reason for change

The functionality available to devices and modules is slightly different. For example:

  • Modules can read/write from inputs/outputs while devices can only write to IoT Hub.
  • Devices can receive C2D messages while modules cannot.
  • Devices can perform FileUpload while modules cannot.
  • Separating the clients cleanly delineates the functionality available to devices and modules.

Direct method invocation

Change

The ServiceClient class will no longer allow module identities to invoke direct methods. This functionality has been moved to the ModuleClient class as part of the Client SDK split detailed above.

Impact

You must use the ModuleClient class to invoke methods for module identities instead of the ServiceClient.

Before

// assumes the use of a module connection
ServiceClient serviceClient = ServiceClient.CreateFromConnectionString(connStr, transportSettings);
string.serviceClient.InvokeDeviceMethodAsync("DeviceId", "ModuleId", new CloudToDeviceMethod("MethodName"));

After

ModuleClient moduleClient = ModuleClient.CreateFromEnvironment(transportSettings);
moduleClient.InvokeMethodAsync("DeviceId", "ModuleId", new DirectMethodRequest("MethodName")) ;

Reason for change

Invoking a method is an action users expect to be able to do with the ModuleClient, instead of instantiating a second object. Adding method invocation to ModuleClient reduces the size of module code as developers no longer need to include the ServiceClient in their code.

Configure port on which Edge Hub listens

Change

Edge Hub used to listen for connections from downstream devices on ports 8883 and 443. Now we require developers to specify on which host ports it uses for these connections.

Impact

You must set port forwarding info on Edge Hub when manually creating a deployment's JSON. The below JSON configures Edge Hub to work as before (listen on ports 8883 and 443).

"{"HostConfig":{"PortBindings":{"8883/tcp":[{"HostPort":"8883"}],"443/tcp":[{"HostPort":"443"}]}}}"

You do not need to make any changes if you're creating a deployment through the Azure portal or with the VS Code extension. These tools will automatically set up port forwarding options to make Edge Hub listen for connections on 8883 and 443.

Reason for change

Some customers may want an Edge device to listen for downsteam device connections on a port other than 443 or 8883 as those ports could be used for a different purpose. For example, customers may want to run a HTTPS server on 443.

Monitor Azure Data Factory pipelines using Operations Management Suite

$
0
0

Data Integration solutions can be complex with many moving parts involving complex data factories with multiple pipelines. Monitoring provides data to ensure that your data factory pipelines stay up and running in a healthy state. It also helps you to stave off potential problems or troubleshoot past ones. In addition, you can use monitoring data to gain deep insights about your application. This knowledge can help you to improve application performance or maintainability, or automate actions that would otherwise require manual intervention.

Azure Data Factory (ADF) integration with Azure Monitor allows you to route your data factory metrics to Operations and Management (OMS) Suite. Now, you can monitor the health of your data factory pipelines using ‘Azure Data Factory Analytics’ OMS service pack available in Azure marketplace.

image

image

Azure Data Factory OMS pack provides you a summary of overall health of your Data Factory, with options to drill into details and to troubleshoot unexpected behavior patterns. With rich, out of the box views you can get insights into key processing including:

  • At a glance summary of data factory pipeline, activity and trigger runs
  • Ability to drill into data factory activity runs by type
  • Summary of data factory top pipeline, activity errors

image

You can also dig deeper into each of the pre-canned view, look at the Log Analytics query, edit it as per your requirement. You can also raise alerts via OMS.

image

You can route metrics from different data factories to the same OMS account and do monitoring across data factories as well. Simply enable the diagnostics settings for your data factory and route data to your Log Analytics workspace. Get more information and detailed steps on enabling the Azure Data Factory OMS service pack.

Our goal is to continue adding features and improve the usability of Data Factory tools. Get started building pipelines easily and quickly using Azure Data Factory. If you have any feature requests or want to provide feedback, please visit the Azure Data Factory forum.

Azure Backup hosts Ask Me Anything session

$
0
0

The Azure Backup team will host a special Ask Me Anything session on Twitter, Tuesday, June 26, 2018 from 7:30 AM to 11:30 AM PST. You can tweet to @AzureBackup or @AzureSupport with #AzureBackupAMA

What's an AMA session?

We'll have folks from across the Azure Backup Engineering team available to answer any questions you have. You can ask us anything about our products, services or even our team!

Why are you doing an AMA?

We like reaching out and learning from our customers and the community. We had great conversations in the past when we did an AMA in 2016 and 2015. We want to know how you use Azure and Azure Backup and how your experience has been. Your questions provide insights into how we can make the service better.

How do I ask questions on Twitter?

You can ask us your questions by putting “#AzureBackupAMA” in your tweet. Your question can span multiple tweets by replying to first tweet you post with this hashtag.  You can also directly message @AzureBackup or @AzureSupport if you want to keep your questions private. You can start posting your questions one day before the scheduled time of AMA but we will start answering only during the event time. This is to help customers who are in different time zone and who can’t attend the event during this specific hour of the day. You can catch us for a live conversation during the scheduled hours. If there are further follow-ups, we will continue the dialogue post event time. Go ahead and tweet to us!

Who will be there?

You, of course! We'll also have PMs and Developers from the Azure Backup team participating.
Have any questions about the following topics? Bring them to the AMA.

Why should I ask questions here instead of StackOverflow or MSDN? Can I really ask anything?

An AMA is a great place to ask us anything. StackOverflow and MSDN have restrictions on which questions can be asked. With an AMA, you’ll get answers directly from the team and have a conversation with the people who build these products and services.

Here are some question ideas:

  • What is Azure Backup?
  • What does zero-infrastructure solution to Azure Backup mean?
  • Can I backup Azure VMs using managed disks?
  • How many vaults I can create per subscription?
  • How do I monitor my Azure Backup data in Log Analytics?
  • How do I secure my backup data?
  • How can I share my Azure Backup reports to my colleagues?
  • How does the Protected Instances billing model work?

Go ahead, ask us anything about our public products or the team. Please note, we cannot comment on unreleased features and future plans and issues which require deep level debugging.

We're looking forward to having a conversation with you!

Azure Databricks provides the best Apache Spark™-based analytics solution for data scientists and engineers

$
0
0

Azure Databricks provides a fast, easy, and collaborative Apache Spark-based analytics platform to accelerate and simplify the process of building Big Data and AI solutions that drive the business forward, all backed by industry leading SLAs.

I am excited to announce the availability of a set of new features and regions, which enable our customers to accelerate their AI journey with Azure Databricks.

RStudio integration generally available with Azure Databricks

Today, we are announcing the ability to use RStudio with Azure Databricks. Customers can now analyze data with RStudio while taking advantage of the scale and flexibility of Azure Databricks.

RStudio offers in a rich IDE that is very popular with the data scientists in the R community. With this integration, RStudio runs directly inside Azure Databricks. This enables data scientists to continue to use the familiar and powerful RStudio IDE while gaining the ability to build their solutions at unprecedented scale. Azure Databricks provides the flexibility to start with small jobs and automatically scale up to production workloads in the same environment.

Setting up RStudio in Azure Databricks is simple and fast. Learn how to get started today.

RStudio Server

Azure Databricks available in Australia and UK

We are excited to announce the general availability of Azure Databricks in four additional regions – UK South, UK West, Australia East, and Australia South East. These additional locations bring the product worldwide availability count to 15 regions backed by a 99.99 percent SLA.

We want to ensure that we build our cloud infrastructure to serve the needs of customers by driving innovation and making it accessible globally. Stay updated with the region availability for Azure Databricks.

Azure Databricks supports Azure Data Lake Storage Gen2 in preview

Azure Databricks now supports the preview of Azure Data Lake Storage Gen2. To learn more about Azure Data Lake Storage Gen2, read Tad’s blog about the announcement.

Organizations also benefit from Azure Databricks' native integration with other services like Azure Blob Storage, Azure Data Factory, Azure SQL Data Warehouse, and Azure Cosmos DB. This enables new analytics solutions that support modern data warehousing, advanced analytics, and real-time analytics scenarios.

Get started today!

We are excited for you to try Azure Databricks! Get started today and let us know your feedback.

Supercharging the Git Commit Graph II: File Format

$
0
0
Earlier, we announced the commit-graph feature in Git 2.18 and talked about some of its performance benefits. Today, we’ll discuss some if the technical details about how the commit-graph feature works, including some helpful properties of its file format. This file speeds up commit-graph walks so much that we were able to identify other ways... Read More

Spoken Language Identification in Video Indexer

$
0
0

We are excited to share that Video Indexer has a new capability, Spoken Language Identification (LID)!

A common ask from our customers has been to enable indexing of videos or batches of videos, without manually providing their language. This is especially important for batch uploads. To support this, we have introduced automatic spoken language identification to Video Indexer. The identified language is used to invoke the appropriate speech-to-text model.

LID is based on state of the art Deep Learning applied on the audio. LID currently supports eight languages including English, Chinese, French, German, Italian, Japanese, Spanish, and Russian. It works with high accuracy for high-to-mid quality recordings. We are working on adding more languages to the list, so stay tuned.

Let’s learn more about LID in Video Indexer.

Using LID in Video Indexer

To use the LID capability, you have two options. If you use the portal, you can now select Auto detect in the language selection combo box when uploading a video.

Fig2

If you use the API to upload a video, use auto as the language parameter value.

Attribute sourceLanguage in the video index JSON under root/videos/insights is assigned the detected language, and attribute sourceLanguageConfidence:

Fig3

Note to the user

  • The model behind LID works best with clear recordings: broadcast materials and enterprise materials such as podcasts, lectures, tutorials, etc.
  • The model may be confused by: noisy recordings, low-quality recordings, highly variant acoustics, and heavy accents.
  • When the model cannot yield a result with high confidence, VI will fall back to English.

Behind the curtains

Many cognitive tasks, including spoken language identification, are easy for humans but still very challenging for computers. One way to approach this type of tasks, is to mimic the human brain. The initial idea of an artificial neural network was proposed more than 70 years ago. The state of the art in the field is called Deep Learning and is being successfully used for different tasks in Speech and Language Understanding, Computer Vision and even outperforming humans in some tasks, such as diagnosis of skin cancer.

In VI, we harness the power of Deep Learning for Spoken Language Identification. We train the network by presenting it with a huge number of speech examples, coming from different speakers and having diverse acoustic conditions.

The figure below shows how we represent speech to the network. This representation turns voice into an image called a spectrogram. A spectrogram gives us a sense of how complex acoustics are, as 30 seconds of speech can easily require 300,000 pixels!

Fig1

Legend: Phonetic visualization of a speech smaple. Top: Waveform representation of the recorded audio. Bottom: Spectrogram representation.

The network learns from such huge amounts of data by looking for patterns in the spectrograms, which differentiate between languages. A good pattern is a pattern that is typical to one language. Deep learning starts with a random guess on what these patterns are. Then, using the examples from each language, improves the guess in the right direction. Here is a fun example of what a rolling "R" in Spanish looks like on a spectrogram.

Conclusion

LID is useful when one needs to index videos whose dominant language is not known. LID is based on advanced Deep Learning modeling and works best for high- to mid-quality recordings. We are expanding LID to cover more acoustic environments. Please try LID on the Video Indexer web portal and visit our Video Indexer developer portal, for details on the API. We are looking forward to hearing on your experience with LID!

Have questions or feedback? We would love to hear from you! Use our UserVoice to help us prioritize features, or email VISupport@Microsoft.com.

Securing the connection between Power BI and Azure SQL Database

$
0
0

How can you connect to Azure SQL Database from the Power BI service in a secure fashion? The easiest way to limit access to the database is to select the “allow access to Azure Services” option (Figure1). This can be found in the database server options in the Azure portal. This allows Power BI to access your database. However, it also makes the database visible to any component deployed within Azure, such as a virtual machine. For many organizations this is not sufficient for their security and compliance requirements.

Figure1
Figure 1: Setting the database access in the Azure Portal.

  The following is a list of suggestions that one may want to consider achieving the organizations security goals:

To start, use VNet service endpoints to further secure access. This feature was introduced at the start of 2018. This is easy to configure. In the Azure portal either create a new virtual network or edit an existing VNet and enable service endpoints for SQL in the VNet (Figure2).

Figure2

Figure 2: Creating a service endpoint in the virtual network.

Once completed, the next task is to set up a virtual network rule on the database server. This allows us to restrict access to all the SQL databases on that database server to just a subnet within the virtual network. This might be a little too restrictive, so additionally you may also add specific ip addresses that can also have access. The example below (Figure3) illustrates the scenario where a vnet rule called newVnetRule1 restricts access to just objects within the subnet and in addition external access is granted to a machine using the ip address 80.90.100.110. The latter is useful if you also need to allow access from on-premise machines connecting to the database with Power BI desktop. You can simply restrict external access to your companies ip address range.

Figure3

Figure 3: Adding a virtual network rule and a client ip to the database server.

By restricting access to the database server, we have also prevented the Power BI service from connecting to the database. The solution is to install the on premise data gateway on a virtual machine that resides within the subnet. See the documentation for recommendations on server sizing for the gateway. There are two steps to this, firstly install and configure the gateway on the VM within the subnet. Afterwards use the Power BI portal to configure the gateway so that it is aware on the database you wish to connect to, and the security you want to apply. There is a good write-up of this process. The gateway can either communicate via TCP or HTTPS. The former is more efficient but will require ports 443 (default), 5671, 5672, 9350 thru 9354 to be opened for outgoing traffic whereas HTTPS will only require port 80. To use TCP, ensure that in the gateway configuration screens under networking that the Azure service bus connectivity mode is correctly selected (Figure 4). Note: the gateway does not require any inbound ports to be opened.

Figure4

Figure 4: Setting the on-premise gateway to connect over TCP.

It is important to note that for the gateway connector we need to use at present is the SQL Server connector. This provides support for both basic and windows authentication. That means that not only can the gateway connect to the backend SQL Server database with a single username and password, but you can also use Windows authentication to pass through the current users’ credentials when issuing queries directly to the database. This provides a solution where the Power BI user’s access to data can be restricted to a data subset by the SQL Server DBA. We are using the same connector to access the Azure SQL Database. The only authentication method common to both databases is database authentication. Therefore, we are restricted to basic authentication when configuring the gateway and therefore user credentials cannot be passed onto the database via the gateway. This may change over time but at the time of writing this article this is the current restriction.

To avoid having a single point of failure in accessing the database through the gateway it is also possible to install multiple gateways in a cluster to provide resiliency. Simply create a second virtual machine and install a second gateway. During the installation you will be able to choose an option to cluster the gateways.

The final step is to go back and make the following changes to the virtual network: create a network security group that can be applied to the subnet. That security group will restrict access to resources on just the incoming ports that you wish to allow. In the above scenario with only SQL databases in the network we would restrict the ports to just the IP ports listed above. If the virtual network is being shared by other resources then they may require additional ports to be opened. A final point to be aware of is that we have deliberately prevented access to the database from other Azure services. As a consequence we will restrict the use of certain Azure SQL Database features. 

Now that everything is set up and working you may be interested in monitoring the performance of the gateway. There is an whitepaper by Brett Powell that discusses the gateway performance counters available and how to you can loading the output of the log files into a Power BI report for further analysis.


Azure.Source – Volume 38

$
0
0

Announcements at GeekWire Cloud Tech Summit

Microsoft from GeekWire Cloud Tech Summit: New Azure innovations will advance the intelligent cloud and intelligent edge - Mark Russinovich CTO, Microsoft Azure, covers announcements he made at the GeekWire Cloud Tech Summit. He also discussed how customers are using the cloud and what the future holds with GeekWire’s Todd Bishop and Tom Krazit. This post provides a roll-up of the announcements made at the summit, which are covered in more details in the posts below.

The next level in big data analytics

Azure simplifies cloud analytics - This post provides a roll-up of the big data analytics news, including the preview release of Azure Data Lake Storage Gen2, which unifies the core capabilities from the first generation of Azure Data Lake with a Hadoop compatible file system endpoint now directly integrated into Azure Blob Storage. This enhancement combines the scale and cost benefits of object storage with the reliability and performance typically associated only with on-premises file systems.

Azure Friday | Episode 446 - Azure Data Lake Storage Gen2 overview - James Baker joins Lara Rubbelke to introduce Azure Data Lake Storage Gen2, which is redefining cloud storage for big data analytics due to multi-modal (object store and file system) access and combining the best qualities of a dedicated analytics file system with those of a cloud-scale object store.

Azure Data Factory new capabilities are now generally available - With a drag-and-drop graphical user interface, data engineers and developers can quickly and easily create, schedule, and manage data integration at scale. Azure Data Factory now supports code-free data ingestion from over 70 data source connectors to accelerate data movement across on-premises, cloud, and applications.

Lift SQL Server Integration Services packages to Azure with Azure Data Factory - Using code-free ADF UI/app, data engineers and developers can now provision and monitor Azure-SSIS Integration Runtime (IR) which are dedicated ADF servers for SSIS package executions. Data engineers and developers can continue to use familiar SQL Server Data Tools (SSDT) and SQL Server Management Studio (SSMS) to design, deploy, configure, execute, and monitor SSIS packages in the cloud. All of these capabilities are now generally available.

Enterprises get deeper insights with Hadoop and Spark updates on Azure HDInsight - Azure HDInsight is one of the most popular services amongst enterprise for open source Hadoop & Spark analytics on Azure. This post covers updates to Apache Hadoop, Apache Spark 2.3, Apache Kafka 1.0 and 2000 plus bug fixes across 20 plus Open Source frameworks that are part of HDInsight, the general availability of Machine Learning (ML) Services 9.3 on Azure HDInsight, enhancements to HDInsight to include support for Virtual Network Service Endpoints, improved security and compliance, and a 50% reduction in HDInsight pricing.

Enabling the intelligent edge

Azure IoT Edge generally available for enterprise-grade, scaled deployments - Azure IoT Edge is now generally available (GA) globally. This post goes into detail on updates for developing and deploying intelligent applications to Azure IoT Edge, including the release to open source of the IoT Edge runtime. In addition, you can learn what a few of our customers and partners have to say about IoT Edge.

The IoT Show | Azure IoT Edge - ready for enterprise-grade, scaled deployment - Azure IoT Edge is now generally available and ready for production. The release comes with new features making the platform enterprise ready such as 0-touch provisioning and CI-CD support through VSTS. Check out the 0-touch provisioning demo in this new episode of the IoT Show.

Automatic device management, module identity, and module twin are now generally available - Each of these features enable scenarios to enhance device management capabilities within your IoT application built on Azure IoT Hub. Learn more about these features and the expanded SDK support they each bring.

Expanding Azure Certified for IoT program for the intelligent edge - With the emergence of the intelligent edge and hardware innovations, we are expanding the certification program to support a wide range of hardware from low powered, constrained devices to AI-capable industrial gateways. This post announces certification of Azure IoT Edge devices in the Azure Certified for IoT program, supporting certification of core functionalities such as device management, security, and advanced analytics. Learn more about the certification program, including device prerequisites and certification criteria.

Azure global infrastructure

We’ve announced 54 Azure regions to help you deliver cloud services and apps to nearly every corner of the globe and to provide everything that’s needed to run mission-critical applications, across scenarios, with a full set of resiliency solutions. Two additional regions are now generally available in China. In addition, we recently announced plans to expand our cloud infrastructure in Europe and the Middle East, including plans for new regions coming to Norway.

Now in preview

New zone-redundant VPN and ExpressRoute gateways now in public preview - By adding support for Azure Availability Zones, we bring increased resiliency, scalability, and higher availability to virtual network gateways. You can now deploy VPN and ExpressRoute gateways in Azure Availability Zones, which physically and logically separates them into different Availability Zones protecting your on-premises network connectivity to Azure from zone-level failures. Additionally, we have made fundamental performance improvements including reducing the deployment time to create a virtual network gateway.

Azure Elastic Database jobs is now in public preview - The Elastic Database jobs is part of Azure SQL Database service and there is no additional charge for using the public preview version. Unlike the earlier, customer-hosted and managed version of Elastic Database jobs, this version is an integral part of Azure with no additional services or components to install and configure. This release also adds significant capabilities making it easy for customers to automate and execute T-SQL jobs using PowerShell, REST, or T-SQL APIs against a group of databases. These jobs can be used to handle a wide variety of tasks such as index rebuilding, schema updates, collection of query results for analytics, and performance monitoring.

Architectural diagram illustrating an Azure Elastic Database Jobs solution

Autocomplete in Azure Search now in public preview - Autocomplete (one of our most requested features), also called “type-ahead search”, can enhance the search experience by finding potential terms in the index that match the partial term being written by the user. Autocomplete API also supports fuzzy matching in each of these modes. When fuzzy is enabled, it compensates for typos and misspellings, and proposes relevant results based on user intent.

Static website hosting for Azure Storage now in public preview - This set of new storage capabilities enables a cost-effective and scalable solution for hosting integrated modern web applications on Azure. On a static website, webpages contain static content and JavaScript or other client-side code. By contrast, dynamic websites depend on server-side code, and can be hosted using Azure Web Apps. The feature set is available in all public cloud regions with support in government and sovereign clouds coming soon. Static website hosting support in Azure Storage is provided at no additional cost.

Now generally available

Network Performance Monitor’s Service Connectivity Monitor is now generally available - With Service Connectivity Monitor (previously in preview as Service Endpoint Monitor), you can now monitor connectivity to services such as applications, URIs, VMs, and network devices, as well as determine what infrastructure is in the path and where network bottlenecks are occurring.

Also generally available

News and updates

Backup your applications on Azure Stack with Azure Backup - Announces the capability to backup files and applications data using Microsoft Azure Backup Server. Azure Stack tenants can now take app consistent backup of their data in Azure Stack VMs, store them on the stack for operational recoveries, and send the data to Azure for long-term retention and offsite copy needs.

Diagram illustrating Azure Stack Tenant backup with Microsoft Azure Backup Server

Use Azure Active Directory with Spring Security 5.0 for OAuth 2.0 - Spring Starter for Azure Active Directory (AD) is now integrated with Spring Security 5.0. It offers you an easy way to build OAuth2.0 authentication and authorization flow for your Java apps in the cloud, supporting both implicit and authorization code grant types. With only a few lines of configuration, you can build apps that perform authentication with Azure Active Directory OAuth2 and manage authorization with Azure Active Directory groups.

4 month retirement notice: Access Control Service - As originally announced in November, 2017, this is a reminder that the Access Control Service, otherwise known as ACS, is officially being retired. ACS will remain available for existing customers until November 7, 2018. After this date, ACS will be shut down, causing all requests to the service to fail.

Additional news and updates

Naming updates and GUID migrations

The Azure Podcast

The Azure Podcast: Episode 235 - AI, Blockchain and Big Data discussion - Cale and Sujit talk about the new style of applications that leverage AI, Blockchain and Big Data services in Azure.

Industries

Healthcare on 5G - As healthcare plans IT for next 3-5 years it is important to take 5G into consideration as it opens new opportunities to move workloads to the cloud both for the use cases discussed in this blog, and many more. 5G has a latency of less than 1ms, bandwidth of up to 10 Gbps, and up to a million connections per square KM! This is going to pave the way for many new innovations in healthcare, which are discussed in this post.

Augmented Reality becomes mainstream in Manufacturing, changes the face of the industry - Learn how the real value of AR/MR is in augmenting the real world with digital information, and not just projecting 3D models in physical space. In other words, providing additional context around the thing you were looking at. That’s when AR/MR “clicked” and more innovative and useful applications started to emerge, now attracting the attention of even the most skeptical and crusty manufacturers.

How tech is moving the insurance industry to be more customer-focused - ABSTRACT

Reasons why retail and consumer goods brands should address Artificial Intelligence today - Learn how technology can now deliver innovative solutions directly to insurance customers. For example, chat bots, driven by AI, direct customers to the most appropriate products and price the products based on the most current risk assessment. The customer interaction continues afterwards, IoT and telemetric data are used to adjust risk then alert customers of claim-generating events.

Azure Friday

Azure Friday | Episode 447 - Azure AD Managed Service Identity - Arturo Lucatero joins Donovan Brown to discuss Azure AD Managed Service Identity, which can be used to authenticate to any service that supports Azure AD authentication.

Azure Friday | Episode 445 - Managing costs with the Azure Budgets API and Action Groups - Vinod Kurpad joins Lara Rubbelke to discuss how Azure Cost Management APIs provide critical cost management features like budgets and data APIs to enable granular analysis of your cloud spending.

Technical content and training

Structured streaming with Azure Databricks into Power BI & Cosmos DB - This post discusses the concept of Structured Streaming and how a data ingestion path can be built using Azure Databricks to enable the streaming of data in near-real-time. It touches on some of the analysis capabilities which can be called from directly within Databricks utilising the Text Analytics API and also discuss how Databricks can be connected directly into Power BI for further analysis and reporting. As a final step, it covers how streamed data can be sent from Databricks to Azure Cosmos DB as the persistent storage.

A closer look at Azure Data Lake Storage Gen2 - Azure Data Lake Storage Gen2 takes core capabilities from Azure Data Lake Storage Gen1 such as a Hadoop compatible file system, Azure Active Directory and POSIX based ACLs and integrates them into Azure Blob Storage. This combination enables best in class analytics performance along with Blob Storage’s tiering and data lifecycle management capabilities and the fundamental availability, security and durability capabilities of Azure Storage. This post takes a closer look at the innovative Hadoop file system implementation, Azure Blob Storage integration and a quick review of why Azure Data Lake Storage Gen2 enables the lowest total cost of ownership in the cloud.

Using the Retry pattern to make your cloud application more resilient - Running your application in containers or in the cloud does not automatically make your application resilient. It’s up to you to configure the features that will enable the retry logic you provide. This post takes a look at how you can make your system more resilient by applying the Retry and Circuit Breaker resiliency pattern.

The emerging big data architectural pattern - Lambda architecture is a popular pattern in building Big Data pipelines. It is designed to handle massive quantities of data by taking advantage of both a batch layer and a stream-processing layer. This post looks at some of the reasons that have led to the popularity and success of the lambda architecture, particularly in big data processing pipelines.

Migrating IoT Edge solutions to GA - The release of IoT Edge to GA adds many new features for those already using public preview bits. Customers who have never used Azure IoT Edge can start with the Linux or Windows quickstarts. Those who have started projects on preview bits should upgrade to the latest bits and integrate breaking changes. This post helps current customers update their projects to work with the GA release of IoT Edge.

A Cloud Guru: Azure This Week

Azure This Week - 29 June 2018 - In this episode of Azure This Week, Dean takes a look at the public preview of Azure Elastic Database Jobs, Event Triggers for Azure Data Factory, as well as a number of services that have been updated to support Availability Zones.

Events

Silicon development on Microsoft Azure - Microsoft is both a developer and consumer of silicon. We are partnering with our internal silicon development organizations as well as the industry – design, manufacturing, and tools – to addressing current and emerging infrastructure needs with the silicon design and development workflow that is based on electronic design automation (EDA) software. Last week at the Design Automation Conference (DAC), we released a white paper with detailed information on how to configure Azure services for Silicon development, Azure for the Semiconductor Industry.

Customers and partners

Customer 360 Powered by Zero2Hero now available on Azure Marketplace - Bardess is bringing together the technology of Cloudera, Qlik, and Trifacta, along with their own accelerators and industry expertise, to deliver rapid value to customers. Customer 360 Powered by Zero2Hero, is the first in a new series of integrated solutions coming to Azure Marketplace and AppSource as Consulting Services offers, and is now available.

Azure Friday | Episode 444 - Using JFrog Artifactory with Azure Kubernetes Service - Kit Merker, VP of Business Development at JFrog shows how you can easily build and release software using popular DevOps tools including Git, Jenkins, Artifactory, and Azure Kubernetes Service (AKS).

Get video insights in (even) more languages! - Video Indexer is a cloud application and platform built upon media AI technologies to make it easier to extract insights from video and audio files. Supported languages include English, Spanish, French, German, Italian, Chinese (Simplified), Portuguese (Brazilian), Japanese, Arabic, and Russian. We partner with other transcription service providers to extend Video Indexer's speech-to-text capabilities to many more languages. One of those partnerships is with Zoom Media, which extended the Speech-to-text to Dutch, Danish, Norwegian and Swedish. An open-sourced release of an integration between Video Indexer and Zoom Media now available on GitHub.

Azure Search – Announcing the general availability of synonyms

$
0
0

Today we are announcing the general availability of synonyms. Synonyms allow Azure Search to associate equivalent terms that implicitly expand the scope of a query, without the user having to provide the alternate terms.

A good example of this capability was demonstrated at the recent Microsoft Build conference, where we showed how NBA.com searches their vast photo library of players, owners, and celebrities. In this application Azure Search synonyms are used to enable nicknames of Lebron James such as “The King” or “King James” to be returned regardless of which of the three terms are used in the query.

In Azure Search, synonym support is based on synonym maps that you define and upload to your search service. These maps constitute an independent resource, such as indexes or data sources, and can be used by any searchable field in any index in your search service. Synonym maps use the Apache Solr format as outlined in the example synonym map below:

POST https://[servicename].search.windows.net/synonymmaps?api-version=2017-11-11	
api-key: [admin key]	
{	
   "name":"mysynonymmap",	
   "format":"solr",	
   "synonyms": "	
	USA, United States, United States of American	
	Washington, Wash., WA => WAn"	
}

In the above example, you can see there are two types of synonyms that are used. The first example is a set of synonyms which indicate that a user could search using any of the three terms ("USA", "United States", or "United States of America") in their query and any document that contains either of these terms will become viable search results.

The second example is an explicit mapping and is denoted by an arrow "=>" that states that a search query that matches the left hand side of "=>" will be replaced with the alternatives on the right hand side. Given the rule below, search queries "Washington", "Wash.", or "WA" will all be rewritten to "WA". Explicit mapping only applies in the direction specified and does not rewrite the query "WA" to "Washington" in this case.

The first option is useful in situations where you have multiple ways of referring to the same thing in the index. The second is good when the data is normalized to single value in the index, but people would refer to the same thing by multiple terms in a query. 

TIP: Azure Search Traffic Analytics is a great way to identify queries with low recall that can be candidates to be used as synonyms.

Once the synonym map has been created, you can then associate it with any fields within your indexes. Afterwards, the synonym map can be updated with new synonyms that will instantly be incorporated into subsequent searches. For example, if you were using the REST API to create your Azure Search index, you could apply it to a field called “description” as follows:

POST https://[servicename].search.windows.net/indexes?api-version=2017-11-11	
api-key: [admin key]	
{	
    "name":"myindex",	
    "fields":[	
    {	
        "name":"id",	
        "type":"Edm.String",	
        "key":true	
    },	
    {	
        "name":"description",	
        "type":"Edm.String",	
        "searchable":true,	
        "synonymMaps":[	
            "mysynonymmap"	
        ]	
    }	
    ]	
}	

Learn more about synonyms in Azure Search.

Agile SAP development with SAP Cloud Platform on Azure

$
0
0

This blog post was co-authored by Mario Szpuszta, Principal Software Engineer, Azure CAT

Recently we announced that SAP Cloud Platform is transitioning from Beta to general availability on Azure. SAP Cloud Platform (SAP CP) is SAP's multi-cloud platform-as-a-service offering and is now available for production use in Azure West Europe.

With SAP CP on Azure, we extend the choices available on Azure to meet your SAP development needs.  SAP CP offers a fully managed platform-as-a-service, operated by SAP, and is the first multi-tenant and fully managed Cloud Foundry PaaS on Azure. With SAP CP running on Azure, customers can

SAP Cloud Platform on Azure – Getting started

To get started with SAP CP on Azure, login to your SAP CP account. Pick Cloud Foundry and select Europe (Netherlands) Azure region. This will create an Organization and Space within the SAP CP Cloud Foundry environment.

image_1_regions

Deploying applications and services

Developers can use either the SAP CP cockpit or Cloud Foundry CLI to deploy and manage their applications and services.

SAP CP cockpit provides a convenient way to browse and monitor deployed applications. Developers can use cockpit to browse through the catalog of infrastructure services enabled by SAP under the Service Marketplace. These services leverage Azure Virtual Machines for infrastructure, even configuring use of Azure Availability Zones for high availability.

image_2_marketplace

Using the Cloud Foundry CLI

Since SAP CP is a Cloud Foundry based PaaS enabled for SAP infrastructure, you can manage your SAP CP environments just like any other Cloud Foundry environment. For SAP-specific services such as HANA, SAP provides plug-ins such as the HANA MTA plug-in for the Cloud Foundry CLI to make it easier to work with SAP-specific services.

SAP CP uses different API endpoints for each region. For accessing the SAP CP landscape deployed in Azure West Europe through the CF CLI, you'd use the following API endpoint:

cf api https://api.cf.eu20.hana.ondemand.com
cf login

You can use all Cloud Foundry CLI/APIs to push apps, explore marketplace, and more.

Connecting to Azure Platform Services using the Meta Azure Service Broker

Meta Azure Service Broker (MASB) lets you provision Azure Platform Services directly from Cloud Foundry. MASB GitHub page provides steps to install the service broker on Cloud Foundry. You can also use Open Service Broker, which is currently in preview but will eventually replace MASB for your productive environments.

Once you've installed MASB, Azure Services will become available in Service Marketplace. You can use Cloud Foundry CLI or SAP CP cockpit to browse the services available.

image_3_cfmarketplacev3

The above shows all Azure services enabled in addition to the services enabled by SAP. You can now start using the services exposed by MASB for Azure. Connecting to Azure Platform services in the Marketplace follows standard Cloud Foundry patterns with Service Brokers. You create a service, and then bind the service to one or many applications using the Cloud Foundry service broker APIs and CLI.

You can find the parameters to be specified for each service on the MASB GitHub. Let's create an Azure CosmosDB as an example. We’ll use the following configuration:

{
   "resourceGroup": "Tests.SAPCPMetaServiceBroker",
   "cosmosDbAccountName": "samplecosmosaccount",
   "cosmosDbName": "samplecosmosdatabase",
   "location": "westeurope",
   "kind": "DocumentDB"
}

We’ll use CloudFoundry CLI commands to create a new service and make Cloud Foundry aware of it:

>cf create-service azure-cosmosdb-xxxxxxx-xxxx-xxxx-xxxx-45337ac75764 standard samplecosmosdb -c C:Tempparams.json

Creating service instance samplecosmosdb in org xxxxxxxtrial_trial / space dev as xxx@live.com...
OK

Create in progress. Use 'cf services' or 'cf service samplecosmosdb' to check operation status.

Attention: The plan `standard` of service `azure-cosmosdb- xxxxxxx-xxxx-xxxx-xxxx-45337ac75764` is not free.  The instance `samplecosmosdb` will incur a cost.  Contact your administrator if you think this is in error.

> cf service samplecosmosdb

Showing info of service samplecosmosdb in org xxxxxxxtrial_trial / space dev as  xxx@live.com...

name:            samplecosmosdb
service:         azure-cosmosdb-xxxxxxx-xxxx-xxxx-xxxx-45337ac75764
bound apps:
tags:
plan:            standard
description:     Azure CosmosDb Service (dev)
documentation:
dashboard:

Showing status of last operation from service samplecosmosdb...

status:    create succeeded
message:   Created the cosmosDb
started:   2018-06-20T14:39:23Z
updated:   2018-06-20T14:44:33Z

You can also see the CosmosDB instance show up in the Service Instances tab in cockpit:

Image_4_CosmosDBSucceed

Finally, by using the cf bind-service command, you can bind the service to any application you've deployed. Configuration parameters will then be exposed through environment variables as per the documentation of the respective service in the Meta Azure Service Broker GitHub. All the above steps can be carried out using SAP Cloud Platform Cockpit, as well.

What’s next

We expect more Azure regions to become available soon for SAP development using SAP Cloud Platform.  As more and more service light up on Open Service Broker for Azure, it will graduate and eventually replace Meta Azure Service Broker. We expect more regions, along with ability to connect to more Azure Services would effectively round out your SAP Cloud development requirements.

Azure Event Hubs and Service Bus VNET Service Endpoints in public preview

$
0
0

This blog was co-authored by Anitha Adusumilli , Principal Program Manager, Azure Networking and Sumeet Mittal, Program Manager, Azure Networking.

Azure Event Hubs, a highly reliable and easily scalable data streaming platform as a service (PaaS) offering has been prolific this year with new features such as Availability Zones and a big investment into Open Source with enabling support for Apache Kafka. Azure Service Bus, a feature cloud messaging PaaS offering that also just offered support for Availability Zones has also been busy. Today, both services are announcing a public preview of Virtual Network Service Endpoints.

This new feature adds to the security and control Azure customers have over their workload environments today. Now, traffic from your VNET to your Premium Service Bus namespaces and Standard or Dedicated Azure Event Hubs namespaces can be kept secure from public Internet access and completely private on the Azure backbone network.

Azure Event Hubs and Service Bus are joining the growing list of Azure services that have enabled Virtual Network Service Endpoints.

Important info

  • Offered with Dedicated and Standard Event Hubs pricing plans as well as Premium Service Bus.
  • The feature is offered at no cost, aside from the usual Event Hubs and Service Bus costs.
  • Available in all public Azure regions.

To enable this feature you can visit the Virtual Network section of the Azure portal and add a subnet to your virtual network.

EH_SB_ServiceEndpoints

Then you can enable the Microsoft.EventHub service endpoint or the Microsoft.ServiceBus endpoint.

EH_SB_ServiceEndpoints

You can also create new virtual networks and virtual network rules from the Event Hubs or Service Bus namespace overview blades.

VNET1

Also you can create VNET rules using an ARM template. For example, the Service Bus template for creating VNET rules looks like the following:

{

"$schema":"http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",

"contentVersion":"1.0.0.0",

"parameters":{

"namespaceName":{

"type":"string",

"metadata":{

"description":"Name of the namespace"

}

},

"vnetRuleName":{

"type":"string",

"metadata":{

"description":"Name of the Authorization rule"

}

},

"virtualNetworkSubnetId":{

"type":"string",

"metadata":{

"description":"subnet ARM Id"

}

}

},

"resources": [

{

"apiVersion": "2018-01-01-preview",

"name": "[concat(parameters('namespaceName'), '/', parameters('vnetRuleName'))]",

"type":"Microsoft.ServiceBus/namespaces/VirtualNetworkRules",

"properties": {

"virtualNetworkSubnetId": "[parameters('virtualNetworkSubnetId')]"

}

}

]

}

Next Steps

For additional information take a look at our documentation for Service Bus service endpoints and Event Hubs service endpoints.

Enhanced Security Update for Bing Maps API Keys

$
0
0

As announced on May 24, the Bing Maps Developer portal  shipped a new feature allowing you to restrict access on your Bing Maps API keys to a set of domains that you specify. Starting today, wildcard is now supported for referrer security whitelist setting.

For example, you can now do: contoso.com/* or http://www.contoso.com/*.

Application Key Security Settings

If you have questions or feedback for the team, please reach out to our Bing Maps Enterprise Support team at bmesupp@microsoft.com.

- Bing Maps Team

Support for Unity (Jumbo) Files in Visual Studio 2017 15.8 (Experimental)

$
0
0

This post was written by Olga Arkhipova.

Many big codebases use so-called unity (jumbo) builds where many source files are included in one or a few ‘unity’ files for compilation, which makes compiling and linking much faster.

Just to avoid any confusion – this blog is NOT related to the Unity game engine.

Looking at some customer feedback regarding slow IntelliSense, we found that projects often include both source files and unity files including those source files. Currently there is no easy way to exclude source files from the build and unity files from the IntelliSense parsing, so we do quite a lot of unnecessary work there.

We’ve been impressed with the speed unity builds were adopted, especially in game development, even though combining files together often requires code changes to be able to build without errors and maintain code semantics. See the following articles about pros and cons of unity builds in CMake and Chromium build:

In Visual Studio 2017 version 15.8 (Preview 3), we are introducing an experimental unity build support, which makes it easy for new users to adopt unity and allows existing unity users to have better IDE performance. Please let us know if it works for you and what can make it easier.

Unity Build Options

To enable experimental unity support, a project needs to have EnableUnitySupport set to ‘true’. You can set this as an environment variable or create Directory.Build.props in your root directory with the following content:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
  <PropertyGroup> 
    <EnableUnitySupport>true</EnableUnitySupport> 
  </PropertyGroup> 
</Project> 

When the feature is enabled, you’ll see ‘Unity Build’ options in the C/C++ properties:

Unity Build Project Settings

Setting “Include in Unity File” to “Yes” indicates that the file should be included in a unity file and should not be compiled on its own. Normally, you’d want to set this property for a project configuration (i.e. affecting all c/cpp files), rather than for each file individually as you’d have to do for the “Excluded from build” property. For big projects, not setting properties for each file decreases project xml size quite significantly and makes it load faster.

If the “Custom Unity File” property is empty or set to “No”, the build will automatically create unity files in “Unity Files Directory”. Each unity file will contain #includes of the source files with the same compiler options. Files with different compiler options (say different include directories or preprocessor definitions) will be in different unity files. Different unity build properties (except “Order Number in Unity File”) will also cause different unity files to be created. However, normally you’d want to set them for project configuration, so they apply to all files.

If necessary, the order of #includes can be controlled by the “Order Number in Unity File” value, and you would need to set it for each file individually.

You can also specify a code snippet to include before/after each #include. You can define them directly in “Code Snippet To Add Before/After Include” properties or, for more complicated snippets, put them in some files and set where to find those files in “File Code Snippet to Add Before/After Include” properties. The snippets can use the following macros:

 $$unity_id$$ - unique unity file hash
 $$file_number$$ - source file number in the unity file
 $$file_name$$ - source file name
 $$file_path$$ - source file full path"

For instance, if you set “File Code Snippet to Add Before Include” to UnityPrefix.cpp which contains the following:

#pragma message ("  Unity compiling: $$file_name$$")
#define UNITY_ID $$unity_id$$_$$file_number$$

and “Code Snippet to Add AfterInclude” to “#undef UNITY ID”, the generated unity file will contain:

#pragma message ("  Unity compiling: input.cpp")
#define UNITY_ID 1STAYUSCBVEILDW3_1
#include "C:MyProjectinput.cpp"
#undef UNITY_ID

“Combine Files Only from the Same Folder” property allows to limit unity file content to one folder unless this folder contains less than the value specified by “Minimum Number of Sources in Unity file” property. Folders with few files still will be combined with other similar folders in one unity file.

If “Multi-Processor Compilation” (/MP) is “Yes”, Visual Studio will create at least as many unity files as the number of processors used by cl.exe.

If “Precompiled Header File” is specified and used by the sources, unity files will #include it too.

Manual custom unity files integration

If you generate your unity files outside of the IDE and include them in your project files so it is possible to manually change their content or their build options, you need to do the following:

  1. For project configuration (default for all files) set both “Include in Unity File” and “Custom Unity File” to “Yes”.
  2. For each custom unity file set “Include in Unity File” to “No”.

This will disable IntelliSense parsing for custom unity files.

Custom unity files integration using MSBuild targets

If you have a script or a tool which generates unity files, you can use it in the build instead of our default unity file generator.

Take a look at the ‘CreateUnityFiles’ target in Common7IDEVCVCTargetsMicrosoft.Cpp.Unity.targets

You can implement your own ‘CreateUnityFiles’ target which will look very similar, but instead of ‘CreateUnityFile’ and ‘CleanupOldUnityFiles’ tasks use the ‘Exec’ task to call your script.

Suppose you have a MyCreateUnityFiles.cmdscript which creates unity files in a specified directory passed as the first parameter. You can create MyUnityFilesCreation.targets with the following content (see lines 15-20):

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
 
<Target Name="CreateUnityFiles" 
      Condition="'@(ClCompile)' != '' and '@(SelectedFiles)' == ''"> 
  <ItemGroup> 
    <_UnityClCompile Include="@(ClCompile)"  
                     Condition="'%(ClCompile.IncludeInUnityFile)' == 'true' and 
                                '%(ClCompile.CustomUnityFile)' != 'true' and  
                                '%(ClCompile.UnityFilesDirectory)' != '' and  
                                '%(ClCompile.PrecompiledHeader)' != 'Create' and  
                                '%(ClCompile.ExcludedFromBuild)' != 'true'" /> 
  </ItemGroup> 
     
  <!-- Create unity files in the specified directory--> 
  <Exec Command="MyCreateUnityFiles.cmd %22%$(IntDir)%22 %22@(_UnityClCompile)%22" 
        Condition="'@(_UnityClCompile)' != ''"/> 
 
  <ItemGroup Condition="'@(_UnityClCompile)' != ''"> 
    <_GeneratedUnityClCompile Include="$(IntDir)unity_*.cpp" /> 
  </ItemGroup> 
     
  <ItemGroup> 
    <!-- remove all items which are included in generated unity files --> 
    <ClCompile Remove="@(_UnityClCompile)" Condition="'@(_UnityClCompile)' != ''"/> 
 
    <!-- remove all items which are included in custom unity files --> 
    <ClCompile Remove="@(ClCompile)"  
               Condition="'%(ClCompile.IncludeInUnityFile)' == 'true' and 
                          '%(ClCompile.CustomUnityFile)' == 'true' and 
                          '%(ClCompile.PrecompiledHeader)' != 'Create' and  
                          '%(ClCompile.ExcludedFromBuild)' != 'true'" /> 
 
    <!-- add all generated unity files --> 
    <ClCompile Include="@(_GeneratedUnityClCompile)" /> 
 
    <!-- cleanup --> 
    <_UnityClCompile Remove="@(_UnityClCompile)" /> 
    <_GeneratedUnityClCompile Remove="@(_GeneratedUnityClCompile)" /> 
  </ItemGroup> 
</Target> 
 
</Project> 

To override the default target, your target needs to be defined after the Microsoft.cpp.targets import in vcxproj file. You don’t need to “wire” the target to make it executed before ClCompile as it has already been done in Microsoft.Cpp.Unity.targets.

To automatically import your targets file in all vcxproj files in the solution, add the following property in your Directory.Build.props:

  <PropertyGroup> 
    <ForceImportAfterCppTargets>
      $(MSBuildThisFileDirectory)MyUnityFilesCreation.targets
    </ForceImportAfterCppTargets> 
  </PropertyGroup> 

You cannot use Directory.Build.targets for your custom CreateUnityFiles target as this file gets imported before Microsoft.Cpp.Unity.targets.

Send Us Feedback

Please download Visual Studio 2017 Version 15.8 Preview and try unity build support. We would love to know how it is working for you. Please give us feedback via the comments below or via email (visualcpp@microsoft.com). For general issues please Report a Problem.

Network Performance Monitor is now generally available in UK South region

$
0
0

Network Performance Monitor (NPM) - a cloud-based network monitoring solution for cloud-only, on-premises, and hybrid networking environments, is now generally available in the UK South region.

Customers in this region can now use various capabilities of NPM, such as:

  • Performance Monitor to monitor connectivity between various locations on the network, visualize the health of all paths on the network, and troubleshoot issues. The Network State Recorder feature allows for the debugging of transient network issues that may have occurred in the past.
  • ExpressRoute Monitor to monitor the availability of ExpressRoute circuits. The health of end to end connectivity, spanning on-premises locations, service provider network (ExpressRoute circuit), and one or more VNETs in Azure can be monitored. Recent additions enable monitoring of Microsoft peering, i.e., connectivity to Office 365, Dynamics, SharePoint, and other productivity services.
  • Service Connectivity Monitor to monitor network connectivity to web based (SaaS and internal line of business) applications and URIs from various locations. The Service Connectivity Monitor correlates application responsiveness with network performance and helps determine if the poor application experience is impacted by network issues.

Application or network problem

    Chart of application response time and network latency. Significant variation in network latency (represented by the orange line) at noon, has resulted in an increase in application response time (purple line).

     

    More information on Network Performance Monitor and each of the above capabilities is available online. Customers can monitor networks, ExpressRoute circuits, or URLs in any location using an NPM workspace located in UK South or in any of the other supported regions.


    What’s new in Azure IoT Central

    $
    0
    0

    Azure IoT Central brings the simplicity of SaaS for IoT with built-in support for IoT best practices, and world class security and scalability with no cloud expertise required. We have been constantly adding new features, and true to the promise of SaaS applications, you can just start using these features right away to build production-grade applications without worrying about managing infrastructure.

    Since entering public preview, IoT Central has implemented a number of new features, capabilities, and usability improvements. We will dive deeper in to many of these features in the future, but for now we’d like to focus broadly on what new features have landed in IoT Central.

    State measurement

    Previously, devices could be measured by telemetry or by events triggered. Now, users can measure their devices qualitatively by defining device states. State measurement enables devices to report the current state of the overall device or its components. For example, a connected air conditioner may have two states (stopped and operating), and a user can see all connected devices and their current state. For more information, please visit the state measurement documentation.

    State measurement

    Event monitoring template

    IoT Central is continuing to expand remote monitoring capabilities by adding support for device event monitoring. Using a simple and intuitive UI, users can now set up rules to monitor any critical events from their devices and get alerted within minutes of an issue occurring. To learn more, please visit the event monitoring documentation.

    Event monitoring

    Bulk device import and export

    Connecting a large number of devices to IoT Central can be difficult. Previously, connecting these devices at once was an error-prone, overly manual process that took a lot of time to set up. Now, users can register large numbers of devices in IoT Central at once, using a simple csv file that can be created by hand or exported from existing asset management or ERP systems. Additionally, users can download device identities and the corresponding device connection strings as a csv which can be used to automate the process to flash credentials onto devices. With this change, applications can be scaled up and duplicated much more easily.

    Bulk device import

    Bulk device export

    Learn more about importing and exporting devices.

    Location and map services

    As mentioned in the blog post Location and Maps in Azure IoT Central powered by Azure Maps, IoT Central now leverages Azure Maps. This new feature set enables powerful new geospatial services for many use cases. Users can give geographic context to their location data and enter location properties, which allows them to validate location information, spatially reference device locations, or geofence use cases around their device.

    Location and map services

    New account management tools

    Subscriptionless trials

    We’ve made it easier to try out IoT Central. A user can now try out IoT Central without an Azure subscription. Only an email address is needed to set up an account. Learn more about how to get started with IoT Central today.

    Microsoft IoT Central

    Self-service trial improvements

    The administration section of IoT Central has gotten several usability improvements. Previously, users would need to reach out to a customer support specialist, but now can administer their trials themselves. A user can now extend their trials, convert to paid, and manage application settings from the administration page within the application. Learn more about how to administer your application.

    Administration

    To explore the full set of features and capabilities start your 30-day free trial and learn more on the IoT Central website. Check out our documentation including tutorials to connect your first device. Have feedback or questions? Don’t hesitate to write to us at iotcfeedback@microsoft.com.

    To learn more about the Azure IoT portfolio including latest news, visit the Microsoft Azure IoT page.

    IP filtering for Event Hubs and Service Bus

    $
    0
    0

    For scenarios in which Azure Event Hubs or Azure Service Bus is only accessible from certain well-known sites, the IP Filter feature enables you to configure rules for accepting or rejecting traffic originated from specify IP addresses, for instance the addresses that come under corporate NAT gateway. The Azure team is happy to announce the public preview of IP Filtering for Service Bus Premium and Event Hubs Standard and Dedicated price plans.

    This feature allows users to control which IPs are accessing their resources. Some characteristics of this feature:

    • Rules allow you to specify accept and reject actions on IP masks.
    • The rules work with IPv4 addresses.
    • Rules are applied to the namespace level.
    • You can have multiple rules and they are applied in order.
    • The first rule that matches the IP address determines the accept or reject action.
    • Requests from IPs that are rejected receive an unauthorized response.

    Today these features are available in the Azure portal as shown in the screenshot. You can find them at the Event Hubs or Service Bus namespace level or via an ARM template.

    The below ARM template shows how you can use this feature. This template takes the following parameters:

    • ipFilterRuleName must be a unique, case-insensitive, alphanumeric string, up to 128 characters long.
    • ipFilterAction is either Reject or Accept as the action to apply for the IP filter rule.
    • ipMask is a single IPv4 address or a block of IP addresses in CIDR notation. For example, in CIDR notation 70.37.104.0/24 represents the 256 IPv4 addresses from 70.37.104.0 to 70.37.104.255, with 24 indicating the number of significant prefix bits for the range.
    {
       "$schema":"http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{   
                    "namespaceName":{
                          "type":"string",
                          "metadata":{
                               "description":"Name of the namespace"
                          }
                    },
                    "ipFilterRuleName":{
                          "type":"string",
                          "metadata":{
                               "description":"Name of the Authorization rule"
                          }
                    },
                    "ipFilterAction":{
                          "type":"string",
                          "allowedValues": ["Reject", "Accept"],
                          "metadata":{
                               "description":"IP Filter Action"
                          }
                    },
                    "IpMask":{
                          "type":"string",
                          "metadata":{
                               "description":"IP Mask"
                          }
                    }
             },
           "resources": [
            {
                "apiVersion": "2018-01-01-preview",
                "name": "[concat(parameters('namespaceName'), '/', parameters('ipFilterRuleName'))]",
                "type": "Microsoft.EventHub/Namespaces/IPFilterRules",
                "properties": {
                               "FilterName":"[parameters('ipFilterRuleName')]",
                               "Action":"[parameters('ipFilterAction')]",                        
                    "IpMask": "[parameters('IpMask')]"
                }
            }
        ]
    }

    Want tighter control of who is accessing your Event Hubs or Service Bus queues and topics? Give IP Filters a try today for your Service Bus or Event Hubs namespace!

    New Azure #CosmosDB Explorer now in public preview

    $
    0
    0

    Today we're excited to announce Azure Cosmos DB Explorer, a full screen standalone web-based version of the Data Explorer many of you already use in Azure Portal for Cosmos DB.

    With Cosmos DB Explorer you can:

    • Take advantage of the full screen real estate for your queries and results.
    • Access your database account and collections with a connection string, without needing access to the Azure subscription or portal.
    • Share query results with authorized peers who do not have Azure portal access.
    • Work with Cosmos DB data without having to download any desktop tools locally.

    From Azure Portal, you can open your account in Cosmos DB Explorer by clicking on the Open Full Screen button in Data Explorer blade.

    cosmos-explorer-portal

    In the drop-down dialog you can choose the type of access you'd like to open the account with and click Open, “read & write” is default. You can also copy the Cosmos DB Explorer link and share with your colleagues, for example if you want to share read-only results of a query with teammates who don't have access to Azure Portal.

    image

    When you open Cosmos DB Explorer this way, the access will expire in few hours for security reasons. After which you need to re-connect using a valid Cosmos DB connection string to the account.

    You can also open Cosmos DB Explorer directly and supply a connection string to your Cosmos DB account.

    image

     

    Try Cosmos DB Explorer out and let us know what you think! You can try out Azure Cosmos DB for free, you don’t even need an Azure subscription. If you need any help or have questions or feedback, please reach out to us through askcosmosdb@microsoft.com. Stay up-to-date on the latest Azure #CosmosDB news and features by following us on Twitter @AzureCosmosDB. We are really excited to see what you will build with Azure Cosmos DB!

    Proposal Manager for financial services helps increase proposal win rates

    $
    0
    0

    The commercial and corporate lending environment is increasingly competitive and squeezing interest margins for banks and lenders. Bank lending teams must navigate a stream of documents—such as client financials, collateral assets, and regulatory attestations. They must follow protocols that thoroughly analyze the risk attached to a credit facility and income potential of business loans and capital investments. Since lending proposals contain sensitive client information, strict privacy, security, and compliance measures are required. In addition, financial services institutions are hampered by disjointed systems and manual processes that are costly and slow—often leading to inconsistent results, higher error rates, and increased costs.

    To win business in this competitive market, lending teams need the right tools to deliver tailored proposals quickly and easily. Built on the Microsoft 365 platform, the Proposal Manager solution is designed specifically for corporate and commercial banks to:

    • Streamline, automate, and speed up the lending process.
    • Create more effective proposals.
    • Collaborate across the bank with strict confidentiality.

    The solution was developed by the Microsoft Financial Services team and developers as part of their focus to build vertical-specific solutions. No other cloud productivity providers offer a true banking-specific, end-to-end proposal management solution—architected from the ground up using the Microsoft 365 productivity suite.

    The solution is fully customizable and adaptable by your enterprise development team, so your lending team can:

    • Easily create professional, winning proposals—Save time, sharpen creativity, and present professional commitment letters to increase win rates and improve credit risk management.
    • Streamline proposal management—Simplify the commercial and corporate loan origination process with integrated, automated, and secure tools for document management while orchestrating team workflows and collaboration. Bank managers can facilitate iterative proposal negotiations while ensuring version consistency, empower relationship managers on the go, and help expedite credit committee approvals.
    • Improve collaboration and teamwork—Respond to proposals quickly and collaboratively with connected, company-wide communications and collaboration tools. Meet tight deadlines and keep the proposal process moving seamlessly by sharing and collaborating in real-time. Lead proposal reviews and whiteboarding sessions with enterprise-class email, voice, and video.

    The numbers don’t lie. The impact a solution like this could have for your firm is significant. A recent Capgemini study found that back-office commercial bank employees spend about 80 percent of their time on repetitive and manual tasks. The same study also cites that automation will provide more than 25 percent in cost savings by automating data-intensive and repetitive tasks. Can you imagine what all your employees could achieve if their time were freed up to tackle other revenue-generating projects?

    The Proposal Manager solution is now available to all Microsoft 365 E5 customers. It’s integrated across existing Microsoft 365 workloads to help you transform your proposal process into an agile, collaborative, secure, and client-centered process without requiring significant IT involvement for deployment.

    Sales managers and other business leaders can download the Proposal Manager brochure and engage your IT support and development team to understand more about how the solution can help. IT developers can visit GitHub today to get started.

    The post Proposal Manager for financial services helps increase proposal win rates appeared first on Microsoft 365 Blog.

    Windows 10 SDK Preview Build 17704 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 17704 or greater). The Preview SDK Build 17704 contains bug fixes and under development changes to the API surface area.

    The Preview SDK can be downloaded from developer section on Windows Insider.

    For feedback and updates to the known issues, please see the developer forum. For new developer feature requests, head over to our Windows Platform UserVoice.

    Things to note:

    • This build works in conjunction with previously released SDKs and Visual Studio 2017. You can install this SDK and still also continue to submit your apps that target Windows 10 build 1803 or earlier to the Store.
    • The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2017 here.
    • This build of the Windows SDK will only install on Windows 10 Insider Preview builds.

    What’s New:

    MSIX Support

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

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

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

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

    MC.EXE

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

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

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

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

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

    The generated header now supports several customization macros. For example, you can set the MCGEN_EVENTWRITETRANSFER macro if you need the generated macros to call something other than EventWriteTransfer.

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

    Known Issues:

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

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

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

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

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

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

    There are two ways to fix this:

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

    API Spot Light:

    Check out LauncherOptions.GroupingPreference.

     
    namespace Windows.System {
      public sealed class FolderLauncherOptions : ILauncherViewOptions {
        ViewGrouping GroupingPreference { get; set; }
      }
      public sealed class LauncherOptions : ILauncherViewOptions {
        ViewGrouping GroupingPreference { get; set; }
      }
    
    

    This release contains the new LauncherOptions.GroupingPreference property to assist your app in tailoring its behavior for Sets. Watch the presentation here.

    API Updates, Additions and Removals

    When targeting new APIs, consider writing your app to be adaptive in order to run correctly on the widest number of Windows 10 devices. Please see Dynamically detecting features with API contracts (10 by 10) for more information.

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

    Additions:

    
    namespace Windows.AI.MachineLearning {
      public interface ILearningModelFeatureDescriptor
      public interface ILearningModelFeatureValue
      public interface ILearningModelOperatorProvider
      public sealed class ImageFeatureDescriptor : ILearningModelFeatureDescriptor
      public sealed class ImageFeatureValue : ILearningModelFeatureValue
      public interface ITensor : ILearningModelFeatureValue
      public sealed class LearningModel : IClosable
      public sealed class LearningModelBinding : IIterable<IKeyValuePair<string, object>>, IMapView<string, object>
      public sealed class LearningModelDevice
      public enum LearningModelDeviceKind
      public sealed class LearningModelEvaluationResult
      public enum LearningModelFeatureKind
      public sealed class LearningModelSession : IClosable
      public struct MachineLearningContract
      public sealed class MapFeatureDescriptor : ILearningModelFeatureDescriptor
      public sealed class SequenceFeatureDescriptor : ILearningModelFeatureDescriptor
      public sealed class TensorBoolean : ILearningModelFeatureValue, ITensor
      public sealed class TensorDouble : ILearningModelFeatureValue, ITensor
      public sealed class TensorFeatureDescriptor : ILearningModelFeatureDescriptor
      public sealed class TensorFloat : ILearningModelFeatureValue, ITensor
      public sealed class TensorFloat16Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorInt16Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorInt32Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorInt64Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorInt8Bit : ILearningModelFeatureValue, ITensor
      public enum TensorKind
      public sealed class TensorString : ILearningModelFeatureValue, ITensor
      public sealed class TensorUInt16Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorUInt32Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorUInt64Bit : ILearningModelFeatureValue, ITensor
      public sealed class TensorUInt8Bit : ILearningModelFeatureValue, ITensor
    }
    namespace Windows.AI.MachineLearning.Preview {
      public interface DummyInterfaceToFixBuildBreak
    }
    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.ComponentUI {
      public sealed class ComponentAddedEventArgs
      public enum ComponentLaunchError
      public sealed class ComponentLaunchOptions
      public sealed class ComponentLaunchResults
      public sealed class ComponentManager
      public sealed class ComponentRemovedEventArgs
      public sealed class ComponentReparentResults
      public sealed class ComponentSite
      public enum ComponentState
      public sealed class ComponentStateEventArgs
      public sealed class InputSitePrototype
    }
    namespace Windows.ApplicationModel.DataTransfer {
      public static class Clipboard {
        public static event EventHandler<ClipboardHistoryChangedEventArgs> HistoryChanged;
        public static event EventHandler<object> HistoryEnabledChanged;
        public static event EventHandler<object> RoamingEnabledChanged;
        public static bool ClearHistory();
        public static bool DeleteItemFromHistory(ClipboardHistoryItem item);
        public static IAsyncOperation<ClipboardHistoryItemsResult> GetHistoryItemsAsync();
        public static bool IsHistoryEnabled();
        public static bool IsRoamingEnabled();
        public static bool SetContentWithOptions(DataPackage content, ClipboardContentOptions options);
        public static SetHistoryItemAsContentStatus SetHistoryItemAsContent(ClipboardHistoryItem item);
      }
      public sealed class ClipboardContentOptions
      public sealed class ClipboardHistoryChangedEventArgs
      public sealed class ClipboardHistoryItem
      public sealed class ClipboardHistoryItemsResult
      public enum ClipboardHistoryItemsResultStatus
      public sealed class DataPackagePropertySetView : IIterable<IKeyValuePair<string, object>>, IMapView<string, object> {
        bool IsFromRoamingClipboard { get; }
        string SourceDisplayName { get; }
      }
      public enum SetHistoryItemAsContentStatus
    }
    namespace Windows.ApplicationModel.Store.Preview {
      public enum DeliveryOptimizationDownloadMode
      public enum DeliveryOptimizationDownloadModeSource
      public sealed class DeliveryOptimizationSettings
      public static class StoreConfiguration {
        public static bool IsPinToDesktopSupported();
        public static bool IsPinToStartSupported();
        public static bool IsPinToTaskbarSupported();
        public static void PinToDesktop(string appPackageFamilyName);
        public static void PinToDesktopForUser(User user, string appPackageFamilyName);
      }
    }
    namespace Windows.ApplicationModel.Store.Preview.InstallControl {
      public enum AppInstallationToastNotificationMode
      public sealed class AppInstallItem {
        AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
        AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
        bool PinToDesktopAfterInstall { get; set; }
        bool PinToStartAfterInstall { get; set; }
        bool PinToTaskbarAfterInstall { get; set; }
      }
      public sealed class AppInstallManager {
        bool CanInstallForAllUsers { get; }
      }
      public sealed class AppInstallOptions {
        string CampaignId { get; set; }
        AppInstallationToastNotificationMode CompletedInstallToastNotificationMode { get; set; }
        string ExtendedCampaignId { get; set; }
        bool InstallForAllUsers { get; set; }
        AppInstallationToastNotificationMode InstallInProgressToastNotificationMode { get; set; }
        bool PinToDesktopAfterInstall { get; set; }
        bool PinToStartAfterInstall { get; set; }
        bool PinToTaskbarAfterInstall { get; set; }
        bool StageButDoNotInstall { get; set; }
      }
      public sealed class AppUpdateOptions {
        bool AutomaticallyDownloadAndInstallUpdateIfFound { get; set; }
      }
    }
    namespace Windows.ApplicationModel.UserActivities {
      public sealed class UserActivity {
        bool IsRoamable { get; set; }
      }
    }
    namespace Windows.Data.Text {
      public sealed class TextPredictionGenerator {
        CoreTextInputScope InputScope { get; set; }
        IAsyncOperation<IVectorView<string>> GetCandidatesAsync(string input, uint maxCandidates, TextPredictionOptions predictionOptions, IIterable<string> previousStrings);
        IAsyncOperation<IVectorView<string>> GetNextWordCandidatesAsync(uint maxCandidates, IIterable<string> previousStrings);
      }
      public enum TextPredictionOptions : uint
    }
    namespace Windows.Devices.Display.Core {
      public sealed class DisplayAdapter
      public enum DisplayBitsPerChannel : uint
      public sealed class DisplayDevice
      public enum DisplayDeviceCapability
      public sealed class DisplayFence
      public sealed class DisplayManager : IClosable
      public sealed class DisplayManagerChangedEventArgs
      public sealed class DisplayManagerDisabledEventArgs
      public sealed class DisplayManagerEnabledEventArgs
      public enum DisplayManagerOptions : uint
      public sealed class DisplayManagerPathsFailedOrInvalidatedEventArgs
      public enum DisplayManagerResult
      public sealed class DisplayManagerResultWithState
      public sealed class DisplayModeInfo
      public enum DisplayModeQueryOptions : uint
      public sealed class DisplayPath
      public enum DisplayPathScaling
      public enum DisplayPathStatus
      public struct DisplayPresentationRate
      public sealed class DisplayPrimaryDescription
      public enum DisplayRotation
      public sealed class DisplayScanout
     public sealed class DisplaySource
      public sealed class DisplayState
      public enum DisplayStateApplyOptions : uint
      public enum DisplayStateFunctionalizeOptions : uint
      public sealed class DisplayStateOperationResult
      public enum DisplayStateOperationStatus
      public sealed class DisplaySurface
      public sealed class DisplayTarget
      public enum DisplayTargetPersistence
      public sealed class DisplayTask
      public sealed class DisplayTaskPool
      public enum DisplayTaskSignalKind
      public sealed class DisplayView
      public sealed class DisplayWireFormat
      public enum DisplayWireFormatColorSpace
      public enum DisplayWireFormatEotf
      public enum DisplayWireFormatHdrMetadata
      public enum DisplayWireFormatPixelEncoding
    }
    namespace Windows.Devices.Enumeration {
      public enum DeviceInformationKind {
        DevicePanel = 8,
      }
      public sealed class DeviceInformationPairing {
        public static bool TryRegisterForAllInboundPairingRequestsWithProtectionLevel(DevicePairingKinds pairingKindsSupported, DevicePairingProtectionLevel minProtectionLevel);
      }
    }
    namespace Windows.Devices.Enumeration.Pnp {
      public enum PnpObjectType {
        DevicePanel = 8,
      }
    }
    namespace Windows.Devices.Lights {
      public sealed class LampArray
      public enum LampArrayKind
      public sealed class LampInfo
      public enum LampPurposes : uint
    }
    namespace Windows.Devices.Lights.Effects {
      public interface ILampArrayEffect
      public sealed class LampArrayBitmapEffect : ILampArrayEffect
      public sealed class LampArrayBitmapRequestedEventArgs
      public sealed class LampArrayBlinkEffect : ILampArrayEffect
      public sealed class LampArrayColorRampEffect : ILampArrayEffect
      public sealed class LampArrayCustomEffect : ILampArrayEffect
      public enum LampArrayEffectCompletionBehavior
      public sealed class LampArrayEffectPlaylist : IIterable<ILampArrayEffect>, IVectorView<ILampArrayEffect>
      public enum LampArrayEffectStartMode
      public enum LampArrayRepetitionMode
      public sealed class LampArraySolidEffect : ILampArrayEffect
      public sealed class LampArrayUpdateRequestedEventArgs
    }
    namespace Windows.Devices.PointOfService {
      public sealed class BarcodeScannerCapabilities {
        bool IsVideoPreviewSupported { get; }
      }
      public sealed class ClaimedBarcodeScanner : IClosable {
        event TypedEventHandler<ClaimedBarcodeScanner, ClaimedBarcodeScannerClosedEventArgs> Closed;
      }
      public sealed class ClaimedBarcodeScannerClosedEventArgs
      public sealed class ClaimedCashDrawer : IClosable {
        event TypedEventHandler<ClaimedCashDrawer, ClaimedCashDrawerClosedEventArgs> Closed;
      }
      public sealed class ClaimedCashDrawerClosedEventArgs
      public sealed class ClaimedLineDisplay : IClosable {
        event TypedEventHandler<ClaimedLineDisplay, ClaimedLineDisplayClosedEventArgs> Closed;
      }
      public sealed class ClaimedLineDisplayClosedEventArgs
      public sealed class ClaimedMagneticStripeReader : IClosable {
        event TypedEventHandler<ClaimedMagneticStripeReader, ClaimedMagneticStripeReaderClosedEventArgs> Closed;
      }
      public sealed class ClaimedMagneticStripeReaderClosedEventArgs
      public sealed class ClaimedPosPrinter : IClosable {
        event TypedEventHandler<ClaimedPosPrinter, ClaimedPosPrinterClosedEventArgs> Closed;
      }
      public sealed class ClaimedPosPrinterClosedEventArgs
    }
    namespace Windows.Devices.PointOfService.Provider {
      public sealed class BarcodeScannerDisableScannerRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerEnableScannerRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerFrameReader : IClosable
      public sealed class BarcodeScannerFrameReaderFrameArrivedEventArgs
      public sealed class BarcodeScannerGetSymbologyAttributesRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerHideVideoPreviewRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerProviderConnection : IClosable {
        IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync();
        IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync(BitmapPixelFormat preferredFormat);
        IAsyncOperation<BarcodeScannerFrameReader> CreateFrameReaderAsync(BitmapPixelFormat preferredFormat, BitmapSize preferredSize);
      }
      public sealed class BarcodeScannerSetActiveSymbologiesRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerSetSymbologyAttributesRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerStartSoftwareTriggerRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerStopSoftwareTriggerRequest {
        IAsyncAction ReportFailedAsync(int reason);
        IAsyncAction ReportFailedAsync(int reason, string failedReasonDescription);
      }
      public sealed class BarcodeScannerVideoFrame : IClosable
    }
    namespace Windows.Devices.Sensors {
      public sealed class HingeAngleReading
      public sealed class HingeAngleSensor
      public sealed class HingeAngleSensorReadingChangedEventArgs
      public sealed class SimpleOrientationSensor {
        public static IAsyncOperation<SimpleOrientationSensor> FromIdAsync(string deviceId);
        public static string GetDeviceSelector();
      }
    }
    namespace Windows.Devices.SmartCards {
      public static class KnownSmartCardAppletIds
      public sealed class SmartCardAppletIdGroup {
        string Description { get; set; }
        IRandomAccessStreamReference Logo { get; set; }
        ValueSet Properties { get; }
        bool SecureUserAuthenticationRequired { get; set; }
      }
      public sealed class SmartCardAppletIdGroupRegistration {
        string SmartCardReaderId { get; }
        IAsyncAction SetPropertiesAsync(ValueSet props);
      }
    }
    namespace Windows.Devices.WiFi {
      public enum WiFiPhyKind {
        HE = 10,
      }
    }
    namespace Windows.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.Imaging {
      public sealed class BitmapDecoder : IBitmapFrame, IBitmapFrameWithSoftwareBitmap {
        public static Guid HeifDecoderId { get; }
        public static Guid WebpDecoderId { get; }
      }
      public sealed class BitmapEncoder {
        public static Guid HeifEncoderId { get; }
      }
    }
    namespace Windows.Management.Deployment {
      public enum DeploymentOptions : uint {
        ForceUpdateFromAnyVersion = (uint)262144,
      }
      public sealed class PackageManager {
        IAsyncOperationWithProgress<DeploymentResult, DeploymentProgress> DeprovisionPackageForAllUsersAsync(string packageFamilyName);
      }
      public enum RemovalOptions : uint {
        RemoveForAllUsers = (uint)524288,
      }
    }
    namespace Windows.Management.Policies {
      public static class NamedPolicy {
        public static IAsyncAction ClearAllPoliciesAsync();
        public static IAsyncAction ClearAllPoliciesAsync(string accountId);
        public static NamedPolicySetter TryCreatePolicySetter(string accountId);
        public static NamedPolicySetter TryCreatePolicySetterForUser(User user, string accountId);
      }
      public sealed class NamedPolicySetter
    }
    namespace Windows.Media.Audio {
      public sealed class CreateAudioDeviceInputNodeResult {
        HResult ExtendedError { get; }
      }
      public sealed class CreateAudioDeviceOutputNodeResult {
        HResult ExtendedError { get; }
      }
      public sealed class CreateAudioFileInputNodeResult {
        HResult ExtendedError { get; }
      }
      public sealed class CreateAudioFileOutputNodeResult {
        HResult ExtendedError { get; }
      }
      public sealed class CreateAudioGraphResult {
        HResult ExtendedError { get; }
      }
      public sealed class CreateMediaSourceAudioInputNodeResult {
        HResult ExtendedError { get; }
      }
      public enum MixedRealitySpatialAudioFormatPolicy
      public sealed class SetDefaultSpatialAudioFormatResult
      public enum SetDefaultSpatialAudioFormatStatus
      public sealed class SpatialAudioDeviceConfiguration
      public sealed class SpatialAudioFormatConfiguration
      public static class SpatialAudioFormatSubtype
    }
    namespace Windows.Media.Control {
      public sealed class CurrentSessionChangedEventArgs
      public sealed class GlobalSystemMediaTransportControlsSession
      public sealed class GlobalSystemMediaTransportControlsSessionManager
      public sealed class GlobalSystemMediaTransportControlsSessionMediaProperties
      public sealed class GlobalSystemMediaTransportControlsSessionPlaybackControls
      public sealed class GlobalSystemMediaTransportControlsSessionPlaybackInfo
      public enum GlobalSystemMediaTransportControlsSessionPlaybackStatus
      public sealed class GlobalSystemMediaTransportControlsSessionTimelineProperties
      public sealed class MediaPropertiesChangedEventArgs
      public sealed class PlaybackInfoChangedEventArgs
      public sealed class SessionsChangedEventArgs
      public sealed class TimelinePropertiesChangedEventArgs
    }
    namespace Windows.Media.Core {
      public sealed class MediaStreamSample {
        IDirect3DSurface Direct3D11Surface { get; }
        public static MediaStreamSample CreateFromDirect3D11Surface(IDirect3DSurface surface, TimeSpan timestamp);
      }
    }
    namespace Windows.Media.Devices {
      public enum AudioRoutingPolicy
      public static class SystemAudioDeviceRoutingManager
      public sealed class SystemAudioDeviceRoutingSession : IClosable
    }
    namespace Windows.Media.Devices.Core {
      public sealed class CameraIntrinsics {
        public CameraIntrinsics(Vector2 focalLength, Vector2 principalPoint, Vector3 radialDistortion, Vector2 tangentialDistortion, uint imageWidth, uint imageHeight);
      }
    }
    namespace Windows.Media.Import {
      public enum PhotoImportContentTypeFilter {
        ImagesAndVideosFromCameraRoll = 3,
      }
      public sealed class PhotoImportItem {
        string Path { get; }
      }
    }
    namespace Windows.Media.MediaProperties {
      public sealed class ImageEncodingProperties : IMediaEncodingProperties {
        public static ImageEncodingProperties CreateHeif();
      }
      public static class MediaEncodingSubtypes {
        public static string Heif { get; }
      }
    }
    namespace Windows.Media.Protection.PlayReady {
      public static class PlayReadyStatics {
        public static IReference<DateTime> HardwareDRMDisabledAtTime { get; }
        public static IReference<DateTime> HardwareDRMDisabledUntilTime { get; }
        public static void ResetHardwareDRMDisabled();
      }
    }
    namespace Windows.Media.Streaming.Adaptive {
      public enum AdaptiveMediaSourceResourceType {
        MediaSegmentIndex = 5,
      }
    }
    namespace Windows.Networking.BackgroundTransfer {
      public enum BackgroundTransferPriority {
        Low = 2,
      }
    }
    namespace Windows.Networking.Connectivity {
      public sealed class ConnectionProfile {
        bool CanDelete { get; }
        IAsyncOperation<ConnectionProfileDeleteStatus> TryDeleteAsync();
      }
      public enum ConnectionProfileDeleteStatus
    }
    namespace Windows.Networking.NetworkOperators {
      public enum ESimOperationStatus {
        CardGeneralFailure = 13,
        ConfirmationCodeMissing = 14,
        EidMismatch = 18,
        InvalidMatchingId = 15,
        NoCorrespondingRequest = 23,
        NoEligibleProfileForThisDevice = 16,
        OperationAborted = 17,
        OperationProhibitedByProfileClass = 21,
        ProfileNotAvailableForNewBinding = 19,
        ProfileNotPresent = 22,
        ProfileNotReleasedByOperator = 20,
      }
    }
    namespace Windows.Perception {
      public sealed class PerceptionTimestamp {
        TimeSpan SystemRelativeTargetTime { get; }
      }
      public static class PerceptionTimestampHelper {
        public static PerceptionTimestamp FromSystemRelativeTargetTime(TimeSpan targetTime);
     }
    }
    namespace Windows.Perception.Spatial {
      public sealed class SpatialAnchorExporter
      public enum SpatialAnchorExportPurpose
      public sealed class SpatialAnchorExportSufficiency
      public sealed class SpatialLocation {
        Vector3 AbsoluteAngularAccelerationAxisAngle { get; }
        Vector3 AbsoluteAngularVelocityAxisAngle { get; }
      }
    }
    namespace Windows.Perception.Spatial.Preview {
      public static class SpatialGraphInteropPreview
    }
    namespace Windows.Security.DataProtection {
      public enum UserDataAvailability
      public sealed class UserDataAvailabilityStateChangedEventArgs
      public sealed class UserDataBufferUnprotectResult
      public enum UserDataBufferUnprotectStatus
      public sealed class UserDataProtectionManager
      public sealed class UserDataStorageItemProtectionInfo
      public enum UserDataStorageItemProtectionStatus
    }
    namespace Windows.Services.Cortana {
      public sealed class CortanaActionableInsights
      public sealed class CortanaActionableInsightsOptions
    }
    namespace Windows.Services.Store {
      public sealed class StoreAppLicense {
        bool IsDiscLicense { get; }
      }
      public sealed class StoreContext {
        IAsyncOperation<StoreRateAndReviewResult> RequestRateAndReviewAppAsync();
        IAsyncOperation<IVectorView<StoreQueueItem>> SetInstallOrderForAssociatedStoreQueueItemsAsync(IIterable<StoreQueueItem> items);
      }
      public sealed class StoreQueueItem {
        IAsyncAction CancelInstallAsync();
        IAsyncAction PauseInstallAsync();
        IAsyncAction ResumeInstallAsync();
      }
      public sealed class StoreRateAndReviewResult
      public enum StoreRateAndReviewStatus
    }
    namespace Windows.Storage.Provider {
      public enum StorageProviderHydrationPolicyModifier : uint {
        AutoDehydrationAllowed = (uint)4,
      }
      public sealed class StorageProviderSyncRootInfo {
        Guid ProviderId { get; set; }
      }
    }
    namespace Windows.System {
      public sealed class AppUriHandlerHost
      public sealed class AppUriHandlerRegistration
      public sealed class AppUriHandlerRegistrationManager
      public sealed class FolderLauncherOptions : ILauncherViewOptions {
        ViewGrouping GroupingPreference { get; set; }
      }
      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);
      }
      public sealed class LauncherOptions : ILauncherViewOptions {
        ViewGrouping GroupingPreference { get; set; }
      }
    }
    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 SetAnimatableReferenceParameter(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 CreateRedirectVisualWithSourceVisual(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.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 sealed class ApplicationView {
        bool CanOpenInNewTab { get; }
        bool IsTabGroupingSupported { get; }
      }
      public sealed class ApplicationViewTitleBar {
        void SetActiveIconStreamAsync(RandomAccessStreamReference activeIcon);
      }
      public enum ApplicationViewWindowingMode {
        CompactOverlay = 3,
        Maximized = 4,
      }
      public interface ISystemTray
      public interface ISystemTrayStatics
      public sealed class SystemTray : ISystemTray
      public enum ViewGrouping
      public sealed class ViewModePreferences {
        ViewGrouping GroupingPreference { get; set; }
      }
    }
    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 sealed class ElementFactoryGetArgs
      public sealed class ElementFactoryRecycleArgs
      public class FrameworkElement : UIElement {
        bool IsLoaded { get; }
        event TypedEventHandler<FrameworkElement, EffectiveViewportChangedEventArgs> EffectiveViewportChanged;
        void InvalidateViewport();
      }
      public interface IElementFactory
      public class ScalarTransition
      public class UIElement : DependencyObject, IAnimationObject {
        bool CanBeScrollAnchor { get; set; }
        public static DependencyProperty CanBeScrollAnchorProperty { get; }
        Vector3 CenterPoint { get; set; }
        ScalarTransition OpacityTransition { get; set; }
        float Rotation { get; set; }
        Vector3 RotationAxis { get; set; }
        ScalarTransition RotationTransition { get; set; }
        Vector3 Scale { get; set; }
        Vector3Transition ScaleTransition { get; set; }
        Shadow Shadow { get; set; }
        public static DependencyProperty ShadowProperty { get; }
        Matrix4x4 TransformMatrix { get; set; }
        Vector3 Translation { get; set; }
        Vector3Transition TranslationTransition { get; set; }
        void PopulatePropertyInfo(string propertyName, AnimationPropertyInfo propertyInfo);
        virtual void PopulatePropertyInfoOverride(string propertyName, AnimationPropertyInfo animationPropertyInfo);
        void StartAnimation(ICompositionAnimationBase animation);
        void StopAnimation(ICompositionAnimationBase animation);
      }
      public sealed class UIElementWeakCollection : IIterable<UIElement>, IVector<UIElement>
      public class Vector3Transition
      public enum Vector3TransitionComponents : uint
    }
    namespace Windows.UI.Xaml.Automation {
      public sealed class AutomationElementIdentifiers {
        public static AutomationProperty IsDialogProperty { get; }
      }
      public sealed class AutomationProperties {
        public static DependencyProperty IsDialogProperty { get; }
        public static bool GetIsDialog(DependencyObject element);
        public static void SetIsDialog(DependencyObject element, bool value);
      }
    }
    namespace Windows.UI.Xaml.Automation.Peers {
      public class AppBarButtonAutomationPeer : ButtonAutomationPeer, IExpandCollapseProvider {
        ExpandCollapseState ExpandCollapseState { get; }
        void Collapse();
        void Expand();
      }
      public class AutomationPeer : DependencyObject {
        bool IsDialog();
        virtual bool IsDialogCore();
      }
      public class MenuBarAutomationPeer : FrameworkElementAutomationPeer
      public class MenuBarItemAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IInvokeProvider
    }
    namespace Windows.UI.Xaml.Controls {
      public sealed class AnchorRequestedEventArgs
      public class AppBarElementContainer : ContentControl, ICommandBarElement, ICommandBarElement2
      public sealed class AutoSuggestBox : ItemsControl, IInputValidationControl, IInputValidationControl2 {
        object Description { get; set; }
        public static DependencyProperty DescriptionProperty { get; }
        DataTemplate ErrorTemplate { get; set; }
        public static DependencyProperty ErrorTemplateProperty { get; }
        bool HasValidationErrors { get; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        InputValidationKind InputValidationKind { get; set; }
        public static DependencyProperty InputValidationKindProperty { get; }
        InputValidationMode InputValidationMode { get; set; }
        public static DependencyProperty InputValidationModeProperty { get; }
        InputValidationCommand ValidationCommand { get; set; }
        public static DependencyProperty ValidationCommandProperty { get; }
        InputValidationContext ValidationContext { get; set; }
        IObservableVector<InputValidationError> ValidationErrors { get; }
        event TypedEventHandler<IInputValidationControl, HasValidationErrorsChangedEventArgs> HasValidationErrorsChanged;
        event TypedEventHandler<IInputValidationControl, InputValidationErrorEventArgs> ValidationError;
      }
      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; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
      }
      public class ComboBox : Selector, IInputValidationControl, IInputValidationControl2 {
        object Description { get; set; }
        public static DependencyProperty DescriptionProperty { get; }
        DataTemplate ErrorTemplate { get; set; }
        public static DependencyProperty ErrorTemplateProperty { get; }
        bool HasValidationErrors { get; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        InputValidationKind InputValidationKind { get; set; }
        public static DependencyProperty InputValidationKindProperty { get; }
        InputValidationMode InputValidationMode { get; set; }
        public static DependencyProperty InputValidationModeProperty { 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; }
        InputValidationCommand ValidationCommand { get; set; }
        public static DependencyProperty ValidationCommandProperty { get; }
        InputValidationContext ValidationContext { get; set; }
        IObservableVector<InputValidationError> ValidationErrors { get; }
        event TypedEventHandler<IInputValidationControl, HasValidationErrorsChangedEventArgs> HasValidationErrorsChanged;
        event TypedEventHandler<ComboBox, ComboBoxTextSubmittedEventArgs> TextSubmitted;
        event TypedEventHandler<IInputValidationControl, InputValidationErrorEventArgs> ValidationError;
      }
      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 enum ControlHeaderPlacement
      public class DataTemplateSelector : IElementFactory {
        UIElement GetElement(ElementFactoryGetArgs args);
        void RecycleElement(ElementFactoryRecycleArgs args);
      }
      public class DatePicker : Control {
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        IReference<DateTime> NullableDate { get; set; }
        public static DependencyProperty NullableDateProperty { get; }
      }
      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 sealed class HasValidationErrorsChangedEventArgs
      public class IconSourceElement : IconElement
      public interface IInputValidationControl
      public interface IInputValidationControl2
      public sealed class InputPropertyAttribute : Attribute
      public class InputValidationCommand
      public class InputValidationContext
      public sealed class InputValidationError
      public enum InputValidationErrorEventAction
      public sealed class InputValidationErrorEventArgs
      public enum InputValidationKind
      public enum InputValidationMode
      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, IInputValidationControl, IInputValidationControl2 {
        bool CanPasteClipboardContent { get; }
        public static DependencyProperty CanPasteClipboardContentProperty { get; }
        object Description { get; set; }
        public static DependencyProperty DescriptionProperty { get; }
        DataTemplate ErrorTemplate { get; set; }
        public static DependencyProperty ErrorTemplateProperty { get; }
        bool HasValidationErrors { get; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        InputValidationKind InputValidationKind { get; set; }
        public static DependencyProperty InputValidationKindProperty { get; }
        InputValidationMode InputValidationMode { get; set; }
        public static DependencyProperty InputValidationModeProperty { get; }
        FlyoutBase SelectionFlyout { get; set; }
        public static DependencyProperty SelectionFlyoutProperty { get; }
        InputValidationCommand ValidationCommand { get; set; }
        public static DependencyProperty ValidationCommandProperty { get; }
        InputValidationContext ValidationContext { get; set; }
        IObservableVector<InputValidationError> ValidationErrors { get; }
        event TypedEventHandler<IInputValidationControl, HasValidationErrorsChangedEventArgs> HasValidationErrorsChanged;
        event TypedEventHandler<IInputValidationControl, InputValidationErrorEventArgs> ValidationError;
        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; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { 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 Slider : RangeBase {
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
      }
      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, IInputValidationControl, IInputValidationControl2 {
        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; }
       DataTemplate ErrorTemplate { get; set; }
        public static DependencyProperty ErrorTemplateProperty { get; }
        bool HasValidationErrors { get; }
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        InputValidationKind InputValidationKind { get; set; }
        public static DependencyProperty InputValidationKindProperty { get; }
        InputValidationMode InputValidationMode { get; set; }
        public static DependencyProperty InputValidationModeProperty { get; }
        FlyoutBase ProofingMenuFlyout { get; }
        public static DependencyProperty ProofingMenuFlyoutProperty { get; }
        FlyoutBase SelectionFlyout { get; set; }
        public static DependencyProperty SelectionFlyoutProperty { get; }
        InputValidationCommand ValidationCommand { get; set; }
        public static DependencyProperty ValidationCommandProperty { get; }
        InputValidationContext ValidationContext { get; set; }
        IObservableVector<InputValidationError> ValidationErrors { get; }
        event TypedEventHandler<IInputValidationControl, HasValidationErrorsChangedEventArgs> HasValidationErrorsChanged;
        event TypedEventHandler<TextBox, TextBoxSelectionChangingEventArgs> SelectionChanging;
        event TypedEventHandler<IInputValidationControl, InputValidationErrorEventArgs> ValidationError;
        void ClearUndoRedoHistory();
        void CopySelectionToClipboard();
        void CutSelectionToClipboard();
        void PasteFromClipboard();
        void Redo();
        void Undo();
      }
      public sealed class TextBoxSelectionChangingEventArgs
      public class TextCommandBarFlyout : CommandBarFlyout
      public class TimePicker : Control {
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
        IReference<TimeSpan> NullableTime { get; set; }
        public static DependencyProperty NullableTimeProperty { get; }
      }
      public class ToggleSplitButton : SplitButton
      public class ToggleSplitButtonAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IToggleProvider
      public sealed class ToggleSplitButtonIsCheckedChangedEventArgs
      public sealed class ToggleSwitch : Control {
        ControlHeaderPlacement HeaderPlacement { get; set; }
        public static DependencyProperty HeaderPlacementProperty { get; }
      }
      public class ToolTip : ContentControl {
        IReference<Rect> PlacementRect { get; set; }
        public static DependencyProperty PlacementRectProperty { get; }
      }
      public class TreeView : Control {
        bool CanDragItems { get; set; }
        public static DependencyProperty CanDragItemsProperty { get; }
        bool CanReorderItems { get; set; }
        public static DependencyProperty CanReorderItemsProperty { get; }
        Style ItemContainerStyle { get; set; }
        public static DependencyProperty ItemContainerStyleProperty { get; }
        StyleSelector ItemContainerStyleSelector { get; set; }
        public static DependencyProperty ItemContainerStyleSelectorProperty { get; }
        TransitionCollection ItemContainerTransitions { get; set; }
        public static DependencyProperty ItemContainerTransitionsProperty { get; }
        object ItemsSource { get; set; }
        public static DependencyProperty ItemsSourceProperty { get; }
        DataTemplate ItemTemplate { get; set; }
        public static DependencyProperty ItemTemplateProperty { get; }
        DataTemplateSelector ItemTemplateSelector { get; set; }
        public static DependencyProperty ItemTemplateSelectorProperty { get; }
        event TypedEventHandler<TreeView, TreeViewDragItemsCompletedEventArgs> DragItemsCompleted;
        event TypedEventHandler<TreeView, TreeViewDragItemsStartingEventArgs> DragItemsStarting;
        DependencyObject ContainerFromItem(object item);
        DependencyObject ContainerFromNode(TreeViewNode node);
        object ItemFromContainer(DependencyObject container);
        TreeViewNode NodeFromContainer(DependencyObject container);
      }
      public sealed class TreeViewCollapsedEventArgs {
        object Item { get; }
      }
      public sealed class TreeViewDragItemsCompletedEventArgs
      public sealed class TreeViewDragItemsStartingEventArgs
      public sealed class TreeViewExpandingEventArgs {
        object Item { get; }
      }
      public class TreeViewItem : ListViewItem {
        bool HasUnrealizedChildren { get; set; }
        public static DependencyProperty HasUnrealizedChildrenProperty { get; }
        object ItemsSource { get; set; }
        public static DependencyProperty ItemsSourceProperty { get; }
      }
      public class TwoPaneView : Control
      public enum TwoPaneViewMode
      public enum TwoPaneViewPriority
      public enum TwoPaneViewTallModeConfiguration
      public enum TwoPaneViewWideModeConfiguration
      public sealed class WebView : FrameworkElement {
        event TypedEventHandler<WebView, WebViewWebResourceRequestedEventArgs> WebResourceRequested;
      }
      public sealed class WebViewWebResourceRequestedEventArgs
    }
    namespace Windows.UI.Xaml.Controls.Maps {
      public enum MapTileAnimationState
      public sealed class MapTileBitmapRequestedEventArgs {
        int FrameIndex { get; }
      }
      public class MapTileSource : DependencyObject {
        MapTileAnimationState AnimationState { get; }
        public static DependencyProperty AnimationStateProperty { get; }
        bool AutoPlay { get; set; }
        public static DependencyProperty AutoPlayProperty { get; }
        int FrameCount { get; set; }
        public static DependencyProperty FrameCountProperty { get; }
        TimeSpan FrameDuration { get; set; }
        public static DependencyProperty FrameDurationProperty { get; }
        void Pause();
        void Play();
        void Stop();
      }
      public sealed class MapTileUriRequestedEventArgs {
        int FrameIndex { get; }
      }
    }
    namespace Windows.UI.Xaml.Controls.Primitives {
      public class CommandBarFlyoutCommandBar : CommandBar
      public sealed class CommandBarFlyoutCommandBarTemplateSettings : DependencyObject
      public class FlyoutBase : DependencyObject {
        bool AreOpenCloseAnimationsEnabled { get; set; }
        public static DependencyProperty AreOpenCloseAnimationsEnabledProperty { get; }
        bool InputDevicePrefersPrimaryCommands { get; }
        public static DependencyProperty InputDevicePrefersPrimaryCommandsProperty { get; }
        bool IsOpen { get; }
        public static DependencyProperty IsOpenProperty { get; }
        FlyoutShowMode ShowMode { get; set; }
        public static DependencyProperty ShowModeProperty { get; }
        public static DependencyProperty TargetProperty { get; }
        void ShowAt(DependencyObject placementTarget, FlyoutShowOptions showOptions);
      }
      public enum FlyoutPlacementMode {
        Auto = 13,
        BottomEdgeAlignedLeft = 7,
        BottomEdgeAlignedRight = 8,
        LeftEdgeAlignedBottom = 10,
        LeftEdgeAlignedTop = 9,
        RightEdgeAlignedBottom = 12,
        RightEdgeAlignedTop = 11,
        TopEdgeAlignedLeft = 5,
        TopEdgeAlignedRight = 6,
      }
      public enum FlyoutShowMode
      public sealed class FlyoutShowOptions : DependencyObject
      public class NavigationViewItemPresenter : ContentControl
    }
    namespace Windows.UI.Xaml.Core.Direct {
      public interface IXamlDirectObject
      public sealed class XamlDirect
      public enum XamlEventIndex
      public enum XamlPropertyIndex
      public enum XamlTypeIndex
    }
    namespace Windows.UI.Xaml.Data {
      public sealed class DataErrorsChangedEventArgs
      public interface INotifyDataErrorInfo
    }
    namespace Windows.UI.Xaml.Hosting {
      public sealed class DesktopWindowXamlSource : IClosable
      public sealed class DesktopWindowXamlSourceGotFocusEventArgs
      public sealed class DesktopWindowXamlSourceTakeFocusRequestedEventArgs
      public sealed class WindowsXamlManager : IClosable
      public enum XamlSourceFocusNavigationReason
      public sealed class XamlSourceFocusNavigationRequest
      public sealed class XamlSourceFocusNavigationResult
    }
    namespace Windows.UI.Xaml.Input {
      public sealed class CanExecuteRequestedEventArgs
      public sealed class ExecuteRequestedEventArgs
      public sealed class FocusManager {
        public static event EventHandler<GettingFocusEventArgs> GettingFocus;
        public static event EventHandler<FocusManagerGotFocusEventArgs> GotFocus;
        public static event EventHandler<LosingFocusEventArgs> LosingFocus;
        public static event EventHandler<FocusManagerLostFocusEventArgs> LostFocus;
      }
      public sealed class FocusManagerGotFocusEventArgs
      public sealed class FocusManagerLostFocusEventArgs
      public sealed class GettingFocusEventArgs : RoutedEventArgs {
        Guid CorrelationId { get; }
      }
      public sealed class LosingFocusEventArgs : RoutedEventArgs {
        Guid CorrelationId { get; }
      }
      public class StandardUICommand : XamlUICommand
      public enum StandardUICommandKind
      public class XamlUICommand : DependencyObject, ICommand
    }
    namespace Windows.UI.Xaml.Markup {
      public sealed class FullXamlMetadataProviderAttribute : Attribute
      public interface IXamlBindScopeDiagnostics
      public interface IXamlType2 : IXamlType
    }
    namespace Windows.UI.Xaml.Media {
      public class Brush : DependencyObject, IAnimationObject {
        void PopulatePropertyInfo(string propertyName, AnimationPropertyInfo propertyInfo);
        virtual void PopulatePropertyInfoOverride(string propertyName, AnimationPropertyInfo animationPropertyInfo);
      }
      public class Shadow : DependencyObject
      public sealed class ThemeShadow : Shadow
    }
    namespace Windows.UI.Xaml.Media.Animation {
      public class BasicConnectedAnimationConfiguration : ConnectedAnimationConfiguration
      public sealed class ConnectedAnimation {
        ConnectedAnimationConfiguration Configuration { get; set; }
      }
      public class ConnectedAnimationConfiguration
      public class DirectConnectedAnimationConfiguration : ConnectedAnimationConfiguration
      public class GravityConnectedAnimationConfiguration : ConnectedAnimationConfiguration
      public enum SlideNavigationTransitionEffect
      public sealed class SlideNavigationTransitionInfo : NavigationTransitionInfo {
        SlideNavigationTransitionEffect Effect { get; set; }
        public static DependencyProperty EffectProperty { get; }
      }
    }
    namespace Windows.UI.Xaml.Navigation {
      public class FrameNavigationOptions
    }
    namespace Windows.Web.UI {
      public interface IWebViewControl2
      public sealed class WebViewControlNewWindowRequestedEventArgs {
        IWebViewControl TargetWebViewControl { 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 AddPreLoadedScript(string script);
      }
      public sealed class WebViewControlProcess {
        string Partition { get; }
        string UserAgent { get; }
      }
      public sealed class WebViewControlProcessOptions {
        string Partition { get; set; }
        string UserAgent { get; set; }
      }
    }
    
    

    Removals:

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

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

    Viewing all 10804 articles
    Browse latest View live