What I Write About…
Databases
Helpful posts about SQL Server, Merge Replication and how to tune your databases for maximum performance.
Programming
Mostly focusing on C# and JavaScript but I enjoy exploring other languages such as F# and Python.
Scripting
Automation is the key to productivity, I cover innovative solutions to everyday problems using automated scripts.
Web Development
I cover all aspects of web development with a particular focus on application architecture and security.

SQL Server Merge Replication: Update existing merge articles in bulk
Whenever you start to scale things up with SQL Server Merge Replication automation becomes essential. This becomes very apparent when there are many subscribers connected to the publisher or when the number of articles that make up your publication is large. As part of this blog post, I am going to demonstrate how to speed…
SQL Server Merge Replication: Identity range check constraint doesn’t match identity range allocations
SQL Server Merge Replication is great when it works, but when it goes awry it can take a while to figure out what the problem is and then rectify it. In this article, I look at the cause of a specific issue where one or more identity range check constraints do not match up with…
How to install MSI packages using msiexec and C#
MSI packages remain a popular means of distributing applications for installation on Windows devices. On occasion, you may find the need to install or uninstall an MSI package programmatically, for example, whenever you need to automate a software installation or update. In this article, I’m going to show you how you can silently install and…
Implementing the Request-Response pattern using C# with JSON-RPC and WebSockets
The Request-Response pattern seems somewhat simple on the surface; send a request, then wait for and receive a response that matches up with the original request. However, implementing this pattern in an efficient manner is something that is easy to get wrong. I’ve found that much of the material online regarding this topic tends to…
SQL Server Merge Replication Error: The schema script could not be propagated to the subscriber
SQL Server Merge Replication is a powerful solution for synchronising data between SQL Server databases. It is useful for working offline, for site-to-site data synchronisation, and for backup system scenarios. However, when replication goes wrong, resolving the issue at hand can prove to be challenging. The number of moving parts means that every time you…
Working with processes using C#
As software developers, working with processes is something that we frequently need to do. Whether it’s checking if a specific process is running, stopping a process, or creating a new process, it is useful to have a reference point for how to accomplish each of these tasks. In the sections below, I’m going to cover…
Hardening your IIS web server configuration with IIS Crypto
When setting up a web server it can be difficult to know what security measures need to be put in place. There are lots of things to think about such as which permissions to apply, which ports to open and which security protocols to enable. Luckily, if you are using IIS, there is a tool…
InSecurity
Obtaining and installing a Wildcard SSL Certificate – For software developers
As software developers, we know that SSL certificates are necessary for securing our website traffic. However, in my experience, the process of obtaining and installing an SSL certificate is not something that very many software developers are familiar with. So, if you are a software developer and are looking for some guidance on the process…
Connecting to SQL Server from PowerShell
PowerShell is an awesome scripting language with many powerful features. This includes integration with SQL Server; a fantastic database engine that is both reliable and battle-tested. If you need to automate repetitive and/or time-consuming DBA processes, connecting PowerShell to your SQL Server instance can be a massive help. In this article, we are going to…Categories
- APIs (7)
- Career (1)
- Programming (8)
- Scripting (9)
- Security (7)
- SQL (6)
- SQL Server Merge Replication (3)
- Web (5)
Recent Posts


