You are here

Feed aggregator

Workflows in Dynamics CRM

MSDN Blogs - Mon, 05/23/2016 - 15:33

 

 

This article has the purpose of being an in depth discussion of what is a workflow in CRM, what are possibilities and how you can develop a simple workflow for CRM.

 

For the purpose of this article, the author decided to go with the CRM 2016 version of the SDK (available here). It is strongly recommended that you keep up to speed with the changes in the SDK, as new information is always released.

The term workflow implies that in order to get to it, there is something that defines it – a business process. A business process can be thought of as set of specific steps that have to be undertaken by a business worker in order to attain a specific objective.

How can we express a business process in CRM? For that we have 4 distinct ways of doing it:

 

Type of business process

When to use it

Workflow

When you want to automate processes that were accomplished before by one or more people within a business.

Action

When you want to combine a set of steps that are not otherwise made available by standard CRM components

Business Process Flow

When you want to give the users a visual representation of a business processes. Users are guided through the various stages of the process, whether it is a sales or customer service related process

Dialog

When you want the user to interact with the system, and collecting data from users along the steps of the dialog.

 

Creating a workflow is in Settings -> Processes (It is under Process Center). Once the page loads, you’re greeted with the “My Processes” view, which is the default view for Processes.

Note: The content below can also be found on Technet. Click here to get more information.

Click on the “New” button to create a new workflow. The following dialog appears:

 

Process Name: You should always put a descriptive enough name for the process, so that once people see the workflow name, have an idea of what it is supposed to do, rather than having to open it to understand what it does.

Category: Since the process we’re trying to create is a workflow, we’ll set this to “Workflow”

Entity: This field defines the primary entity record (in this case, the Account entity), upon which the workflow will perform some action. You can’t change the entity once the workflow has been set.

 

The “Run this workflow in the background (Recommended)” checkbox is there to let us decide if we want to run the workflow in an asynchronous (i.e. in the background) or in a synchronous fashion. Let’s leave it checked for now.

The last option that we are given is whether we want to create a new process or based on an already existing template. Let’s go with the blank process option.

Once we click OK, the below dialog appears:

 

We’ll begin with the “Activate As” dropdown. The following values are available:

 

Option

What happens if I select it?

Process

An actual instance of a workflow will be created every time the workflow is run

Process Template

It will make the workflow available in the template list. This is useful to create a set of workflows that can share a common set of logic.

 

Under Available to Run you are given three checkboxes:

Option

What does it mean

Run this workflow in the background (recommended)

The workflow will be invoked in an asynchronous fashion once the trigger conditions are met.

As an on-demand process

The user will have the possibility of running the workflow by accessing it in the Run Workflow command under “More Commands” (see screenshot below)

As a child process

This will allow for a workflow to be called from another workflow[HFLVD1] .

 

The option “Automatically delete completed workflow jobs” will allow for some housekeeping regarding the records left in the AsyncOperationBase table. Do use some caution when deciding not to have completed jobs be deleted (this leads to excessive growth of the AsyncOperationTable – clean-up procedures for this table can be found here)

As you can see, for automatic processes, you have a number of options. Let’s go over each one of them:

 

The scope restricts the records upon which the workflow will run.

Scope

What records will be affected

User

Records owned by the user that created the workflow

Business Unit

All records within the user’s business unit

Parent: Child Business Unit

All records belonging to the user’s business unit and children business units

Organization

All records[HFLVD2] in the organization.

 

For the purpose of the exercise, set the scope to organization.

Finally, you get to select when the workflow is started:

Record is created

Upon record creation

Record status changes

When the status of the record changes

Record is assigned

When the record is assigned to a user or team

Record fields change

When a field (from a list of fields selected by the user) changes

Record is deleted

When the record is deleted from the system

 

Once all these settings are done, we can get to the actual steps of the workflow itself.

From this point onwards, all you need to add to the workflow are its steps. If you click on the Add Step button, you’ll have an array of options, most of which are self-explanatory. It is at this time that we strongly recommend that you have the flowchart of the workflow handy so that you don’t make any mistakes creating the workflow.

 

Imagine that the existing options you have for a workflow just don’t cut it and you want something that it is just not available within the UI. Here is the point where you need to start looking into code.

And that part happens to be Custom Workflow Activities and Custom XAML Workflows (see doc links here and here).

Be mindful of the following when developing Custom Workflow Activities and Custom XAML Workflows:

 

For CRM OnPremises

Custom Workflow Activities can run under full trust and partial trust code execution

Custom XAML Workflows can be run.

 

For CRM Online

Custom Workflow Activities only run under partial trust code execution

Custom XAML workflows are not allowed.

 

Let us focus solely on the Custom Workflow Activities. Custom XAML Workflows are a whole other topic of discussion and well worth a separate article for themselves.

Let’s then dig deeper into creating Custom Workflow Activities. Below are the prerequisites for developing a custom workflow activity:

 

Prerequisite

Detail

Which .NET Framework version to target?

.NET 4.5.2

Which DLL’s from the SDK do we need to reference

Microsoft.Xrm.Sdk.dll

Microsoft.Xrm.Sdk.Workflow.dll

 

Now for the code itself:

using System.Activities

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Workflow

namespace CodeSamples

{

public class MyVeryFirstCodeActivity : CodeActivity

{

protected override Execute(CodeActivityContext context) {}

}

}

 

Since the underlying workflow technology is Windows Workflow Foundation 4.0, we will require a reference to it (System.Activities)

Every custom code activity will be required to extend the System.Activities.CodeActivity class (hence the inheritance shown above)

Finally, much like the Main function on a C program or the Main method on a C# program, we will need a method where the execution will take place. Since the CodeActivity class is an abstract class and and the method Execute within it is also an abstract method, we will then need to override the Execute method (as per object oriented programming concepts) in order to run the code activity.

Now, is this all there is to it? Unfortunately, that is not the case. Like a plug-in, custom code activities will also require to know what are their input parameters and all of the necessary metadata so that it can then work with CRM information. This documentation link (click here) explains it in greater detail.

Once you’ve set all necessary info, and signed your assembly (remember: All assemblies in CRM need to be strongly signed), it is now time to build it.

 

Let’s then go to the CRM SDK (note: for this we’re focusing on CRM 2016, so get it from here). Once you’ve opened up the SDK folder, find and execute the Plugin Registration Tool (found in SDKToolsPluginRegistration in your CRM SDK installation folder).

Once you’ve registered your workflow assembly by giving it a name and a group name (more details here), it is time that you use it, so go into creating a new workflow, or editing an existing one (assuming you’ve deactivated it first prior to editing) and just click on ”Add Step” and you’ll see your brand new code activity.

That’s it for this in-depth look into workflows and how you can create them both from the UI and within code.

 

Best Regards

EMEA Dynamics CRM Support Team

 

Share this Blog Article on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Follow Us on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Enhanced Exception Messages

MSDN Blogs - Mon, 05/23/2016 - 15:27

You may have noticed recently that any exception that you receive from either Event Hubs or Service Bus Messaging now contains a little bit more information. This is true for both AMQP and HTTP, which also means that whether you use one of our clients, or a third party client you will still be able to see the additional information.

Our customer service team routinely assists customers with issues that require a minimum set of data, which starts with the following:

  1. The affected namespace and entity name
  2. Date and time of the occurrence
  3. Any relevant tracking ids

We are happy to say that any exception you receive will now include the above information, as well as “FW Links.” These will provide you with a link to documentation for common fixes to the exception that you are seeing. If you cannot find a resolution to your particular issue, you won’t have to track down anything additional in order to create a ticket. This is great for both our customers as well as our customer service team, as we can immediately start diagnosing any issues without having to wait for more information. Above all, our goal is to find a solution as quickly as possible.

Below is an example of the new exception style as well as an old one for comparison sake. Please take note of the entity name, namespace, and FWLink in the new exception.

As always, we’re constantly iterating in order to make our product easier to use, so please let us know what you think!

– The Service Bus Team

New

One or more errors occurred. EventHub sending error. EventHub: EventHub(myEventHub)/32
The service was unable to process the request; please retry the operation. For more information on exception types and proper exception handling, please refer to http://go.microsoft.com/fwlink/?LinkId=761101 Reference:acac400b-eade-46fb-939b 027f9ff84492, TrackingId:f5e1ab94000000f10001a4be5733a67e_G55_B3, SystemTracker:myEventHubNamespace:eventhub:myEventHub~10823, Timestamp:5/12/2016 2:12:15 AM

Old

Microsoft.ServiceBus.Messaging.MessagingException: The server was unable to process the request; please retry the operation. If the problem persists, please contact your Service Bus administrator and provide the tracking id. TrackingId:98cb664c-883c-47e2-b217-415f415a6828_G16,TimeStamp:7/10/2015 2:42:59 PM

HowLongHaveIGotBot – dev using the Bot Framework

MSDN Blogs - Mon, 05/23/2016 - 12:21

At the weekend I built my first bot.  I wanted to see exactly how easy it was to build one from scratch, deploy it and then hook it up to different media “channels”.

Getting started is straightforward – I highly recommend reading the beginners guide here.  You’ll need an idea for your bot, some kind of service and then it’s just a case of coding the different responses.  Here, I went for simplicity, creating a bot that can work out how long you have until a target/due date.  As long as you pass in a valid datetime string, it calculates the duration until that target date in days, hours and minutes.  Once the logic was complete (pretty much 1 line of code..), I then deployed the solution locally and hooked it up to the Bot Framework Emulator.

Once I had exhausted my testing (many hours obviously..), it was time to ship it (as Azure API App under https), then hook it up with the different “bot channels”.

I started with Skype, this involved signing into the Skype Bot Portal and following the onscreen instructions to get the Skype Bot ID and Secret, then adding these to the Bot Framework – Skype config page.

Next up was the Facebook channel, this took a bit more effort as it required creating a Facebook Page first.  It’s been quite a while since I’ve done any Facebook dev and the development portal has definitely changed since I last used it!  The hardest part configuring this channel was locating the Facebook Page ID, which was squirreled away under the About tab of the new page I had created.

Then it was time for the Email channel, all you need is an O365 email account that your bot can respond on.  I didn’t have one, so setup a new developer trial account here: http://dev.office.com/devprogram –  then aadded the credentials within the Bot Framework portal.

Finally I setup the Web channel, this was the easiest to setup and just required generating a secret.

What’s next?  Well, I’ve still got the other channels to configure such as Slack, SMS etc and have already started to integrate LUIS into v2 of my bot to make it more intelligent

I’m still waiting the Skype and Facebook apps to accept my bot publication – but if you are interested in testing it in either of these channels then PM me.  Or watch the below video:

https://msdnshared.blob.core.windows.net/media/2016/05/Skype-demo.mp4

Meanwhile, you can interact directly with the HowLongHaveIGotBot here: https://howlonghavebot.azurewebsites.net/

Performance issues with Visual Studio Team Services – 5/23 – Investigating

MSDN Blogs - Mon, 05/23/2016 - 12:11

Initial Update: Monday, 23 May 2016 19:08 UTC

We are actively investigating issues with Visual Studio Team Services. Some customers in South Central US region may experience performance issues which trying to access their accounts.

Next Update: Before 21:00 UTC

We are working to resolve this issue and apologize for any inconvenience.

Sincerely,
Manohar

Registrations Open for Quarterly API Call in June

MSDN Blogs - Mon, 05/23/2016 - 11:09

Hi Everyone –

Please join Program Managers Jamie Chung, Neha Mohan, Nan Li, Ginny Sandhu, Joseph Damiani, Juan Carlos Ousset, and Lindsey Patterson to learn more about several exciting new Bing Ads API features. We will explore many features currently available as well as a few that will be released in the near future.

You can register here.

We will cover:

  • Bing Shopping Campaigns support for Upgraded URLs
  • Remarketing in Paid Search
  • Shared budgets
  • Native Ads
  • App Install Ads
  • Sitelink Ad Extensions remodel
  • Scheduling for Ad Extensions
  • Structured Snippet Ad Extensions
  • API V9 sunset

This 60-minute webcast will provide you with a clear understanding of upcoming features and the value they can bring to your search advertising campaigns. Along with a view of the Bing Ads API roadmap, we’ll also provide an estimated timeline as to when features will become available, so you have all the building blocks needed to develop the solution that works best for you.

 

Visual Studio Toolbox: Building a Unity Game Part 3

MSDN Blogs - Mon, 05/23/2016 - 10:50

In this episode, I am joined by Stacey Haffner, co-owner/dev of What Up Games, who will show us how to build a Unity game that includes simple mechanics such as audio, animations, AI and UI. The game is Super Space Shooter and it involves shooting enemy spaceships. In part 3 of this 4 part series, Stacey adds the ability for the player and enemy ships to shoot each other.

Resources:

Quickstart: Sending a weather Tile and Toast Notification

MSDN Blogs - Mon, 05/23/2016 - 10:31

In the Anniversary Update of Windows 10, we’ve made Toast Notifications as visually-capable as Live Tiles. In this Quickstart, we’ll show you how can re-use your Tile Notification’s 5-day weather forecast to send a Toast Notification displaying the forecast.

Wide Live Tile Toast Notification


1. Install NotificationsExtensions NuGet package

In order to create notifications via code, we strongly recommend using NotificationsExtensions, which provides an object model for the notification XML content. You could manually construct the notification XML, but that is error-prone and messy. NotificationsExtensions is built and maintained by the team that owns notifications at Microsoft.

Install NotificationsExtensions.Win10 from NuGet (make sure you choose version 14332.0.0 or higher).

2. Add namespace declarations

Windows.UI.Notifications includes the Tile and Toast API’s.

using NotificationsExtensions; using NotificationsExtensions.Tiles; using NotificationsExtensions.Toasts; 3. How to create the Live Tile

We will first explain how the Live Tile is created, since similar Adaptive content is used on the Toast Notification. If you’re new to Adaptive Notifications, install Notifications Visualizer from the Store, which allows you to edit Adaptive content and see an instant visual preview.

Dissect the Tile Notification into Subgroups

The Tile Notification that we want to create is actually just 5 subgroups… one for each day’s forecast. In the picture below, the second subgroup is highlighted in red. We can create a method that generates these subgroups, so that we only write the subgroup code once.

private AdaptiveSubgroup GenerateSubgroup(string day, string img, int tempHi, int tempLo) { return new AdaptiveSubgroup() { HintWeight = 1, Children = { // Day new AdaptiveText() { Text = day, HintAlign = AdaptiveTextAlign.Center }, // Image new AdaptiveImage() { Source = img, HintRemoveMargin = true }, // High temp new AdaptiveText() { Text = tempHi + "°", HintAlign = AdaptiveTextAlign.Center }, // Low temp new AdaptiveText() { Text = tempLo + "°", HintAlign = AdaptiveTextAlign.Center, HintStyle = AdaptiveTextStyle.CaptionSubtle } } }; } Generate content for the Wide Tile

Next, we need to construct the actual content for the Wide Tile, using our subgroups from above. We break this out into a separate method, since we’ll also need methods for creating the Small Tile content, and Wide and Large (these methods are omitted from this Quickstart but can be seen in the full code sample available in the Resources at the bottom).

private TileBinding GenerateTileBindingWide() { return new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new AdaptiveGroup() { Children = { GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42), GenerateSubgroup("Tue", "Cloudy.png", 57, 38), GenerateSubgroup("Wed", "Sunny.png", 59, 43), GenerateSubgroup("Thu", "Sunny.png", 62, 42), GenerateSubgroup("Fri", "Sunny.png", 71, 66) } } } } }; } Generate the Tile Notification content

Finally, we generate the entire Tile Notification’s content, which will contain content for all the various sizes of the tile. As we mentioned earlier, the methods for Small, Medium, and Large are omitted from this Quickstart but can be seen in the full code sample available in the Resources section.

public TileContent GenerateTileContent() { return new TileContent() { Visual = new TileVisual() { TileSmall = GenerateTileBindingSmall(), TileMedium = GenerateTileBindingMedium(), TileWide = GenerateTileBindingWide(), TileLarge = GenerateTileBindingLarge(), // Set the base URI for the images, so we don't redundantly specify the entire path BaseUri = new Uri("Assets/NotificationAssets/", UriKind.Relative) } }; } Sending the Tile Notification

To learn how to send a Tile Notification, please see Quickstart: Sending a local tile notification.

4. How to create the Toast Notification

Now that we have our Live Tile Notification, let’s use some of that code to create the Toast Notification!

Construct the Toast Notification content

Toasts must always start with a text element, so we first add a text string describing today’s weather. If Adaptive Toasts are supported (see further below for the code), we add a group with the five subgroups that we also used for our Live Tile. Otherwise, we just add two more text elements for systems that don’t support Adaptive Toast (note that on those systems, you can only have a max of three text elements, hence why we only added two additional text elements).

public static ToastContent GenerateToastContent() { // Start by constructing the visual portion of the toast ToastBindingGeneric binding = new ToastBindingGeneric(); // We'll always have this summary text on our toast notification // (it is required that your toast starts with a text element) binding.Children.Add(new AdaptiveText() { Text = "Today will be mostly sunny with a high of 63 and a low of 42." }); // If Adaptive Toast Notifications are supported if (IsAdaptiveToastSupported()) { // Use the rich Tile-like visual layout binding.Children.Add(new AdaptiveGroup() { Children = { GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42), GenerateSubgroup("Tue", "Cloudy.png", 57, 38), GenerateSubgroup("Wed", "Sunny.png", 59, 43), GenerateSubgroup("Thu", "Sunny.png", 62, 42), GenerateSubgroup("Fri", "Sunny.png", 71, 66) } }); } // Otherwise... else { // We'll just add two simple lines of text binding.Children.Add(new AdaptiveText() { Text = "Monday ⛅ 63° / 42°" }); binding.Children.Add(new AdaptiveText() { Text = "Tuesday ☁ 57° / 38°" }); } // Construct the entire notification return new ToastContent() { Visual = new ToastVisual() { // Use our binding from above BindingGeneric = binding, // Set the base URI for the images, so we don't redundantly specify the entire path BaseUri = new Uri("Assets/NotificationAssets/", UriKind.Relative) }, // Include launch string so we know what to open when user clicks toast Launch = "action=viewForecast&zip=98008" }; } Sending the Toast Notification

To learn how to send the Toast Notification (and how to handle the user clicking the notification), please see Quickstart: Sending a local toast notification and handling activations.

Checking if Adaptive Toast is supported

Adaptive Toasts were added in build 14332 of Windows 10 Desktop and Mobile (for the Anniversary Update of Windows 10). Other device families do not support Adaptive Toasts, and can only contain text elements and images. If you are supporting older systems, you have two options: Send the same payload (the groups will simply be dropped on older systems), or fork your code and send specific notifications based on whether Adaptive Toast is supported. Here’s the method we use to tell whether we can send visually-rich notifications…

using Windows.System.Profile; private static bool IsAdaptiveToastSupported() { switch (AnalyticsInfo.VersionInfo.DeviceFamily) { // Desktop and Mobile started supporting adaptive toasts in build 14332 case "Windows.Mobile": case "Windows.Desktop": return GetOSVersion() > new Version(10, 0, 14332, 0); // Other device families do not support adaptive toasts default: return false; } } private static Version GetOSVersion() { // The DeviceFamilyVersion is a string, which is actually a ulong number representing the version // https://www.suchan.cz/2015/08/uwp-quick-tip-getting-device-os-and-app-info/ ulong versionAsLong = ulong.Parse(AnalyticsInfo.VersionInfo.DeviceFamilyVersion); ulong v1 = (versionAsLong & 0xFFFF000000000000L) >> 48; ulong v2 = (versionAsLong & 0x0000FFFF00000000L) >> 32; ulong v3 = (versionAsLong & 0x00000000FFFF0000L) >> 16; ulong v4 = (versionAsLong & 0x000000000000FFFFL); return new Version((int)v1, (int)v2, (int)v3, (int)v4); } Final Toast Notification!

For systems that support Adaptive Toast, our code generates the visually-rich notification. And for older systems, our code generates the classic text-driven notification.

Adaptive Toast Classic Toast Resources

Page Preview API

MSDN Blogs - Mon, 05/23/2016 - 09:49

Hi OneNote Developers,

A common scenario when using the OneNote API is to display a list of pages for the user to take action (for example, get some of their content into your app). Displaying only the page title communicates a limited amount of information about the page to the user. Certain OneNote clients display a more friendly version of a page, including a text preview, an optional image on the page, in addition to the page title and page location.

I want to take a moment to talk about a new handy API you can use to solve this problem in your app – page preview. Here’s how you can call it:

Given a page id, like “0-a68ef66f18110ed12e13342cb6a874b5!1-B669F6A8ED5A07E6!1701″ (You can retrieve this with our GET ~/pages API), you can call:

GET

http://www.onenote.com/api/v1.0/pages/0-a68ef66f18110ed12e13342cb6a874b5!1-B669F6A8ED5A07E6!1701/preview

This will return the following JSON payload:

{ "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.PagePreview", "previewText":"I was almost fired from a job driving the hearse in funeral processions, but then the funeral home realized how much business I was creating for them.", "links":{ "previewImageUrl":{ "href":"https://www.onenote.com/api/v1.0/resources/0-3154d05d704942daa963a58f28c5880a!1-B669F6A8ED5A07E6!1701/content?publicAuth=true&mimeType=image/png" } } }

The previewText property contains a small text snippet from the page (we’ll grab text content until completing 300 characters, while maintaining full phrases) that will help the user identify what is in this page. If the page has an image, you will also get a publicly available (you can put this in an <img> tag in a HTML) link to an image in the same way public PCR does it: See Linda’s blog post.

Using page preview, you can take a page like this:

And build a preview that looks like this:

As an example, you can combine this API with the OneNote search pages API and build a OneNote pages picker based search terms which displays page previews, similar to the search experience in the OneNote client.

Jorge

 

Brightening a mystery with Failed Request Tracing: does IIS not respect the minFileSizeForComp setting for static compression?

MSDN Blogs - Mon, 05/23/2016 - 09:47

I have been working with one of my customers to fix some static compression issues on IIS 8.5. During our work I have been asked that if IIS is not respecting the minFileSizeForComp settings and it is compressing the static files that are smaller than the limit configured in the IIS settings.

Before proceeding with the situation and the solution, I would like to explain what that minFileSizeForComp setting is used for first:

minFileSizeForComp

Specifies the minimum number of kilobytes a file must contain in order to use on-demand compression.

Ref.: https://www.iis.net/configreference/system.webserver/httpcompression

As explained, if the file size is smaller than the limit configured then the static file compression will not happen. Note that the default limit is 2700 bytes for IIS 7.5 and the never versions. This means that, with the default configuration, a static file (for example a CSS file) will not be compressed if it is smaller than 2700 bytes.

Another note is that this setting is ignored for the dynamic compression as by-design.

This configuration is quite useful because compressing the small files will generally produce larger files and will not help for bandwidth usage. For example, if you compress a CSS file which is 7 byte, then you may have a compressed one which is 130 bytes as a result, which is larger than the uncompressed one. Obviously this will waste the CPU time on the server and will consume more bandwidth.

PROBLEM

As I explained in the beginning of this article, my customer asked if this setting is ignored for static files and small CSS files are compressed.

When I search the internet I have found that several discussions have been made around the same topic and the same behavior is observed / reported with almost no solution or a workaround. For example: http://forums.iis.net/t/1192378.aspx?IIS7+Compression+not+honoring+minfilesizeforcomp+setting

REPRO

To understand if IIS really ignores this setting I decided to set up a repro with the following configuration on my test machine:

  • I set up a web site on my IIS 8.5 machine.
  • I created a web site with two CSS files referenced:
    • css file which is 7 bytes
    • css which is 117 KB (120.502 bytes)

I enabled both Dynamic Compression and Static Compression for my site since I would like to have both dynamic and static files to be compressed:

Below is the configuration settings for my web site:

Please note the followings:

When I request my site with this configuration I ended up with both 7 bytes and 117 KB CSS files were compressed. Please see the Fiddler log below:

As seen in the Fiddler screenshot above the 7 bytes Site.css file was served as 130 bytes after compressed with gzip, although I have minFileSizeForComp is set 2700 bytes.

TROUBLESHOOTING THIS BEHAVIOR

IIS comes with a great built-in troubleshooting tool called Failed Request Tracing (a.k.a. FREB). FREB can provide a lot of useful information about what happens during the request pipeline in IIS, either with Integrated Pipeline mode or with Classic Pipeline mode.

To troubleshoot this behavior I set up a FREB rule in my web site for /Content/* path:

Since I am interested in successfull response from IIS I can set HTTP 200 status code. This makes sure to generate FREB logs for every requests made a file under /Content/ path for successfull operations (HTTP 200):

And since I am only interested in compression related data from IIS pipeline, I only select WWW Server Providers and choosing the Compression property. This will log only the compression related processing from IIS pipeline and create the minimum log for analyzing:

FREB logs were created after reproducing the same behavior again.

REVIEWING THE DATA

When I opened the FREB log for Site.css request I confirmed that IIS is actually respecting the minFileSizeForComp setting and the static compression did not happen for the request and the reason was FILE_TOO_SMALL:

This defintaly proves that IIS respects the minFileSizeForComp setting. But why is the file compressed then? As seen in the same FREB result above the CSS file is compressed because of Dynamic Compression settings and it also shows that the original size was 7 bytes and the result was 130 bytes!

So this is related with dynamic compression. Note that as I expressed at the beginning of this article minFileSizeForComp is ignored for dynamic compression which is a by-design behavior.

There should be some questions arising here:

  • Is a file which is compressed by static compression processed and compressed by dynamic compression again?
  • How to avoid dynamic compression to happen for this particular file?

The anwer for the first question is NO, if a file is compressed by static compression then it will not be compressed by dynamic compression. Remember that I had another CSS file which was 117 KB (bootstrap.css) and it was larger than the 2700 bytes limit for static compression so it should have been compressed by static compression. If I check the FREB log for that file I can confirm that the static compression happened but dynamic compression did not:

As seen in the FREB log results above Static Compression was successfull and the Dynamic Compression did not happen with ALREADY_CONTENT_ENCODING result.

For the answer to the second question, let’s please welcome the solution below.

SOLUTION

If you do not need Dynamic Compression you can just disable it. This will avoid dynamic compression to happen. Also, please note that Dynamic Compression should be used carefully since it may cause CPU usage since it will not create a temporary file on the disk meaning that Dynamic Compression will happen for each request by default. This is CPU intensive work.

However, if you need Dynamic Compression, you can tell IIS to not compress certain file types with dynamic compression. You can do that as site level with IIS Configuration Editor:

Select your web site and choose IIS Configuration Editor under Management section and then choose system.webServer/httpCompression. Then click … to open the Dynamic Types settings:

Then as seen in the screenshot below, add “text/css” as mimeType and set enabled=False:

Do not forget to click Apply after closing the window and it will make the necessary changes in the web.config file for your application.

Then you can test again and this time you should be able to see the small static file is not compressed as seen in the Fiddler log sample screenshot below:

SOME WORDS ABOUT BEST PRACTICES

I was discussing this issue with my friend and my colleauge Paul Cociuba who works as an Escalation Engineer in Microsoft IIS Support Team. We agreed that it is a best practice not to serve several small CSS or JS files separately. Instead, to use Bundling and Minification techniques will improve request times. The following article is a good read for those techniques:

Bundling and Minification
http://www.asp.net/mvc/overview/performance/bundling-and-minification

REFERENCES

HTTP Compression <httpCompression>
https://www.iis.net/configreference/system.webserver/httpcompression

Troubleshooting Failed Requests Using Tracing in IIS 7
http://www.iis.net/learn/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

Editing Collections with Configuration Editor
http://www.iis.net/learn/manage/managing-your-configuration-settings/editing-collections-with-configuration-editor

APPLIES TO

IIS 7.x and newer versions.


AMB

Participate in DC-area National Day of Civic Hacking

MSDN Blogs - Mon, 05/23/2016 - 09:17

Calling all architects, developers and cloud professionals to participate in the 2016 National Day of Civic Hacking.  In support of this exciting initiative, Microsoft is supporting two key events–we hope you can join us!

DC Azure Meetup–May 24

As a proud supporter of this National Day of Civic Hacking event, Microsoft will provide insight and advice to help prepare participants for the Hackathon during the DC Azure Gov Meetup starting at 5:30 p.m., Tuesday, May 24 at the Microsoft office in Washington, DC.  For more details and to RSVP, please visit the DC Azure Gov Meetup site. 

National Day of Civic Hacking DC–June 4

Join Code for America, U.S. Census Bureau, the U.S. Small Business Administration, Chief and Microsoft on June 4 for the fourth installation of the National Day of Civic Hacking in Washington DC. This five-hour hack will allow developers to leverage Microsoft Azure, among other technologies, in the development of new applications and solution ideas for local small businesses.  Be sure to register here in advance to be a part of this exciting event.

 

 

May 2016 updates for Get & Transform in Excel 2016 and the Power Query add-in

MS Access Blog - Mon, 05/23/2016 - 09:00

Excel 2016 includes a powerful new set of features based on Power Query technology, which provides fast, easy data gathering and shaping capabilities and can be accessed through the Get & Transform section on the Data ribbon.

Today, we are pleased to announce 10 new data transformation and connectivity features that have been requested by many customers.

These updates are available as part of an Office 365 subscription. If you are an Office 365 subscriber, find out how to get these latest updates. If you have Excel 2010 or Excel 2013, you can also take advantage of these updates by downloading the latest Power Query for Excel add-in.

These updates include the following new or improved data transformation features:

  • Remove blanks via Column Filter menu.
  • Convert Duration values to Years.
  • Keep Duplicates.
  • Hints for “sample input values” in the “Change Type with Locale” dialog.
  • Support for whitespace and line feeds in Query Editor preview.
  • Ability to disable previews from the Navigator window.
  • Technical name support in the Navigator window.
  • Rename queries directly from Queries pane in the Query Editor.

And the following new or improved data connectivity features:

  • Support for Command Timeout in the UX.
  • Set to disable Privacy Level prompts at machine level (including Registry Key).
Remove blanks via Column Filter menu

With this update, we have added a new data filtering option that will remove all rows where the value for the current column is null or empty. It can be accessed via the Column Filter menu drop-down.

Convert Duration values to Years

This new transformation option can be found under the Transform or Add Column tabs. Within the Duration drop-down menu there is a new “Total Years” entry that allows you to calculate total years based on a Duration type column. The logic applied is to divide the total number of days by 365.

Keep Duplicates

This new transformation allows users to keep only the rows with duplicated values on the select column(s). Before this update, only “Remove Duplicates” was available. This new option can be found on the ribbon under Home > Remove Duplicates split button and then select the Keep Duplicates command.

Hints for “sample input values” in the “Change Type with Locale” dialog

Power Query allows users to change the type of a column taking into account the Locale or regional settings/formats in which the data is being represented. This can be done by setting the Locale value for the entire workbook (under Data > New Query > Query Options > Current Workbook > Data Load) and also can be customized for each specific “Change Type” step in the queries.

Within the “Change Type with Locale” dialog (accessible by right-clicking on a column header in the Query Editor preview then selecting Change Type > Using Locale…), users can now get a few “sample values” for the expected input format when selecting a specific data type and locale.

Support for whitespace and line feeds in the Query Editor preview

With this update, we have added support for visualizing whitespaces in data cells within the Query Editor preview. This includes any whitespace characters, including line feeds.

You can toggle between “Show whitespace” (default behavior) and not showing it (old behavior) from the View tab on the Query Editor ribbon.

Ability to disable previews from the Navigator window

With this update, we have added an option to disable previews in the Navigator dialog. This allows users to reduce the number of calls being made to the data source in order to retrieve these previews.

Technical name support in the Navigator window

Some data sources support the notion of a “technical name” for objects within the source. These “technical names” are meant to provide a more meaningful name for the end user connecting to the data source than the “physical name” for the object. In this update, we added a new option to the Navigator dialog to allow users to switch between “physical name” (previous behavior) and “technical name” (new behavior).

Rename queries directly from the Queries pane in the Query Editor

With this update, it is now possible to rename queries directly from the Queries pane inside the Query Editor. To rename a query from this pane, simply select and right-click the query and select Rename, or double-click the query name, or select it and then press F2.

Support for Command Timeout in the UX

With this update, users are now able to specify a Command Timeout value (in minutes) when connecting to database sources. This is a significant experience improvement since, before this update, this customization was only possible via custom formula authoring.

This new Command Timeout option can be found under the “Advanced options” section in data source dialogs.

Set to disable Privacy Level prompts at machine level (including Registry Key)

Power Query allows users to combine data from multiple data sources into a single workbook. When dealing with multiple data sources, it is possible for users to define queries that require sending data from one data source to another data source. To prevent accidental disclosure of private or enterprise data, Power Query provides a feature called “Privacy Levels.” This feature allows users to specify the Privacy Level (Public, Organizational or Private) for each data source that they connect to when trying to combine data from multiple sources. Based on the selected Privacy Level, Power Query will ensure that data from a Private source is not sent to any other sources and that data from an Organizational source is only sent to sources within the organization.

In some cases, this privacy enforcement can get in the way for users who want to define some data combinations that bypass this Privacy feature. Another potential effect of Privacy Levels is that, when combining data from multiple sources that are not supposed to send data between them due to their Privacy Levels, Power Query will compensate and download the data locally to perform the data combination in a secure way. This could result in a performance degradation due to the fact that data would have to be cached locally from all sources implied and combined in-memory. For those cases, users have the ability to ignore Privacy Levels as a “current workbook” setting.

However, given that this option was only available per file and per user, it would require a user to enable this option for each workbook they would like to leverage. In addition, ignoring this privacy protection needs to be approved by each user of the workbook, so someone opening a .XLSX file from a different user in their computer would have to either provide Privacy Levels for the data sources involved on the report or manually disable this feature in the Options dialog (under Query Options > Current Workbook > Privacy section).

In this release, we’re introducing a new setting to allow users and enterprises to pick one of the following behaviors:

  • Always combine data according to your Privacy Level settings for each source—This new option allows a user to “enforce” that Privacy Levels are taken into account for every .XLSX file on their machine, regardless of whether the “Current Workbook” Privacy Level setting is enabled or disabled.
  • Combine data according to each file’s Privacy Level settings—This is the default behavior and matches the Power Query behavior in previous releases.
  • Always ignore Privacy Level settings—This new option allows a user to always bypass Privacy Level settings for every .XLSX file in their machine, regardless of the Current Workbook setting.

These options are available to the user under the Query Options dialog:

How do I get started?

Excel 2016 provides a powerful set of capabilities for fast, easy data gathering and shaping, which is available under the Get & Transform section on the Data ribbon. Updates outlined in this blog are available as part of an Office 365 subscription. If you are an Office 365 subscriber, find out how to get these latest updates. If you have Excel 2010 or Excel 2013, you can also take advantage of these updates by downloading the latest Power Query for Excel add-in.

—The Excel team

The post May 2016 updates for Get & Transform in Excel 2016 and the Power Query add-in appeared first on Office Blogs.

Using OneNote Learning Tools in the foreign language classroom

MS Access Blog - Mon, 05/23/2016 - 09:00

Today’s post was written by Bisera Ristikj, teacher of English as a Foreign Language at Goce Delchev Primary School in Negotino, Macedonia.

The foreign language classroom focuses on many different aspects. As young learners are not fully prepared to learn a new language, the educator needs to identify the crucial requisites to boost children’s attitudes toward the new language. One of the key stages when you first meet your new students is to learn and recognize the different skillset of each student. This will support your teaching methods and approaches. For example, you probably have a student who wants to use a tablet to learn, a student who is self-confident and learns on their own and a student who wants to collaborate with all peers and easily accepts all teaching approaches.

There are three basic stages of language learning that help you fully understand how to teach a foreign language and ensure students can become fluent speakers later on. The first stage is learning sounds, or the ability to recognize phonemes, also called phonemic awareness. Stage two is about learning new words or understanding how the sounds go together to create meaning. The amount of the vocabulary will also boost fluency. The next stage is making sentences with the new words.

In the past seven years, I have been teaching English to students aged from six to ten. The curriculum is focused on developing receptive skills in first and second grade and productive skills in third grade.

I have found one perfect tool to cope with the different learning styles and support the development of all four language skills—Microsoft OneNote Notebook. Employing the right digital tool in the classroom promotes productivity and makes teaching and learning easier.

Next, I am going to show you the Microsoft OneNote Notebook with a focus on the new Learning Tools. I successfully implemented the use of the OneNote Learning Tools in my teaching, which has yielded significant impact in language acquisition. This tool supports all of the aspects I have marked as important and crucial when teaching foreign language.

Since most of my teaching includes listening activities, I often record audio to play during the lesson. Students listen and they use the drawing option to complete the exercises in their OneNote Notebooks. In this way, not only do I have complete insight on how they completed the exercise, but the textbook also stays neat for the next class.

Mastering the receptive skills like listening and reading (word recognition) in early ages is a firm jumping board to later develop the productive skills of speaking and writing.

How the Immersive Reader supports foreign language learning

The Immersive Reader can help you save time and become your personal assistant—Preparing for the next day at work can often seem tiring because you need to create a lesson plan and come up with some enjoyable activities that support the lesson objectives and teaching resources. All of my lessons include listening activities to emphasize listening comprehension. So instead of carrying CDs and a player, I can easily type in the OneNote Notebook, and students can play that text with the Immersive Reader. Pause the recording whenever you feel students are staying behind. Another way is to ask students to type in a sentence in the OneNote Notebook and practice pronouncing with the Immersive Reader.

The Immersive Reader serves as a pronunciation drill—In my teaching, the correct pronunciation is something I really care about. So it’s important how the teacher pronounces a word. A word can be spoken in different ways by various individuals, and this depends on various factors as cultural exposure to the language, speech or voice disorders and the education. Good pronunciation is essential for speaking and understanding spoken English. So if you want to give your students a correct pronunciation from a native, the Immersive Reader can completely replace you. Instead of having students search a phonetic transcription on how to pronounce a particular word, just type the word in the OneNote Notebook and let the Immersive Reader pronounce it. It is super easy and convenient, and students are going to love it because it is a new way of learning.

The Immersive Reader gives students grammar input—This feature is my very favorite for a good reason. Teaching grammar to students is one of the toughest tasks because presenting it in an understandable format can be challenging to teachers. My fourth and fifth graders learn how to recognize a noun, verb and adjective in a sentence. This is important when it comes to correct interpretation of a sentence, and students often misunderstand. With the Immersive Reader, they can self-evaluate their grammar knowledge.

Here is a great tip for how teachers can use this feature: Have students recognize the verbs, nouns and adjectives in some part of a poem, text or some sentences by asking them to mark the nouns with purple, the verbs with red and the adjectives with blue—and then ask them to use the Immersive Reader to see if they completed the task correctly.

Use the Immersive Reader to practice tongue twisters—This spring, I prepared a recital for Easter that included reciting poems, an Easter egg hunt and Easter tongue twisters. Using the Immersive Reader, I could adjust the voice speed, which helped the students practice tongue twisters. The task I gave to my students was to say one tongue twister ten times. The good thing was that my students could also practice at home at any time using the Immersive Reader—first with slow voice speed and then smoothly adjusting the speed faster.

Below, you can see a short video of how much fun we have in the classroom with the help of the Immersive Reader to practice vocabulary from the textbook on the unit, including house and furniture vocabulary.

I will leave you with an Immersive Reader tip you can use in the classroom. This hack was created when I first installed the new add-in Learning Tools. My first thought was that this would be really practical, especially in large class of noisy students.

So what does it take to be a great teacher? Besides having students’ needs in focus, trying to find the most convenient way to deliver knowledge. I have found my way with the OneNote Notebook and the great input of the new Learning Tools. To see the Sway version of this blog, follow this link.

—Bisera Ristikj, @TeflBisera

The post Using OneNote Learning Tools in the foreign language classroom appeared first on Office Blogs.

Become a Microsoft Innovative Educator Expert – applications now open!

MSDN Blogs - Mon, 05/23/2016 - 08:04

Applications are now open for teachers wishing to join the Microsoft Innovative Educator programme. Details for applying can be found below, but before we get to that we’d like to share some of the things us here in the Microsoft UK Education team have been up to this year with the members of our local MIE community.

What’s it like being a MIE-Expert?

At the heart of everything we do here is the mission to empower every student on the planet to expect more, to do more, and to be more. As a technology company there is only so much that we can do. Ultimately it requires the day to day attention, coaching, understanding and relationship of trust existing between teachers and students that will help us achieve this goal.

We are exceptionally fortunate to work closely with an incredible group of people who help us in a number of ways, such as joining us at events, hosting workshops in their own schools, writing blogs, and ultimately sharing their stories and experiences with other educators so that they might learn from them and enjoy similar successes by transform their own classrooms.

Many of you will have been to the BETT show, and there’s a good chance that you’ll have seen a Theatre Session presented by one of our MIE-Experts, and this year was no different. We had teachers on the stand sharing their stories around OneNote, Office Mix, Windows 10, Surface and more, all centred around how they are making use of technology to transform their teaching.

Another example of where our MIE-Experts have been instrumental is the Redefining Learning events, run in partnership with our Showcase Schools. Up and down the country many of our MIE-Experts have been running workshops and sessions for other teachers and school leaders from the local community as part of the #RedefineLearn events, helping them to further their understanding of technology currently available to educators, and inspire change on a pedagogical level.

#mysteryskype with @yifrati & @misskmgriffin @Bolsover_Jun #redefinelearn conference @microsofteduk #edchat pic.twitter.com/NnjiANRaTs

— TheFeed (@TheFeedUK) May 18, 2016

MIE-Experts have been having a broader, global impact by sharing their knowledge and expertise through the Microsoft Educator Community – a site that combines the experience of the Microsoft Educator Network and Skype in the Classroom. This site is a central destination where you’ll have access to over 1.5 million educators around the world, a fresh selection of professional development courses and resources, thousands of inspiring lesson plans, and access to live lessons and virtual field trips. Many of the resources you’ll find on here have been contributed to by our UK MIEEs, and they are actively involved in the discussions happening across the wider global education community.

Earlier this year a number of our UK MIE-Experts shared their thoughts about the ‘MEC’ through a series of posts on our UK Schools blog during #MECweek.

Recently, we’ve also started to share classroom stories and journeys of transformation from our MIE-Experts and Showcase Schools via #TheFeed – a magazine written by educators, for educators:

#TheFeed – Issue 6 – May 2016Tim BushDocs.com

But underpinning all of this is the relationship between all of the members of the MIE-Expert community, and the way they communicate on a daily basis via social networks such as Yammer and Twitter, to share ideas and best practices, ask each other questions, and ultimately work collectively to drive learning with technology forwards. To see what MIE-Experts all over the world are talking about, look at the #MIEExpert hashtag on Twitter.

Do you want to Become a Microsoft Innovative Educator Expert?

The Microsoft Innovative Educator (MIE) Expert program is an exclusive program created to recognize global educator visionaries who are using technology to pave the way for better learning and student outcomes. MIE Experts work closely with Microsoft to pioneer innovation in education. They advocate and share their thoughts on the effective use of technology in education with peers and policy makers. They provide insight for Microsoft on new products and tools for education, and they exchange best practices as they work together.

To nominate yourself for the 2016-2017 MIE Expert class:

1.      Read more about the Microsoft Innovative Educator (MIE) Expert program.

2.      Be sure you’re a member of the Microsoft Educator Community, and complete your profile. (You will need to submit the URL to your public profile as a part of the nomination process. You can find your URL by going into “Edit Profile” and looking under “basic information.”)

3.      Create a 2-minute Office Mix, video or Sway* that creatively answers the following questions:

  • Why do you consider yourself to be a Microsoft Innovative Educator Expert?
  • Describe how you have incorporated Microsoft technologies in innovative ways in your classroom. Include artifacts that demonstrate your innovation.
  • If you become an MIE Expert, how do you hope it will impact your current role?

*To share the Mix/video/Sway in your nomination, you will need to post it somewhere that allows you to create a URL to share it.

4.      Complete the self-nomination form by July 15, 2016.

Good luck with your applications!

Become a Microsoft Innovative Educator Expert – applications now open!

MSDN Blogs - Mon, 05/23/2016 - 08:00

Applications are now open for teachers wishing to join the Microsoft Innovative Educator programme. Details for applying can be found below, but before we get to that we’d like to share some of the things us here in the Microsoft UK Education team have been up to this year with the members of our local MIE community.

What’s it like being a MIE-Expert?

At the heart of everything we do here is the mission to empower every student on the planet to expect more, to do more, and to be more. As a technology company there is only so much that we can do. Ultimately it requires the day to day attention, coaching, understanding and relationship of trust existing between teachers and students that will help us achieve this goal.

We are exceptionally fortunate to work closely with an incredible group of people who help us in a number of ways, such as joining us at events, hosting workshops in their own schools, writing blogs, and ultimately sharing their stories and experiences with other educators so that they might learn from them and enjoy similar successes by transform their own classrooms.

Many of you will have been to the BETT show, and there’s a good chance that you’ll have seen a Theatre Session presented by one of our MIE-Experts, and this year was no different. We had teachers on the stand sharing their stories around OneNote, Office Mix, Windows 10, Surface and more, all centred around how they are making use of technology to transform their teaching.

Another example of where our MIE-Experts have been instrumental is the Redefining Learning events, run in partnership with our Showcase Schools. Up and down the country many of our MIE-Experts have been running workshops and sessions for other teachers and school leaders from the local community as part of the #RedefineLearn events, helping them to further their understanding of technology currently available to educators, and inspire change on a pedagogical level.

#mysteryskype with @yifrati & @misskmgriffin @Bolsover_Jun #redefinelearn conference @microsofteduk #edchat pic.twitter.com/NnjiANRaTs

— TheFeed (@TheFeedUK) May 18, 2016

MIE-Experts have been having a broader, global impact by sharing their knowledge and expertise through the Microsoft Educator Community – a site that combines the experience of the Microsoft Educator Network and Skype in the Classroom. This site is a central destination where you’ll have access to over 1.5 million educators around the world, a fresh selection of professional development courses and resources, thousands of inspiring lesson plans, and access to live lessons and virtual field trips. Many of the resources you’ll find on here have been contributed to by our UK MIEEs, and they are actively involved in the discussions happening across the wider global education community.

Earlier this year a number of our UK MIE-Experts shared their thoughts about the ‘MEC’ through a series of posts on our UK Schools blog during #MECweek.

Recently, we’ve also started to share classroom stories and journeys of transformation from our MIE-Experts and Showcase Schools via #TheFeed – a magazine written by educators, for educators:

#TheFeed – Issue 6 – May 2016Tim BushDocs.com

But underpinning all of this is the relationship between all of the members of the MIE-Expert community, and the way they communicate on a daily basis via social networks such as Yammer and Twitter, to share ideas and best practices, ask each other questions, and ultimately work collectively to drive learning with technology forwards. To see what MIE-Experts all over the world are talking about, look at the #MIEExpert hashtag on Twitter.

Do you want to Become a Microsoft Innovative Educator Expert?

The Microsoft Innovative Educator (MIE) Expert program is an exclusive program created to recognize global educator visionaries who are using technology to pave the way for better learning and student outcomes. MIE Experts work closely with Microsoft to pioneer innovation in education. They advocate and share their thoughts on the effective use of technology in education with peers and policy makers. They provide insight for Microsoft on new products and tools for education, and they exchange best practices as they work together.

To nominate yourself for the 2016-2017 MIE Expert class:

1.      Read more about the Microsoft Innovative Educator (MIE) Expert program.

2.      Be sure you’re a member of the Microsoft Educator Community, and complete your profile. (You will need to submit the URL to your public profile as a part of the nomination process. You can find your URL by going into “Edit Profile” and looking under “basic information.”)

3.      Create a 2-minute Office Mix, video or Sway* that creatively answers the following questions:

  • Why do you consider yourself to be a Microsoft Innovative Educator Expert?
  • Describe how you have incorporated Microsoft technologies in innovative ways in your classroom. Include artifacts that demonstrate your innovation.
  • If you become an MIE Expert, how do you hope it will impact your current role?

*To share the Mix/video/Sway in your nomination, you will need to post it somewhere that allows you to create a URL to share it.

4.      Complete the self-nomination form by July 15, 2016.

Good luck with your applications!

Transactional Replication Using an Azure SQL Database Subscriber

MSDN Blogs - Mon, 05/23/2016 - 06:53

By Graeme Scott – Data Platform Solution Architect.

For companies that have geographically dispersed operating models which may involve physical stores, outlets, venues or branches; data replication from individual stores to data centres is often a key technical function that enables companies to measure overall business performance.

It is not uncommon for geographically dispersed companies to capture a significant amount of transactional and operational data at individual stores or branches; in these scenarios, customers often use transactional replication to transport the data centrally for analysis.

With SQL Server 2016 it’s now possible to replicate data from an on premise replication publisher to an Azure SQL Database subscriber.

This replication configuration provides customers with the following possibilities:

  • A very easy route to transition to a hybrid – on premise cloud configuration with minimal disruption to business continuity.
  • Off load reporting workload to separate cloud infrastructure.
  • Provide fine grain control as to the database objects (tables, views) that are stored within an Azure SQL Database. With replication, individual tables (articles) are added to a publication that are to be replicated to a subscriber.
  • With data stored within an Azure SQL Database subscriber, customers can enrich the data and gain increased insight by leveraging a range of Azure services, for example Azure Machine Learning and R.
  • Data recoverability and high availability.

Setting up transactional replication from an on premise publisher to an Azure SQL Database subscriber is practically identical when compared to an on premise setup experience using SQL Server Management Studio. The configuration can also be achieved using TSQL scripts.

When I setup transactional replication to use an Azure SQL Database subscriber, the only change I had to make compared to a full on premise configuration was the subscriber connection to suit a Azure SQL Database (Azure SQL Database connection string):

 

SQL Server Replication Monitor also works seamlessly with an Azure SQL Database subscriber, all the replication information and diagnostics data are present.

So what are the limitations associated with using an Azure SQL Database as a subscriber to for transactional replication?

  • Only transactional replication is supported.
  • The transactional replication needs to be a push subscription.
  • Any post snapshot scripts would need to be verified to determine suitability for an Azure SQL Database.
  • A SQL Azure Database can only be a subscriber database for transactional replication.
  • There will be limitations on publishing database objects that are CLR based.

It’s possible to meet the majority of these goals with SQL Server Availability Groups. The main differences with these two options are that Availability Groups replicate an entire database as a secondary replica.

With transactional replication it’s possible to replicate only a single table from within a publisher database. This may be less of a barrier for customers to consider moving data and workload to an Azure SQL Database.

The following article has more details about replicating to SQL Azure:

https://azure.microsoft.com/en-gb/blog/transactional-replication-to-azure-sql-db/

The following article has more details about SQL Server replication with SQL Server 2016:

https://msdn.microsoft.com/en-us/library/ms152559.aspx

It’s outside the scope of this article however it is possible to use earlier versions of SQL Server (SQL Server 2012 upwards) to replicate from an on premise publisher to an Azure virtual machine. Some more details can be found here:

https://blogs.msdn.microsoft.com/repltalk/2014/07/28/microsoft-sql-replication-between-windows-azure-virtual-machines/

Все, что вам нужно знать про DevCon 2016

MSDN Blogs - Mon, 05/23/2016 - 04:55

Конференция DevCon 2016 пройдет 25 и 26 мая, а это значит, что уже через 2 дня состоится крупнейшее событие для разработчиков от компании Microsoft! Мы собрали все анонсы и необходимые ссылки, которые могут понадобиться, чтобы, вне зависимости от места положения, вы смогли бы следить за проведением конференции и присутствовать на интересующих докладах удаленно.

Присоединяйтесь к онлайн-трансляции

Вы сможете присоединиться к онлайн-трансляции по ссылке в 9:30 утра 25 мая. Трансляция программы конференции начнется в 10:00 утра с открытия на главной сцене мероприятия и продолжится до самого окончания — 26 мая. Не пропустите доклады на тему Windows 10, Azure, Office, доклады от представителей сообщества, экспертов индустрии и специально выделенный стартап-трек с представителями ФРИИ, Сколково, GVA LaunchGurus, Microsoft Ventures и Microsoft Россия. На странице трансляции, вы сможете скачать напоминание себе в календарь, чтобы не пропустить интересующие доклады.

Рекомендуем вам посетить сайт конференции, чтобы изучить программу представленную в этом году.

Скачайте приложение конференции

Мы собрали всю необходимую информацию о конференции DevCon 2016 в мобильном приложении, доступном для iOS, Android иWindows 10. Вы можете увидеть весь список докладов, информацию о спикерах, получить ссылку на онлайн-трансляцию и другую дополнительную информацию. Однако, приложение пригодится вам и после окончания конференции, ведь в нем будут появляться все крупнейшие мероприятия для разработчиков от Microsoft в России.

Присоединяйтесь к конференции и делитесь своими впечатлениями в социальных сетях Twitter, Instagram, Facebook или Вконтакте, используя официальный хэштег #msdevcon.

Все анонсы DevCon 2016 в официальном блоге

DevCon — крупнейшая конференция Microsoft для разработчиков в России. Мы проводим ее шестой год и традиционно стараемся собрать неравнодушных к платформе Microsoft за чертой города, в комфортном загородном парк-отеле, чтобы вместе обсудить актуальные технологии и попробовать свежие версии продуктов на практике.

В 2016 году DevCon предстанет в обновленном формате и мы с удовольствием делимся с вами секретами подготовки нашей конференции, а также основными анонсами:

В этом году у участников мероприятия будет больше возможностей для погружения в технологии и получения новых знаний. Мы приготовили большое количество новых интересных мастер классов, о которых подробнее расскажем в следующем анонсе. При этом DevCon — это по-прежнему больше, чем просто конференция, с насыщенной программой и общением с экспертами и коллегами вне программы. На сайте вы можете подробнее узнать, как стать участником.

Напоминаем, что в этом году мы предлагаем упрощенное участие в DevCon 2016 с новой категорией билетов Guest Pass за 2 500 рублей, в которые входит трансфер до места проведения, посещение всех докладов и мастер-классов первого дня конференции, и интерактивная выставка!

Торопитесь успеть купить GUEST PASS на конференцию DevCon 2016 до 24 мая.

До встречи на конференции!

Celebrate #WorldTurtleDay with your class using the Microsoft Educator Community

MSDN Blogs - Mon, 05/23/2016 - 03:50
Today is #WorldTurtleDay, and to help you mark the occasion there are some fantastic resources and activities to be found within the Microsoft Educator Community.

Studying wildlife and the natural world is a great way for young children to be introduced to and gain an understanding of a number of different topic areas, from the biological study of the animals themselves, to sustainability and conservation, geography and environmental issues, weather and climate, different cultures around the world, and many more themes and disciplines in between.

Skype in the Classroom, which is a part of the Microsoft Educator community are celebrating World Turtle Day today. You’ll find a selection of virtual field trips, activities from our partners, and Skype Lessons with experts from the other side of the world, all related to these wonderful creatures and the places they inhabit. So if you haven’t yet signed up to the MEC (it’s free!) and explored all it has to offer, this is great opportunity to try something new, and take a dive into all of the different teacher CPD courses, classroom materials, lesson plans, guest speakers and more.

Sign up to the Microsoft Educator Community for free (quick video guide)

We hope you find a way to incorporate some of our turtle related content into your classroom today, and would love to hear from anyone who is celebrating #WorldTurtleDay with anything from the MEC!

Be sure to reach out to us on Twitter via @microsofteduk, and also our colleagues over at @SkypeClassroom who make all of these wonderful virtual field trips possible.

And wherever you are, enjoy #WorldTurtleDay!

Celebrate #WorldTurtleDay with your class using the Microsoft Educator Community

MSDN Blogs - Mon, 05/23/2016 - 03:50
Today is #WorldTurtleDay, and to help you mark the occasion there are some fantastic resources and activities to be found within the Microsoft Educator Community.

Studying wildlife and the natural world is a great way for young children to be introduced to and gain an understanding of a number of different topic areas, from the biological study of the animals themselves, to sustainability and conservation, geography and environmental issues, weather and climate, different cultures around the world, and many more themes and disciplines in between.

Skype in the Classroom, which is a part of the Microsoft Educator community are celebrating World Turtle Day today. You’ll find a selection of virtual field trips, activities from our partners, and Skype Lessons with experts from the other side of the world, all related to these wonderful creatures and the places they inhabit. So if you haven’t yet signed up to the MEC (it’s free!) and explored all it has to offer, this is great opportunity to try something new, and take a dive into all of the different teacher CPD courses, classroom materials, lesson plans, guest speakers and more.

Sign up to the Microsoft Educator Community for free (quick video guide)

We hope you find a way to incorporate some of our turtle related content into your classroom today, and would love to hear from anyone who is celebrating #WorldTurtleDay with anything from the MEC!

Be sure to reach out to us on Twitter via @microsofteduk, and also our colleagues over at @SkypeClassroom who make all of these wonderful virtual field trips possible.

And wherever you are, enjoy #WorldTurtleDay!

How to configure your Drupal 8 ARM template deployment to Azure using existing MySQL Server

MSDN Blogs - Mon, 05/23/2016 - 02:31

This post discusses the parameter configurations needed when setting up a multi node Drupal deployment using the Drupal 8 VM scaleset (with GlusterFS and MySQL) ARM Template.

Parameter values which need to be entered (sample values have been shown) :

  • drupalVmSku: “Standard_D1_v2″ (Size of the Drupal VMs)
  • drupalUbuntuOSVersion: “14.04.4-LTS” (OS Version for the Drupal VMs)
  • drupalAdminUser: “drupalAdmin” (Drupal Site Administrator)
  • drupalAdminPassword: “drupalAdmin-123″ (Password for Drupal Administrator)
  • drupalVersion: “8.1.1” (The Drupal Version)
  • vmssName: “dru25vmss” (Name of the VM Scaleset)
  • instanceCount: “2” (Default and minimum number of Drupal VMs in the VM scaleset
  • maximumInstanceCount: “10” (Maximum Number of Drupal VMs in the scale set)
  • adminUsername: “drupvmuser” (The ssh username for the drupal and gluster vms)
  • adminPassword: “drupvmpass” (The ssh password for drupal and gluster vms)
  • drupalInstallationDatabaseName: “drupaldb” (the drupal database name using which the drupal site will be installed)
  • createNewMySQLServer: “no” (No is default, details of existing SQL Server need to be provided)
  • mySqlFQDN: “host123.southcentralus.cloudapp.azure.com” (FQDN of existing MySQL server)
  • mysqlUser: “admin” (the user name used to connect to the mysql server instance)
  • mysqlUserPassword: “Mysql-Pass1234″ (The password used to connect to the MySQL server instance)
  • glusterTemplateLocation: “https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/gluster-file-system/” (Base location of ARM template used to create the Gluster cluster)
  • templateLocation: “https://raw.githubusercontent.com/maniSbindra/azure-quickstart-templates/master/301-drupal8-vmss-glusterfs-mysql” (Base location of the the Drupal ARM template and scripts)
  • storageAccountNamePrefix: “dru25stacc” (prefix for the VM storage accounts, which need to be unique)
  • glusterVmSize: “Standard_D1_v2″ (Size of the gluster VMs)
  • glusterInstanceCount: “2” (Number of nodes in the gluster cluster)

Parameter values which are needed only when setting up a new MySQL server and hence can be ignored :

  • mySqlDnsName: “NA”
  • mySqlVmUserName: “NA”
  • mySqlVmPassword: “NA”
  • mySqlVmSize: “NA”
  • dbCentosOSVersion: “6.6”

4 июня 2016 г. — Облачный день 2.0. Искусственный интеллект в облаке

MSDN Blogs - Mon, 05/23/2016 - 01:47

В начале апреля мы провели виртуальный облачный день, состоящий из докладов и лабораторных работ, которые помогли участникам познакомиться с облаком Microsoft Azure за один день. Поскольку мероприятие оказалось весьма успешным, мы продолжаем добрую традицию и проводим Облачный день 2.0, посвященный теме искусственного интеллекта в облаке.

Почему мы выбрали тему искусственного интеллекта? Сейчас Microsoft бурно развивает направление «more personal computing», в рамках которого анонсирована Microsoft Bot Framework и Cognitive Services (ранее Project Oxford). Всё это позволяет вам добавлять всё больше интеллектуальности в свои приложения, по-новому взаимодействовать с пользователем — и всё это с помощью весьма простого кода, используя готовые облачные сервисы. Мы специально разработали контент облачного дня таким образом, чтобы материал был понятен даже студентам начальных курсов и школьникам, умеющим программировать.

Первые 800 человек, зарегистрировавшиеся на облачный день, получат промо-код на месяц использования облачных ресурсов Microsoft Azure на сумму $100. Если кому-то не хватит — то 80% упражнений можно будет делать, используя бесплатное облачное предложение для студентов.

В рамках облачного дня будет представлено несколько больших тем:

  • Краткое введение в искусственный интеллект, в котором мы расскажем в целом про различные направления ИИ, про его роль к современном мире и про направление more personal computing. Поскольку Дмитрий Сошников, технологический евангелист Microsoft, преподает курс «Искусственный интеллект» на факультете Прикладной математики Московского авиационного института, то в этой лекции он поделится небольшой частью того, что рассказываю студентам на первой лекции.
  • Создание чат-ботов с помощью Microsoft Bot Framework. Мы уже касались этой темы в статье на хабре, теперь же расскажем более подробно о том, как используются различные элементы фреймворка: диалоги, цепочки диалогов, технология FormFlow и распознавание естественного языка при помощи когнитивного сервиса LUIS.
  • Использование когнитивных сервисов, в частности, сервиса распознавания лиц, пола, возраста и эмоций. Мы проведем интересный вычислительный эксперимент по определению самого счастливого человека в интернет по его изображению, и вы сможете (с помощью доступных облачных ресурсов) продолжить этот эксперимент дома (например, найти самого счастливого из своих друзей вконтакте).
  • Машинное обучение: использование Azure Machine Learning и сервера Microsoft R для извлечения знаний из данных. Наш лучший эксперт по машинному обучению Александр Белоцерковский покажет несколько увлекательных примеров. Мы уже немного касались этой темы в нашем прошлом облачном дне — сейчас же вас ждет увлекательное продолжение!

Как и в прошлый раз, вас ждут видео-лекции, которые вы сможете просматривать в удобном темпе, и серия несложных лабораторных работ. В течение облачного дня наши эксперты будут готовы ответить на ваши вопросы в режиме реального времени. Чтобы эффективно пройти обучение, мы рекомендуем делать задания, а для этого вам понадобится:

  • Visual Studio 2015, желательно Update 2, с установленным Microsoft Azure SDK.
  • Доступ в облако Microsoft Azure. После регистрации, за несколько дней до мероприятия, вы получите промо-код на использование облака, который необходимо заранее активировать, чтобы не тратить на это время на мероприятии. Инструкции по активации кода вы можете найти в первой лекции облачного дня 1.0.

Ждём вас на облачном дне 2.0! Надеюсь, это будет хорошим началом лета!

Pages

Subscribe to Randy Riness @ SPSCC aggregator
Drupal 7 Appliance - Powered by TurnKey Linux