diff --git a/BusyFrontEnd/AzureCloudService/AzureCloudService.ccproj b/BusyFrontEnd/AzureCloudService/AzureCloudService.ccproj
deleted file mode 100644
index e83a649..0000000
--- a/BusyFrontEnd/AzureCloudService/AzureCloudService.ccproj
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- 2.5
- f81a7ef0-a0f2-46b7-82d3-c20c8f29e658
- Library
- Properties
- BackgroundProcessor
- BackgroundProcessor
- True
- AzureCloudService
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
- BusyFrontEnd.WebRole
- {412fbabb-ebd1-465f-ac12-0b3eb5d87915}
- True
- Web
- BusyFrontEnd.WebRole
-
-
- BusyFrontEnd.WorkerRole
- {ce3863c6-4196-4187-811c-2dbad7d9bb87}
- True
- Worker
- BusyFrontEnd.WorkerRole
-
-
-
-
-
-
-
-
-
- 10.0
- $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\2.5\
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Cloud.cscfg b/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Cloud.cscfg
deleted file mode 100644
index 35a989d..0000000
--- a/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Cloud.cscfg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Local.cscfg b/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Local.cscfg
deleted file mode 100644
index 35a989d..0000000
--- a/BusyFrontEnd/AzureCloudService/ServiceConfiguration.Local.cscfg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/AzureCloudService/ServiceDefinition.csdef b/BusyFrontEnd/AzureCloudService/ServiceDefinition.csdef
deleted file mode 100644
index 2fdf9c7..0000000
--- a/BusyFrontEnd/AzureCloudService/ServiceDefinition.csdef
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/BusyFrontEnd.ServiceBusQueueHandling.csproj b/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/BusyFrontEnd.ServiceBusQueueHandling.csproj
deleted file mode 100644
index 8d78114..0000000
--- a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/BusyFrontEnd.ServiceBusQueueHandling.csproj
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}
- Library
- Properties
- BusyFrontEnd.ServiceBusQueueHandling
- BusyFrontEnd.ServiceBusQueueHandling
- v4.5.1
- 512
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- False
- ..\..\packages\WindowsAzure.ServiceBus.2.6.4\lib\net40-full\Microsoft.ServiceBus.dll
-
-
- False
- ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.1.0\lib\net40\Microsoft.WindowsAzure.Configuration.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/Properties/AssemblyInfo.cs b/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/Properties/AssemblyInfo.cs
deleted file mode 100644
index 78ab11f..0000000
--- a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ServiceBusQueueHandling")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ServiceBusQueueHandling")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("695d9eda-921a-4503-ae36-73f42bac034c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/ServiceBusQueueHandler.cs b/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/ServiceBusQueueHandler.cs
deleted file mode 100644
index 595cd96..0000000
--- a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/ServiceBusQueueHandler.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Diagnostics;
-using System.Threading.Tasks;
-using Microsoft.ServiceBus;
-using Microsoft.ServiceBus.Messaging;
-
-namespace BusyFrontEnd.ServiceBusQueueHandling
-{
- public class ServiceBusQueueHandler
- {
- private readonly NamespaceManager _namespaceManager;
- private readonly string _serviceBusConnectionString;
-
- public ServiceBusQueueHandler(string serviceBusConnectionString)
- {
- _serviceBusConnectionString = serviceBusConnectionString;
- _namespaceManager = NamespaceManager.CreateFromConnectionString(serviceBusConnectionString);
- }
-
- public async Task GetQueueClientAsync(string queueName)
- {
- if (!_namespaceManager.QueueExists(queueName))
- {
- await _namespaceManager.CreateQueueAsync(queueName).ConfigureAwait(false);
- }
-
- return QueueClient.CreateFromConnectionString(_serviceBusConnectionString, queueName);
- }
-
- public async Task AddWordToQueueAsync(QueueClient queueClient, string queueName, string word)
- {
- Debug.Assert(null != _namespaceManager);
- var message = new BrokeredMessage(word);
-
- await queueClient.SendAsync(message).ConfigureAwait(false);
- var queue = await _namespaceManager.GetQueueAsync(queueName).ConfigureAwait(false);
- return queue.MessageCount;
- }
-
- ///
- /// Adds a load of word analyzer tasks to the queue
- ///
- /// Service bus queue client
- /// Service bus queue name
- ///
- /// Number of messages in the queue
- public async Task AddWorkLoadToQueueAsync(QueueClient queueClient, string queueName, double number)
- {
- Debug.Assert(null != _namespaceManager);
-
- var message = new BrokeredMessage(number);
- await queueClient.SendAsync(message).ConfigureAwait(false);
-
- var queue = await _namespaceManager.GetQueueAsync(queueName).ConfigureAwait(false);
- return queue.MessageCount;
- }
- }
-}
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/packages.config b/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/packages.config
deleted file mode 100644
index e2b06ad..0000000
--- a/BusyFrontEnd/BusyFrontEnd.ServiceBusQueueHandling/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/App_Start/WebApiConfig.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/App_Start/WebApiConfig.cs
deleted file mode 100644
index b0ad9aa..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/App_Start/WebApiConfig.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Web.Http;
-
-namespace BusyFrontEnd.WebRole
-{
- public static class WebApiConfig
- {
- public static void Register(HttpConfiguration config)
- {
- // Web API configuration and services
-
- // Web API routes
- config.MapHttpAttributeRoutes();
-
- config.Routes.MapHttpRoute(
- name: "DefaultApi",
- routeTemplate: "api/{controller}/{id}",
- defaults: new { id = RouteParameter.Optional }
- );
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/BusyFrontEnd.WebRole.csproj b/BusyFrontEnd/BusyFrontEnd.WebRole/BusyFrontEnd.WebRole.csproj
deleted file mode 100644
index 24e91cb..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/BusyFrontEnd.WebRole.csproj
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
-
-
- 2.0
- {412FBABB-EBD1-465F-AC12-0B3EB5D87915}
- {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
- Library
- Properties
- BusyFrontEnd.WebRole
- BusyFrontEnd.WebRole
- v4.5.1
- true
-
-
-
-
-
-
- true
- full
- false
- bin\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\
- TRACE
- prompt
- 4
-
-
-
-
- ..\..\packages\WindowsAzure.ServiceBus.2.6.4\lib\net40-full\Microsoft.ServiceBus.dll
- True
-
-
- False
- ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.1.0\lib\net40\Microsoft.WindowsAzure.Configuration.dll
-
-
- True
-
-
- False
-
-
- False
- ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll
-
-
-
- False
- ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
- ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll
-
-
- False
- ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll
-
-
-
-
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
- Global.asax
-
-
-
-
-
-
-
-
- Web.config
-
-
- Web.config
-
-
-
-
-
-
-
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}
- BusyFrontEnd.ServiceBusQueueHandling
-
-
-
- 10.0
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
-
-
-
-
-
-
-
- True
- True
- 65149
- /
- http://localhost:65149/
- False
- False
-
-
- False
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/UserProfileController.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/UserProfileController.cs
deleted file mode 100644
index a1990e1..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/UserProfileController.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Web.Http;
-using BusyFrontEnd.WebRole.Models;
-
-namespace BusyFrontEnd.WebRole.Controllers
-{
- public class UserProfileController : ApiController
- {
- [HttpGet]
- [Route("api/userprofile/{id}")]
- public UserProfile Get(int id)
- {
- //Simulate processing
- return new UserProfile() {FirstName = "Alton", LastName = "Hudgens"};
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInBackgroundController.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInBackgroundController.cs
deleted file mode 100644
index de61e43..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInBackgroundController.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Threading.Tasks;
-using System.Web.Http;
-using BusyFrontEnd.ServiceBusQueueHandling;
-using Microsoft.Azure;
-using Microsoft.ServiceBus.Messaging;
-
-namespace BusyFrontEnd.WebRole.Controllers
-{
- public class WorkInBackgroundController : ApiController
- {
- private const string ServiceBusConnectionStringKey = "Microsoft.ServiceBus.ConnectionString";
-
- private const string ServiceBusQueueNameKey = "Microsoft.ServiceBus.QueueName";
-
- private static readonly QueueClient QueueClient;
- private static readonly string QueueName;
- private static readonly ServiceBusQueueHandler ServiceBusQueueHandler;
-
- static WorkInBackgroundController()
- {
- var serviceBusConnectionString = CloudConfigurationManager.GetSetting(ServiceBusConnectionStringKey);
- QueueName = CloudConfigurationManager.GetSetting(ServiceBusQueueNameKey);
- ServiceBusQueueHandler = new ServiceBusQueueHandler(serviceBusConnectionString);
- QueueClient = ServiceBusQueueHandler.GetQueueClientAsync(QueueName).Result;
- }
-
- [HttpPost]
- [Route("api/workinbackground")]
- public Task Post()
- {
- return ServiceBusQueueHandler.AddWorkLoadToQueueAsync(QueueClient, QueueName, 0);
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInFrontEndController.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInFrontEndController.cs
deleted file mode 100644
index 013a4e8..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Controllers/WorkInFrontEndController.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Net;
-using System.Net.Http;
-using System.Threading;
-using System.Web.Http;
-
-namespace BusyFrontEnd.WebRole.Controllers
-{
- public class WorkInFrontEndController : ApiController
- {
- [HttpPost]
- [Route("api/workinfrontend")]
- public HttpResponseMessage Post()
- {
- // Never create your own thread directly, this is the negative example.
-
- new Thread(() =>
- {
- //Simulate processing
- Thread.SpinWait(Int32.MaxValue / 100);
- }).Start();
-
- return Request.CreateResponse(HttpStatusCode.Accepted);
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax b/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax
deleted file mode 100644
index 6f75974..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax
+++ /dev/null
@@ -1 +0,0 @@
-<%@ Application Codebehind="Global.asax.cs" Inherits="BusyFrontEnd.WebRole.WebApiApplication" Language="C#" %>
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax.cs
deleted file mode 100644
index 063f3ad..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Global.asax.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Web;
-using System.Web.Http;
-
-namespace BusyFrontEnd.WebRole
-{
- public class WebApiApplication : HttpApplication
- {
- protected void Application_Start()
- {
- GlobalConfiguration.Configure(WebApiConfig.Register);
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Models/UserProfile.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Models/UserProfile.cs
deleted file mode 100644
index 9c15d4b..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Models/UserProfile.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-namespace BusyFrontEnd.WebRole.Models
-{
- public class UserProfile
- {
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public string JobTitle { get; set; }
- }
-}
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Properties/AssemblyInfo.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/Properties/AssemblyInfo.cs
deleted file mode 100644
index bb1cfab..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("WebRole")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("WebRole")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("93470aad-d247-4f26-9a49-027db2173666")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Debug.config b/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Debug.config
deleted file mode 100644
index 2e302f9..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Debug.config
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Release.config b/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Release.config
deleted file mode 100644
index c358444..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.Release.config
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.config b/BusyFrontEnd/BusyFrontEnd.WebRole/Web.config
deleted file mode 100644
index 9b1b99c..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/Web.config
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/WebRole.cs b/BusyFrontEnd/BusyFrontEnd.WebRole/WebRole.cs
deleted file mode 100644
index a6ffa94..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/WebRole.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using Microsoft.WindowsAzure.ServiceRuntime;
-
-namespace BusyFrontEnd.WebRole
-{
- public class WebRole : RoleEntryPoint
- {
- public override bool OnStart()
- {
- // For information on handling configuration changes
- // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
-
- return base.OnStart();
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WebRole/packages.config b/BusyFrontEnd/BusyFrontEnd.WebRole/packages.config
deleted file mode 100644
index 3a159a6..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WebRole/packages.config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WorkerRole/App.config b/BusyFrontEnd/BusyFrontEnd.WorkerRole/App.config
deleted file mode 100644
index e45ae6c..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WorkerRole/App.config
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WorkerRole/BusyFrontEnd.WorkerRole.csproj b/BusyFrontEnd/BusyFrontEnd.WorkerRole/BusyFrontEnd.WorkerRole.csproj
deleted file mode 100644
index a58ed39..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WorkerRole/BusyFrontEnd.WorkerRole.csproj
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.50727
- 2.0
- {CE3863C6-4196-4187-811C-2DBAD7D9BB87}
- Library
- Properties
- BusyFrontEnd.WorkerRole
- BusyFrontEnd.WorkerRole
- {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- v4.5.1
- Worker
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
- ..\..\packages\WindowsAzure.ServiceBus.2.6.4\lib\net40-full\Microsoft.ServiceBus.dll
- True
-
-
- False
- ..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.1.0\lib\net40\Microsoft.WindowsAzure.Configuration.dll
-
-
-
-
-
-
-
-
-
- False
-
-
- True
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
-
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}
- BusyFrontEnd.ServiceBusQueueHandling
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WorkerRole/Properties/AssemblyInfo.cs b/BusyFrontEnd/BusyFrontEnd.WorkerRole/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6ed9913..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WorkerRole/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("WorkerRole")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("WorkerRole")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("26fe0c2d-fbec-46a4-9af7-c7c1d072338a")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.WorkerRole/WorkerRole.cs b/BusyFrontEnd/BusyFrontEnd.WorkerRole/WorkerRole.cs
deleted file mode 100644
index adb33f2..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WorkerRole/WorkerRole.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Diagnostics;
-using System.Net;
-using System.Threading;
-using BusyFrontEnd.ServiceBusQueueHandling;
-using Microsoft.Azure;
-using Microsoft.ServiceBus.Messaging;
-using Microsoft.WindowsAzure.ServiceRuntime;
-
-namespace BusyFrontEnd.WorkerRole
-{
- public class WorkerRole : RoleEntryPoint
- {
- private const string ServiceBusConnectionStringKey = "Microsoft.ServiceBus.ConnectionString";
- private const string ServiceBusQueueNameKey = "Microsoft.ServiceBus.QueueName";
-
- private QueueClient _queueClient;
- private readonly ManualResetEvent _completedEvent = new ManualResetEvent(false);
-
- public override void Run()
- {
- try
- {
- Trace.WriteLine("Starting processing of messages");
-
- // Initiates the message pump and callback is invoked for each message that is received, calling close on the client will stop the pump.
- _queueClient.OnMessageAsync(
- async receivedMessage =>
- {
- try
- {
- // Process the message
- Trace.WriteLine("Processing Service Bus message: " + receivedMessage.SequenceNumber.ToString());
-
- //Simulate processing of message
- Thread.SpinWait(Int32.MaxValue / 1000);
-
- await receivedMessage.CompleteAsync();
- }
- catch
- {
- receivedMessage.Abandon();
- }
- });
-
- _completedEvent.WaitOne();
- }
- finally
- {
- _completedEvent.Set();
- }
- }
-
- public override bool OnStart()
- {
- // Set the maximum number of concurrent connections
- ServicePointManager.DefaultConnectionLimit = 12;
-
- // Setup the reader
- var serviceBusConnectionString = CloudConfigurationManager.GetSetting(ServiceBusConnectionStringKey);
- var queueName = CloudConfigurationManager.GetSetting(ServiceBusQueueNameKey);
- var serviceBusQueueHandler = new ServiceBusQueueHandler(serviceBusConnectionString);
-
- _queueClient = serviceBusQueueHandler.GetQueueClientAsync(queueName).Result;
-
- return base.OnStart();
- }
-
- public override void OnStop()
- {
- // Close the connection to Service Bus Queue
- _queueClient.Close();
- _completedEvent.Set();
- base.OnStop();
- }
- }
-}
diff --git a/BusyFrontEnd/BusyFrontEnd.WorkerRole/packages.config b/BusyFrontEnd/BusyFrontEnd.WorkerRole/packages.config
deleted file mode 100644
index e2b06ad..0000000
--- a/BusyFrontEnd/BusyFrontEnd.WorkerRole/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/BusyFrontEnd/BusyFrontEnd.sln b/BusyFrontEnd/BusyFrontEnd.sln
deleted file mode 100644
index cc36c8d..0000000
--- a/BusyFrontEnd/BusyFrontEnd.sln
+++ /dev/null
@@ -1,47 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{CC5FD16D-436D-48AD-A40C-5A424C6E3E79}") = "AzureCloudService", "AzureCloudService\AzureCloudService.ccproj", "{F81A7EF0-A0F2-46B7-82D3-C20C8F29E658}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusyFrontEnd.WorkerRole", "BusyFrontEnd.WorkerRole\BusyFrontEnd.WorkerRole.csproj", "{CE3863C6-4196-4187-811C-2DBAD7D9BB87}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusyFrontEnd.ServiceBusQueueHandling", "BusyFrontEnd.ServiceBusQueueHandling\BusyFrontEnd.ServiceBusQueueHandling.csproj", "{C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusyFrontEnd.WebRole", "BusyFrontEnd.WebRole\BusyFrontEnd.WebRole.csproj", "{412FBABB-EBD1-465F-AC12-0B3EB5D87915}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{49A68CFB-4B40-477F-95A2-32943CD99E4E}"
- ProjectSection(SolutionItems) = preProject
- docs\BusyFrontEnd.md = docs\BusyFrontEnd.md
- ..\LICENSE.txt = ..\LICENSE.txt
- ReadMe.md = ReadMe.md
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F81A7EF0-A0F2-46B7-82D3-C20C8F29E658}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F81A7EF0-A0F2-46B7-82D3-C20C8F29E658}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F81A7EF0-A0F2-46B7-82D3-C20C8F29E658}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F81A7EF0-A0F2-46B7-82D3-C20C8F29E658}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE3863C6-4196-4187-811C-2DBAD7D9BB87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CE3863C6-4196-4187-811C-2DBAD7D9BB87}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE3863C6-4196-4187-811C-2DBAD7D9BB87}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CE3863C6-4196-4187-811C-2DBAD7D9BB87}.Release|Any CPU.Build.0 = Release|Any CPU
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C8EE2AD5-3279-47E9-9B03-319C35EBA2ED}.Release|Any CPU.Build.0 = Release|Any CPU
- {412FBABB-EBD1-465F-AC12-0B3EB5D87915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {412FBABB-EBD1-465F-AC12-0B3EB5D87915}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {412FBABB-EBD1-465F-AC12-0B3EB5D87915}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {412FBABB-EBD1-465F-AC12-0B3EB5D87915}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/BusyFrontEnd/ReadMe.md b/BusyFrontEnd/ReadMe.md
deleted file mode 100644
index 79a1e88..0000000
--- a/BusyFrontEnd/ReadMe.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# BusyFrontEnd Sample Code
-
-The BusyFrontEnd sample code comprises the following items:
-
-* BusyFrontEnd solution file
-
-* AzureCloudService
-
-* WebRole WebAPI project
-
-* WorkerRole project
-
-* Common.Logic class library
-
-* [Detailed Documentation][docs]
-
-The WebRole WebAPI project contains three controllers:
-
-* `WorkInFrontEndController`
-
-* `WorkInBackgroundController`
-
-* `UserProfileController`
-
-
-The `Get` action of the `WorkInFrontEndController` creates a new thread which invokes
-the static `Calculator.RunLongComputation` method:
-
-**C#**
-
-``` C#
-public void Get(double number)
-{
- new Thread(() =>
- {
- Trace.WriteLine("Number: " + number);
- var result = Calculator.RunLongComputation(number);
- Trace.WriteLine("Result: " + result);
- }).Start();
-
-}
-```
-
-The `Get` action of the `WorkInBackgroundController` posts a message to a queue for
-processing by the worker role:
-
-**C#**
-
-``` C#
-public Task Get(double number)
-{
- return ServiceBusQueueHandler.AddWorkLoadToQueueAsync(
- QueueClient,
- QueueName,
- number);
-}
-```
-The worker role listens for incoming messages and performs the equivalent processing to
-the `Calculator.RunLongComputation` method over each one.
-
-The `UserProfileController` exposes a `Get` operation that performs a small piece of simulated processing. This processing is intended to run concurrently with the `Get` actions of the other controllers to demonstrate the effects of performing work in the foreground and background on unrelated business operations:
-
-**C#**
-
-``` C#
-public UserProfile Get(int id)
-{
- //Simulate processing
- return new UserProfile() {FirstName = "Alton", LastName = "Hudgens"};
-}
-```
-
-## Configuring the project
-
-The `WorkInBackgroundController` uses an Azure Service Bus Queue to send messages to
-the worker role. Use the Azure Management Portal to create an Azure Service Bus Queue
-and add the connection string for this queue to the AzureCloudService
-ServiceConfiguration files.
-
-## Deploying the project to Azure
-
-In Visual Studio Solution Explorer, right-click the AzureCloudService project and then
-click *Publish* to deploy the project to Azure.
-
-## Load testing the project
-
-You can use [Visual Studio Online to load test](http://www.visualstudio.com/en-us/get-started/load-test-your-app-vs.aspx) the
-application.
-For details of the load testing strategy for this sample, see [Load Testing][Load Testing].
-
-## Dependencies
-
-This project requires Azure SDK 2.5
-
-[docs]: docs/BusyFrontEnd.md
-[Load Testing]: docs/LoadTesting.md
diff --git a/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundMetrics.jpg b/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundMetrics.jpg
deleted file mode 100644
index 8a35f55..0000000
Binary files a/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundMetrics.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundPerformanceStats.jpg b/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundPerformanceStats.jpg
deleted file mode 100644
index 16c27d2..0000000
Binary files a/BusyFrontEnd/docs/Figures/AppDynamicsBackgroundPerformanceStats.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/Figures/AppDynamicsFrontEndMetrics.jpg b/BusyFrontEnd/docs/Figures/AppDynamicsFrontEndMetrics.jpg
deleted file mode 100644
index 1353d2f..0000000
Binary files a/BusyFrontEnd/docs/Figures/AppDynamicsFrontEndMetrics.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/Figures/AppDynamicsPerformanceStats.jpg b/BusyFrontEnd/docs/Figures/AppDynamicsPerformanceStats.jpg
deleted file mode 100644
index 0d22ed8..0000000
Binary files a/BusyFrontEnd/docs/Figures/AppDynamicsPerformanceStats.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/Figures/InitialLoadTestResultsFrontEnd.jpg b/BusyFrontEnd/docs/Figures/InitialLoadTestResultsFrontEnd.jpg
deleted file mode 100644
index 2a270dc..0000000
Binary files a/BusyFrontEnd/docs/Figures/InitialLoadTestResultsFrontEnd.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/Figures/LoadTestResultsBackground.jpg b/BusyFrontEnd/docs/Figures/LoadTestResultsBackground.jpg
deleted file mode 100644
index e3611ca..0000000
Binary files a/BusyFrontEnd/docs/Figures/LoadTestResultsBackground.jpg and /dev/null differ
diff --git a/BusyFrontEnd/docs/LoadTesting.md b/BusyFrontEnd/docs/LoadTesting.md
deleted file mode 100644
index 18f6ea6..0000000
--- a/BusyFrontEnd/docs/LoadTesting.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Load Testing BusyFrontEnd
-
-This document summarizes the configuration we used to perform load-testing for the BusyFrontEnd anti-pattern. You should also read about our [general approach][general approach] to deployment and load testing.
-
-## Deployment
-
- Option | Value
-------------------- | -------------
-Compute | Cloud Service
-VM Size | Large
-Instance Count | 1
-
-## Test Configuration
-
-The load test project included three webtests, invoking HTTP `POST` operations over the `workinfrontend` and `workinbackground` controllers, and an HTTP `GET` operation for the `userprofile` controller.
-
-The URLs used for the HTTP `POST` operations were:
-
-- http://yourservice.cloudapp.net/api/workinfrontend
-- http://yourservice.cloudapp.net/api/workinbackground
-
-The URL used for the HTTP `GET` operation was:
-
-- http://yourservice.cloudapp.net/api/userprofile
-
-In all cases, replace *yourservice* with the name of your cloud service.
-
-The project also included two load tests, one for each of the two `POST` web tests.
-Each load test comprised two concurrent scenarios configured as follows:
-
-- Scenario 1 (`UserProfile` - constant load pattern)
-
-Parameter | Value
-------------------- | ------------:
-Constant User Count | 500
-Test Duration | 5 minutes
-Test Warm Up | 30 seconds
-
-- Scenario 2 (`WorkInFrontEnd` or `WorkInBackground` - step load pattern)
-
-Parameter | Value
-------------------- | ------------:
-Initial User Count | 1
-Maximum User Count | 500
-Step Duration | 60s
-Step Ramp Time | 0s
-Step User Count | 100
-Test Duration | 5 minutes
-Test Warm Up | 30 seconds
-
-
-Both load tests were run against a single deployment but at different times.
-
-The load test for the http://yourservice.cloudapp.net/api/workinfrontend web test generated the following results:
-
-![Load-test results][InitialLoadTestResults]
-
-The load test for the http://yourservice.cloudapp.net/api/workinbackground web test generated the following results:
-
-![Load-test results][LoadTestResultsBackground]
-
-[general approach]: /LoadTesting.md
-
-[InitialLoadTestResults]: Figures/InitialLoadTestResultsFrontEnd.jpg
-[LoadTestResultsBackground]: Figures/LoadTestResultsBackground.jpg
diff --git a/BusyFrontEnd/nuget.config b/BusyFrontEnd/nuget.config
deleted file mode 100644
index 4c0fbf4..0000000
--- a/BusyFrontEnd/nuget.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/README.md b/README.md
index 1c013cd..499ae49 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,14 @@
# Optimizing Performance for Cloud Applications
-![](pnp-logo.png)
+![p&p logo](pnp-logo.png)
This repo contains sample code for a set of performance antipatterns.
-Documentation and guidance for these patterns can be found on the [Azure Architecture Center](https://docs.microsoft.com/azure/architecture/antipatterns/). For each antipattern, the documentation describes why the antipattern typically occurs, symptoms of the antipattern, and techniques for resolving the problem. The corresponding sample code shows (1) the problem and (2) a recommended way to fix the problem.
-
+Documentation and guidance for these patterns can be found on the [Azure Architecture Center](https://learn.microsoft.com/azure/architecture/antipatterns/). For each antipattern, the documentation describes why the antipattern typically occurs, symptoms of the antipattern, and techniques for resolving the problem. The corresponding sample code shows (1) the problem and (2) a recommended way to fix the problem.
| Antipattern | Description | Load test |
|-------------|-------------|-----------|
| [Busy Database][BusyDatabase] | Offloading too much processing to a data store. | [Load testing Busy Database][BusyDatabase-LoadTesting] |
-| [Busy Front End][BusyFrontEnd] | Moving resource-intensive tasks onto background threads. | [Load testing Busy Front End][BusyFrontEnd-LoadTesting] |
| [Chatty I/O][ChattyIO] | Continually sending many small network requests. | [Load testing Chatty I/O][ChattyIO-LoadTesting] |
| [Extraneous Fetching][ExtraneousFetching] | Retrieving more data than is needed, resulting in unnecessary I/O. | [Load testing Extraneous Fetching][ExtraneousFetching-LoadTesting] |
| [Improper Instantiation][ImproperInstantiation] | Repeatedly creating and destroying objects that are designed to be shared and reused. | [Load testing Improper Instantiation][ImproperInstantiation-LoadTesting] |
@@ -19,7 +17,6 @@ Documentation and guidance for these patterns can be found on the [Azure Archite
| [Synchronous I/O][SynchronousIO] | Blocking the calling thread while I/O completes. | [Load testing Synchronous I/O][SynchronousIO-LoadTesting] |
[BusyDatabase]: https://docs.microsoft.com/azure/architecture/antipatterns/busy-database/
-[BusyFrontEnd]: https://docs.microsoft.com/azure/architecture/antipatterns/busy-front-end/
[ChattyIO]: https://docs.microsoft.com/azure/architecture/antipatterns/chatty-io/
[ExtraneousFetching]: https://docs.microsoft.com/azure/architecture/antipatterns/extraneous-fetching/
[ImproperInstantiation]: https://docs.microsoft.com/azure/architecture/antipatterns/improper-instantiation/
@@ -28,7 +25,6 @@ Documentation and guidance for these patterns can be found on the [Azure Archite
[SynchronousIO]: https://docs.microsoft.com/azure/architecture/antipatterns/synchronous-io/
[BusyDatabase-LoadTesting]: BusyDatabase/docs/LoadTesting.md
-[BusyFrontEnd-LoadTesting]: BusyFrontEnd/docs/LoadTesting.md
[ChattyIO-LoadTesting]: ChattyIO/docs/LoadTesting.md
[ExtraneousFetching-LoadTesting]: ExtraneousFetching/docs/LoadTesting.md
[ImproperInstantiation-LoadTesting]: ImproperInstantiation/docs/LoadTesting.md