diff --git a/README.md b/README.md
index 1351c2d2..af2c0af7 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-# SQL Server Code Samples
-This GitHub repository contains code samples that demonstrate how to use SQL Server features. Each sample includes a README file that explains how to run and use the sample.
+# SQL Server and Azure DB Samples
+This GitHub repository contains code samples that demonstrate how to use SQL Server and Azure SQL Database features. Each sample includes a README file that explains how to run and use the sample.
## Working in GitHub
To work in GitHub, go to https://github.com/microsoft/sql-server-samples and fork the repository. Work in your own fork and when you are ready to submit to make a change or publish your sample for the first time, submit a pull request into the master branch of sql-server-samples. One of the approvers will review your request and accept or reject the pull request.
diff --git a/samples/in-memory/ticket-reservations/README.md b/samples/in-memory/ticket-reservations/README.md
index 226281ae..dfe1cd97 100644
--- a/samples/in-memory/ticket-reservations/README.md
+++ b/samples/in-memory/ticket-reservations/README.md
@@ -49,7 +49,7 @@ With default settings on one machine with 24 logical cores and relatively slow S
When deploying to Azure SQL Database, make sure to run the app in an Azure VM in the same region as the database.
## About the code
-The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade web applications. This is beyond the scope of this quick start sample.
+The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade applications. This is beyond the scope of this quick start sample.
## More information
- [In-Memory OLTP (In-Memory Optimization)] (https://msdn.microsoft.com/en-us/library/dn133186.aspx)
diff --git a/samples/master-data-services/BusinessRules/BusinessRules.csproj b/samples/master-data-services/BusinessRules/BusinessRules.csproj
new file mode 100644
index 00000000..9f685858
--- /dev/null
+++ b/samples/master-data-services/BusinessRules/BusinessRules.csproj
@@ -0,0 +1,52 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {6F10BF17-E821-41D8-A83A-43787AC9E238}
+ Exe
+ Properties
+ MDSBusinessRules
+ BusinessRules
+ v4.5.1
+ 512
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/master-data-services/BusinessRules/BusinessRules.sln b/samples/master-data-services/BusinessRules/BusinessRules.sln
new file mode 100644
index 00000000..d5ae685f
--- /dev/null
+++ b/samples/master-data-services/BusinessRules/BusinessRules.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessRules", "BusinessRules.csproj", "{6F10BF17-E821-41D8-A83A-43787AC9E238}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6F10BF17-E821-41D8-A83A-43787AC9E238}.Debug|x86.ActiveCfg = Debug|x86
+ {6F10BF17-E821-41D8-A83A-43787AC9E238}.Debug|x86.Build.0 = Debug|x86
+ {6F10BF17-E821-41D8-A83A-43787AC9E238}.Release|x86.ActiveCfg = Release|x86
+ {6F10BF17-E821-41D8-A83A-43787AC9E238}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/samples/master-data-services/BusinessRules/Program.cs b/samples/master-data-services/BusinessRules/Program.cs
new file mode 100644
index 00000000..0b41e7bc
--- /dev/null
+++ b/samples/master-data-services/BusinessRules/Program.cs
@@ -0,0 +1,424 @@
+//==============================================================================
+//
+// © Microsoft corp. All rights reserved.
+// This code is licensed under the Microsoft Public License.
+// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
+// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
+// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+//
+//==============================================================================
+using System;
+using System.ServiceModel;
+using MDSBusinessRules.MDSTestService; // For the created service reference.
+
+namespace MDSBusinessRules
+{
+ class Program
+ {
+ // MDS service client proxy object.
+ private static ServiceClient clientProxy;
+ // Set the MDS URL (plus /Service/Service.svc) here.
+ private static string mdsURL = @"http://localhost/MDS/Service/Service.svc";
+
+ static void Main(string[] args)
+ {
+ try
+ {
+ // Create a service proxy.
+ clientProxy = GetClientProxy(mdsURL);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("Error creating a service proxy: {0}", ex);
+ return;
+ }
+
+ // Create a new business rule and publish it.
+ // You need to specify the existing Model and Entity names.
+ CreateAndPublishBR("TestModel", "TestEntity", "Test Rule");
+
+ // Edits the business rule and publishes it.
+ EditAndPublishBR("TestModel", "TestEntity", "Test Rule");
+
+ // Creates a member that causes a validation issue, processes the validation and gets the list of validation issues.
+ // You need to specify the existing Model, Entity, and Version names.
+ GetBRValidationIssue("TestModel", "TestEntity", "Test Rule", "VERSION_1");
+
+ // Excludes the business rule and publishes it.
+ ExcludeAndPublishBR("TestModel", "TestEntity", "Test Rule");
+
+ // Deletes the business rule and publishes it.
+ DeleteAndPublishBR("TestModel", "TestEntity", "Test Rule");
+
+ }
+
+ // Creates MDS service client proxy.
+ private static ServiceClient GetClientProxy(string targetURL)
+ {
+ // Create an endpoint address using the URL.
+ EndpointAddress endptAddress = new EndpointAddress(targetURL);
+
+ // Create and configure the WS Http binding.
+ WSHttpBinding wsBinding = new WSHttpBinding();
+
+ // Create and return the client proxy.
+ return new ServiceClient(wsBinding, endptAddress);
+ }
+
+ // Handles operation errors.
+ private static void HandleOperationErrors(OperationResult result)
+ {
+ string errorMessage = string.Empty;
+
+ if (result.Errors.Count > 0)
+ {
+ foreach (Error anError in result.Errors)
+ {
+ errorMessage += "Operation Error: " + anError.Code + ":" + anError.Description + "\n";
+ }
+ // Show the error messages.
+ Console.WriteLine(errorMessage);
+ }
+ }
+
+ // Create a new business rule and publish the rule to enable it in the validation process.
+ private static void CreateAndPublishBR(string modelName, string entityName, string ruleName)
+ {
+ try
+ {
+ // Set Model and Entity objects.
+ Identifier modelId = new Identifier { Name = modelName };
+ Identifier entityId = new Identifier { Name = entityName };
+
+ // Create the request object.
+ MDSTestService.BusinessRulesCreateRequest ruleCreateRequest = new MDSTestService.BusinessRulesCreateRequest();
+ ruleCreateRequest.ReturnCreatedIdentifiers = true;
+ ruleCreateRequest.BusinessRuleSet = new BusinessRules();
+
+ // Create a new business rule.
+ BusinessRule newRule = new BusinessRule();
+ ruleCreateRequest.BusinessRuleSet.BusinessRulesMember = new System.Collections.ObjectModel.Collection { };
+ ruleCreateRequest.BusinessRuleSet.BusinessRulesMember.Add(newRule);
+
+ newRule.Identifier = new MemberTypeContextIdentifier
+ {
+ Name = ruleName,
+ ModelId = modelId,
+ EntityId = entityId,
+ MemberType = MemberType.Leaf
+ };
+
+ newRule.Priority = 10;
+ newRule.BRConditionTree = new BRConditionTreeNode();
+ newRule.BRConditionTree.LogicalOperator = LogicalOperator.And;
+ newRule.BRConditionTree.Sequence = 1;
+
+ // Create the rule condition "Code equals ABC".
+ BRCondition ruleCondition = new BRCondition();
+ newRule.BRConditionTree.BRConditions = new System.Collections.ObjectModel.Collection { };
+ newRule.BRConditionTree.BRConditions.Add(ruleCondition);
+ ruleCondition.Sequence = 1;
+
+ // Create the condition prefix argument for Code attribute.
+ BRAttributeArgument conditionPrefix = new BRAttributeArgument();
+ ruleCondition.PrefixArgument = conditionPrefix;
+ conditionPrefix.PropertyName = BRPropertyName.Anchor;
+ conditionPrefix.AttributeId = new Identifier { Name = "Code" };
+
+ // Set the condition operator.
+ ruleCondition.Operator = BRItemType.IsEqual;
+
+ // Set the postfix argument "ABC".
+ BRFreeformArgument conditionPostfix = new BRFreeformArgument();
+ ruleCondition.PostfixArguments = new System.Collections.ObjectModel.Collection