Click here to Skip to main content
13,453,725 members (44,730 online)

Dominic Burford - Professional Profile



Follow on Twitter Google+ LinkedIn      Blog RSS
I am a professional software engineer and architect with over eighteen years commercial development experience with a strong focus on the design and development of web and mobile applications.

I have experience of architecting scalable, distributed, high volume web applications that are accessible from multiple devices due to their responsive web design, including architecting enterprise service-oriented solutions. I have also developed enterprise mobile applications using Xamarin and Telerik Platform.

I have extensive experience using .NET, ASP.NET, Windows and Web Services, WCF, SQL Server, LINQ and other Microsoft technologies. I am also familiar with HTML, Bootstrap, Javascript (inc. JQuery and Node.js), CSS, XML, JSON, Apache Cordova, KendoUI and many other web and mobile related technologies.

I am enthusiastic about Continuous Integration, Continuous Delivery and Application Life-cycle Management having configured such environments using CruiseControl.NET, TeamCity and Team Foundation Services. I enjoy working in Agile and Test Driven Development (TDD) environments.

Outside of work I have two beautiful daughters. I enjoy cycling, running and taking the dog for long walks. I love listening to music and am a fan of Rush and the Red Hot Chilli Peppers to name a few.



For more information on Reputation please see the FAQ.


Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilverAdmin
Bypass spam checks when posting contentsilversilversilversilversilversilversilverSitebuilder, Subeditor, Mentor, Protector, Editor, Staff, Admin
Store personal files in your account areaplatinumplatinumSitebuilder, Subeditor, Supporter, Editor, Staff
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Edit a Question in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Edit an Answer in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Delete a Question in Q&AYesSubeditor, Protector, Editor, Admin
Delete an Answer in Q&AYesSubeditor, Protector, Editor, Admin
Report an ArticlesilversilversilversilverSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubeditor, Mentor, Protector, Editor, Staff, Admin
Edit other members' articlesSubeditor, Protector, Editor, Admin
Create an article without requiring moderationplatinumSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending QuestionProtector, Admin
Approve/Disapprove a pending AnswerProtector, Admin
Report a forum messagesilversilverbronzeProtector, Editor, Admin
Approve/Disapprove a pending Forum MessageProtector, Admin
Create a new tagsilversilversilversilverAdmin
Modify a tagsilversilversilversilverAdmin

Actions with a green tick can be performed by this member.

GeneralBuilding a strong development team Pin
Dominic Burford8-Feb-17 6:31
professionalDominic Burford8-Feb-17 6:31 
GeneralLast pieces of the mobile app in the Web API puzzle Pin
Dominic Burford27-Jan-17 5:03
professionalDominic Burford27-Jan-17 5:03 
GeneralSerializing .NET types that contain DateTime Pin
Dominic Burford22-Jan-17 18:53
professionalDominic Burford22-Jan-17 18:53 
GeneralClearing the Dead Letter Queue on an Azure Service Bus Queue Pin
Dominic Burford16-Jan-17 8:57
professionalDominic Burford16-Jan-17 8:57 
GeneralMigrating ASP.NET Web API services to the Azure platform Pin
Dominic Burford10-Jan-17 2:45
professionalDominic Burford10-Jan-17 2:45 
GeneralProcessing Azure Service Bus messages using an Azure Function Pin
Dominic Burford4-Jan-17 9:10
professionalDominic Burford4-Jan-17 9:10 
GeneralThe Structure of an Azure Service Bus message Pin
Dominic Burford30-Dec-16 3:11
professionalDominic Burford30-Dec-16 3:11 
GeneralMy Introduction into Service Bus Architecture Pin
Dominic Burford21-Dec-16 6:40
professionalDominic Burford21-Dec-16 6:40 
Over the last couple of weeks I've been looking at service bus architectures, specifically with regards to Azure Service Bus. Since deploying our ASP.NET Web API services into the Azure cloud, I wanted to ensure that they were resilient and scalable. So I spent some time looking into service bus architectures. Both understanding the concepts and theory, as well as the practice.

The biggest mind-shift is the conceptual shift from direct service-to-service communication to completely decoupled services. Whereas previously all services communicated directly with other services, in a service bus architecture, no such direct communication exists. This takes a little getting used to. When you need to update another service, you add the request to the service bus queue and get on with the next task.

This architecture has many benefits. Firstly, it provides consistency. No matter what service you need to communicate with, it always involves sending / receiving messages to / from the service bus. The only endpoint you need to be interested in is that of the service bus. Whilst the messages will be different, the endpoint and architecture will be the same.

Secondly, from a client application perspective, the service request will appear highly responsive. This is because the service endpoint has simply dropped your request onto the service bus queue and is immediately available to service another request. The actual processing of the request will be undertaken later when the request is picked up from the service bus queue by a separate process. When this happens is down to how the service bus has been configured, but suffice to say that it will be processed in a time-frame acceptable to the business.

Scaling up the number of requests you are able to process becomes an almost trivial matter, but importantly, is an infrastructure problem. It no longer becomes a problem that the software developer needs to solve. Yes the software developer needs to write code that is capable of sending and receiving messages from the service bus queue, but how responsive those messages are and how many can be processed within a specified time-frame is largely an infrastructure problem.

Ensuring the requests are processed in the event of a failure is also an infrastructure problem. Instead of implementing retry patterns in your code, simply configure the retry mechanism in your service bus. Service bus architectures allow for messages to be placed back on the queue in the event of a failure where they can be re-tried at a later time. So if the database failed to update due to a deadlock or other lock contention, then fail the request, add it back onto the service bus queue, and try it again later.

A service bus architecture turns what was previously difficult to implement in software, into a mere infrastructure configuration.

I've been working with Azure Service Bus and have developed a simple proof of concept and associated unit tests. It has been surprisingly easy to work with. As you would expect from Microsoft, all the tooling needed to work with Azure Service Bus is available within the .NET ecosystem. Suffice to say, that I will be using Azure Service Bus from now on, including in my current project.

I will leave the details of how I have developed the applications that send and receive messages from the service bus for a future article.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare

Home | LinkedIn | Google+ | Twitter

GeneralAdding resilience to your services by implementng a retry pattern Pin
Dominic Burford19-Dec-16 1:10
professionalDominic Burford19-Dec-16 1:10 
GeneralAuthenticating Web API services with JSON Web Token Pin
Dominic Burford13-Dec-16 2:26
professionalDominic Burford13-Dec-16 2:26 
GeneralDeploying to Azure with Team Foundation Server 2015 Pin
Dominic Burford9-Dec-16 2:29
professionalDominic Burford9-Dec-16 2:29 
GeneralCatch me over on Medium for my latest blog posts Pin
Dominic Burford7-Dec-16 1:15
professionalDominic Burford7-Dec-16 1:15 
GeneralWeb application metrics with Application Insight Pin
Dominic Burford25-Nov-16 10:03
professionalDominic Burford25-Nov-16 10:03 
GeneralHow to Pick Your Battles on a Software Team Pin
Dominic Burford16-Nov-16 2:33
professionalDominic Burford16-Nov-16 2:33 
GeneralComplete 360 Testing Pin
Dominic Burford27-Oct-16 2:49
professionalDominic Burford27-Oct-16 2:49 
GeneralCompleted the ASP.NET Web API build pipeline Pin
Dominic Burford24-Oct-16 1:18
professionalDominic Burford24-Oct-16 1:18 
GeneralOne code-base for all mobile platforms is a pipe dream Pin
Dominic Burford12-Oct-16 18:42
professionalDominic Burford12-Oct-16 18:42 
GeneralRe: One code-base for all mobile platforms is a pipe dream Pin
Member 1280340119-Oct-16 9:29
memberMember 1280340119-Oct-16 9:29 
GeneralRe: One code-base for all mobile platforms is a pipe dream Pin
Dominic Burford19-Oct-16 21:26
professionalDominic Burford19-Oct-16 21:26 
GeneralOur apps have gone live Pin
Dominic Burford11-Oct-16 18:54
professionalDominic Burford11-Oct-16 18:54 
GeneralFive truths about software development Part IV Pin
Dominic Burford13-Sep-16 2:44
professionalDominic Burford13-Sep-16 2:44 
GeneralIsolating unit tests using Dependency Injection Pin
Dominic Burford11-Aug-16 22:01
professionalDominic Burford11-Aug-16 22:01 
GeneralCould this function be unit tested without modifying it? Pin
Dominic Burford4-Aug-16 1:41
professionalDominic Burford4-Aug-16 1:41 
GeneralRe: Could this function be unit tested without modifying it? Pin
Dominic Burford5-Aug-16 0:24
professionalDominic Burford5-Aug-16 0:24 
GeneralTeam Foundation Services 2015 build tools Pin
Dominic Burford12-Jul-16 9:27
professionalDominic Burford12-Jul-16 9:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Advertise | Privacy |
Web04-2016 | 2.8.180318.3 | Last Updated 21 Mar 2018
Copyright © CodeProject, 1999-2018
All Rights Reserved. Terms of Service
Layout: fixed | fluid