Header
Profile picture

A blog about one man's journey through code… and some pictures of the Peak District
Twitter

  1. December 04, 2022

    One of the interesting challenges with Asp.Net MVC when you first start out, is getting the routing right. In this article, we’ll cover a…

  2. November 24, 2022

    Have you ever seen a tag line that says a piece of software has “Five Nines” of uptime? Have you ever thought about what that means…

  3. November 23, 2022

    Today (23rd November 2022), after applying a Windows update, I started a VM that I regularly run for development, and received this error…

  4. October 23, 2022

    One of the problems that you can encounter (especially) when using the pub/sub model in Service Bus is the issue of noise. The problem…

  5. October 02, 2022

    One annoying little issue that you come across when dealing with batch sending for Azure Service Bus if that the total size of the batched…

  6. August 28, 2022

    For another project that I’m working on, I needed to transfer an image as text. In fact, that’s actually quite an easy thing to do in .Net…

  7. August 06, 2022

    I was recently introduced to the WireMock.Net package. This is a .Net implementation of WireMock. The basic idea where is that you can mock…

  8. May 26, 2022

    I’ve previously written about some Unusual things to do with a Console Application, including creating a game in a console application. This…

  9. April 30, 2022

    Some time ago, I investigated the concept of chaos engineering. The principle behind Chaos Engineering is a very simply one: since your…

  10. April 16, 2022

    I’ve recently been investigating Azure Automation RunBooks. Essentially, this gives you a way to execute some code (currently Powershell or…

  11. April 04, 2022

    I’ve been playing around with delegates recently, and came across something that was new to me. Whilst I was familiar with the concept of…

  12. March 26, 2022

    While playing around with MySql recently, I discovered a strange little quirk. An automatically incremented field cannot be reset - that is…

  13. March 19, 2022

    A few weeks ago, I was looking into making a change to a project in work that uses DbUp. For some reason, I took away from that the…

  14. February 12, 2022

    I’ve recently been working with Azure Isolated Functions for .Net 6. This is a kind of getting started guide - especially if you’re coming…

  15. December 25, 2021

    In this post, I introduced the DevOps CLI. Here, I’m going to expand on that by interrogating the DevOps API, and generating a new work…

  16. December 18, 2021

    I’ve been playing a little with Azure DevOps recently, and one thing that I hadn’t realised, but found interesting, was the CLI. If you use…

  17. December 12, 2021

    I’ve recently been doing a fair bit of investigation into docker. My latest post was investigating the idea of setting up a sidercar…

  18. December 04, 2021

    While trying to set-up a docker image for a .Net 6 console application, I found that, although it built fine, I got the an error when trying…

  19. August 29, 2021

    I started investigating this for a unit test. I wanted to compile a separate project, and then copy the output into the test directory. As…

  20. August 07, 2021

    Managing databases is difficult - it’s difficult because the changes to them are different than software changes; for example, if I have a…

  21. July 31, 2021

    Pretty much the only end-to-end automation tool that I’ve used to date has been Selenium. I heard about Playwright in passing, and thought…

  22. July 10, 2021

    Some time ago, I heard Dan Clarke from the Unhandled Exception podcast mention Mutation testing - the latest episode on this can be found…

  23. June 12, 2021

    I’ve written pretty extensively on the Microsoft.Azure.ServiceBus SDK. In this post, I’m just covering the fact that this library is on its…

  24. June 05, 2021

    I thought I’d detail some things that you can do when you get issues with git. Specifically, how you can deal with issues without having to…

  25. May 08, 2021

    I’ve recently been writing about Terraform - mainly because I’m learning it from scratch, and playing about with tech and then writing about…

  26. May 01, 2021

    Although I’ve used React before, Gatsby was quite new to me. This post was born from the creation of this website. We needed something…

  27. April 10, 2021

    In this post, I’m going to download Terraform and create a resource group, and then change the location of that resource group. Most of…

  28. April 03, 2021

    Azure Service Bus is often used as a way to link services (as the name suggests). This typically means that the throughput is large, but…

  29. March 27, 2021

    In the past few months, I’ve written, and spoken quite a lot about Azure Service Bus - especially the new features that are now available…

  30. March 02, 2021

    Some time ago, I saw a talk at DDD North about git bisect (it may well have been this one). I blogged about it here. I can honestly say…

  31. February 27, 2021

    In Azure Service Bus, you can schedule a message to deliver at a later time, but you can also defer a message until a later time. Scheduled…

  32. February 13, 2021

    I’ve recently been giving talks on Azure Service Bus, and one of the things that became annoying was how difficult it was to launch new…

  33. January 23, 2021

    I’ve been writing about and speaking about Azure Service Bus a lot recently. In this post, I’m going to focus on the Dead Letter Queue in…

  34. December 29, 2020

    I’ve recently been playing with WSL2, and one of the things that quickly bites you, is trying to move between your Linux distribution, and…

  35. December 26, 2020

    In this post I covered the basics of setting up a queue and sending a message to it. Here, I’m going to cover the options around receiving…

  36. December 25, 2020

    In Asp.Net Core server-side rendered HTML, you have the ability to use something called Partial Views. Essentially, these give you the…

  37. December 12, 2020

    While playing around with Azure Service Bus in .Net Core, I came across this error, and it had me stumped for a while: Microsoft.Azure…

  38. November 21, 2020

    I’ve recently been playing around with ML.NET. I’ve documented some of my escapades here. One thing that I found was that, when trying to…

  39. October 31, 2020

    I recently had an issue where I was trying to use a tag helper that wasn’t correctly rendering. The HTML that I had (which was trying to…

  40. October 24, 2020

    I’ve recently been investigating the prospect of creating a web-site, where an animation (admittedly a cheesy one) is played out when you…

  41. October 03, 2020

    I recently came across an issue whereby an Asp.Net Core app was not behaving in the way I expected. In this particular case, I was getting…

  42. September 05, 2020

    Windows 10 now has a feature that allows you to install Linux. That’s right - you can install Linux on a Windows machine. If you haven’t…

  43. July 25, 2020

    I’ve previously written about how you can write games using tools like React. I’ve also written about creating a basic game in Html and…

  44. July 11, 2020

    I’ve recently been upgrading an EF Core 2.x project to EF Core 3.1. In doing so, I came across the issues in this post. Hopefully, next…

  45. June 27, 2020

    I’ve written quite extensively in the past about Azure, and Azure Storage. I recently needed to add a message to an Azure storage queue…

  46. June 27, 2020

    In this post, I wrote about how to mock out the configuration for an application. What I did not cover in that post was whether it was a…

  47. May 30, 2020

    I’ve recently been playing with GitHub actions. Having been around the block a few times, I’ve seen a fair few methods of building and…

  48. May 16, 2020

    I’ve recently been playing around with GitHub Actions. The reason being that I created this little NuGet package, because I needed such a…

  49. April 25, 2020

    Feature flags enable you to create a new piece of functionality in the main code branch, but behind a mask - so the end user doesn’t see the…

  50. April 11, 2020

    Typescript gives you a number of nice little statically typed features, which Javascript is sadly lacking. However, looking online, most of…

  51. March 07, 2020

    Raising an Event is an interesting concept is React: essentially, you pass a function into a component; and then, when the component handles…

  52. February 15, 2020

    In .Net Framework (prior to .Net Core), HttpClient was something of a pain. You essentially kept it around in a static variable. If you…

  53. January 05, 2020

    I’ve recently had a book published; if you’re interested in seeing what it is, you can find it here. This post is simply a summary of things…

  54. December 08, 2019

    I’ve recently been working with Asp.Net Core to build some functionality, involving building a list of values. Typically, with Asp.Net Core…

  55. December 02, 2019

    I’ve previously written about the new Msix packaging project here. One thing that I didn’t cover in that post is that, whilst the process…

  56. November 10, 2019

    Deployment is hard. Arguably, deployment is the reason the web apps have won over desktop apps. I’ve seen applications written as web apps…

  57. October 19, 2019

    It took me a while to collate my notes for this; hopefully this will be the first in a vaguely related series on using Policy Server. Policy…

  58. September 24, 2019

    A while back, I asked on Dev about moving my blog from Wordpress to … well, not Wordpress anymore. My main critera was to Markdown instead…

  59. August 25, 2019

    Imagine that you’re writing a Blazor application - maybe it’s similar to this one. Now, imagine that you have a large chunk of HTML in your…

  60. August 17, 2019

    One thing that’s worth remembering about React is that when you’re updating state, only the Render method gets re-executed. It’s easy (as I…

  61. August 10, 2019

    If you intent to use IoC with a UWP application, there are a lot of options. Most of them come with MVVM packages, like MVVM Cross. These…

  62. July 13, 2019

    Whilst there are some pre-built libraries for this, I seemed to be getting Mono linking errors. What finally worked for me was to install…

  63. July 07, 2019

    Being new to Blazor (and Razor), the first thing that tripped me up was that the view seemed divorced from the rest of the application. In…

  64. May 24, 2019

    Have you ever tried to do something akin to the following: This is a simple Xunit (failing) test. The reason is fails is because you (or I…

  65. December 08, 2018

    If you’ve ever used an IoC container, you’ll know that one of their benefits and burdens is that they abstract away from you the hassle of…

  66. October 21, 2018

    In this post, I introduced (to me) a new method of installing client side Javascript libraries for a .Net Web Application. In this follow-up…

  67. October 13, 2018

    When you start using the React sample templates, one thing that you’ll notice is the navigation menu; it tends to look like this: After…

  68. October 07, 2018

    One way that your web-site might be vulnerable to an attack is via Cross Site Request Forgery (CSRF or XSRF). If you’ve ever been logged…

  69. September 09, 2018

    Ever come across a situation where you want to use an Entity Framework data layer in a little tool or report, but ended up reverting to Ado…

  70. August 05, 2018

    B2C is (one of) Microsoft’s offering to allow us programmers to pass the business of managing log-ins and users over to people who want to…

  71. June 02, 2018

    While playing with Azure Event Hubs, I decided that I wanted to implement a thread locking mechanism that didn’t queue. That is, I want to…

  72. May 21, 2018

    I’ve recently been playing with the Azure Event Hub. This is basically a way of transmitting large amounts* of data between systems. In a…

  73. April 14, 2018

    As with many of these posts - this is more of a “note to self”. Say you have an assertion that looks something like this in your Xunit test…

  74. March 22, 2018

    I have previously written about how to, effectively, subclass using Nsubstitute; in this post, I’ll cover how to partially mock out that…

  75. March 18, 2018

    I’ve recently started looking into the Javascript library ReactJS. Having read a couple of tutorials and watched the start of a Pluralsight…

  76. March 04, 2018

    One thing to bear in mind about using entity framework is that the DbContext object is not thread safe. This threw me when I first…

  77. February 11, 2018

    I’ve previously written about creating Azure functions. I’ve also written about how to react to service bus queues. In this post, I wanted…

  78. February 04, 2018

    Azure Functions are a relatively new kid on the block when it comes to the Microsoft Azure stack. I’ve previously written about them, and…

  79. January 27, 2018

    When doing validation, There’s a number of options to how you approach it: you could simply have a series of conditional statements testing…

  80. January 21, 2018

    As usual with my posts, the target audience is ultimately me. In this case, I’m documenting the talks that I’ve seen so that I can remember…

  81. January 20, 2018

    In the beginning When I first started programming (on the Spectrum ZX81), you would typically write a program such as this (apologies if it…

  82. January 06, 2018

    One of the things that is quite unnerving when you start using GCP is the billing. Unlike Azure (with your MSDN monthly credits), GCP just…

  83. December 03, 2017

    Here I wrote about how to set-up and configure the MS Azure recommendations engine. One thing that has become painfully apparent while…

  84. November 19, 2017

    Xamarin Forms is one of those technologies that I keep meaning to play with… but then don’t. Anyway, this is the story of the day that I…

  85. November 05, 2017

    Working with API projects, it’s easy to miss some key rules about the routing. This post is basically the result of some that I missed, and…

  86. October 22, 2017

    Everyone who has spent time debugging errors in code that has multiple threads knows the pain of pressing F10 and seeing the cursor jump to…

  87. October 15, 2017

    In this post I briefly cover the concept of Storage Accounts and Blob Storage; however, there are more to blobs than this simple use case…

  88. October 15, 2017

    DDD North is held every year at around this time. This year, it was on 14th October at Bradford University. In terms of the sessions that…

  89. October 08, 2017

    Azure provides a number of pre-configured machine learning services out of the box. One of these (still in Beta at the time of writing this…

  90. October 01, 2017

    In this post, I discussed the prospect of sending an e-mail from an Azure function in order to alert someone that something had gone wrong…

  91. September 24, 2017

    In the world of WCF and SOAP, if you want to consume a WCF service, you simply ask VS to add a service reference, direct it to the WSDL file…

  92. September 17, 2017

    With Update 15.3.1 for Visual Studio came the ability to create Function Apps in VS. Functions were previously restricted to writing code…

  93. September 10, 2017

    Another new feature in C# 7.1 is the ability to make a console app deal with Async. Have you ever written a test console app to call an…

  94. September 09, 2017

    One of the new features added to the latest* version of C# is that of a “default” literal. What this means is that you can now use the…

  95. September 03, 2017

    What is irreducible complexity? A common critique levelled at the agile philosophy is that of irreducible complexity. The argument is very…

  96. August 13, 2017

    In this article, I discussed the use of Azure functions; however, Web Jobs perform a similar task. Azure Functions are effectively an…

  97. July 16, 2017

    Azure functions are Microsoft’s answer to “serverless” architecture. The concept behind Serverless Architecture being that you can create…

  98. May 07, 2017

    This article discusses how to go about creating a basic game loop in HTML5 / JS and to implement control over a sprite. Introduction A few…

  99. April 30, 2017

    While working on this project, I decided that I would see how useful the new feature of “Live Testing” is for TDD. Once you’ve created your…

  100. April 16, 2017

    Javascript is a dynamic, interpreted language. What that means is that, if you mis-type or mis-spell a variable, or even if you don’t…

  101. April 14, 2017

    While working on this project, I found a need to abstract away a base type that the unit tests use (in this instance, it was a queue type…

  102. March 12, 2017

    WPF typically doesn’t have many performance issues and, where it does, this can usually be fixed by virtualisation. Having said that, even…

  103. February 16, 2017

    SignalR is an open source framework allowing bi-directional communication between client and server. Basically, it uses a stack of…

  104. January 29, 2017

    The purpose of the library is to allow you to try new code in a small sample of production usage - effectively, testing in production. The…

  105. January 22, 2017

    WPF is an interesting (and currently still active framework. How long that will continue depends, IMHO, largely on how well MS can bring…

  106. January 09, 2017

    Not sure this qualifies as a game, but it’s a computerised version of the building blocks that you might give to a three-year-old. What can…

  107. December 19, 2016

    Let’s assume that the built-in TFS standard templates are not sufficient for you. You’re in luck: TFS allows you to create your own custom…

  108. December 07, 2016

    In this earlier post, I discussed how to create a test case via the TFS API. For my next trick, I’m going to create some test case steps…

  109. November 23, 2016

    If you’re creating a TFS API program from scratch, the first thing that you’ll need is to reference the TFS API libraries. They are in…

  110. November 18, 2016

    Some years ago, I had an idea for an application, and the functionality of that application involved extracting the contents of a zip file…

  111. November 11, 2016

    Accessing the documents library from a UWP app is frowned upon by Microsoft; however, it is possible. Here is some code that will access…

  112. October 28, 2016

    Conceptually, message queues work in a similar fashion: you send a message to an exchange, the exchange allows people to read the message…

  113. October 20, 2016

    Whilst trying to add a dead letter exchange to an existing queue, I got the following error: Exception thrown: ‘RabbitMQ.Client.Exceptions…

  114. October 19, 2016

    Mesh colliders are, generally speaking, a bad idea in Unity. The reason being that they cause collision based on the detailed mesh that…

  115. October 13, 2016

    Following on from my previous post on Active MQ, I’m now going to explore creating a mechanism whereby the message can fail. The main issue…

  116. October 10, 2016

    In Investigating message queues with RabbitMQ and ActiveMQ, I came across a problem that I’ve never considered before. Starting two…

  117. September 22, 2016

    One of the things that is necessary if you subscribe to the feature branching method of source control in TFS is that, once a release is cut…

  118. August 06, 2016

    Coming back to MVVMCross and trying to create a new project, I found that some of the documentation available for the new version (4.2.2 at…

  119. July 16, 2016

    Templates in SSMS work really well; if you select to create a new stored procedure, you’ll get a skeleton procedure, and then placeholders…

  120. July 10, 2016

    I recently came across a little known feature of SSMS that made me think that, for small amounts of data, it may be possible to create a…

  121. July 06, 2016

    I learned about these two functions accidentally last year, and I wanted to try them both out to see what they do. A long time ago, I used…

  122. June 30, 2016

    If you deal with multiple web servers, all with the same service addresses, but in different locations, you’ll find you’re constantly in…

  123. June 01, 2016

    I’ve had a couple of problems recently, where I’ve had tasks or asynchronous methods and they don’t quote fit into the architecture that I…

  124. May 13, 2016

    Sharing has changed slightly between Windows 8 and 10, but broadly speaking, the concept is the same. This article is pretty much where I…

  125. May 06, 2016

    In the new Universal Windows Platform, you can store settings data in many ways. These days, there are multiple cloud options that you can…

  126. April 29, 2016

    While following this article on how to add in-app purchases to UWP apps, I came across a little quirk of conditional compilation directives…

  127. April 01, 2016

    I recently tried to introduce a concept of a tooltip that appeared as a speech bubble; that is, a box that has a pointer to the originating…

  128. March 25, 2016

    I recently posted an article which morphed into a discovery of the Intelli-Test feature in VS2015. My initial findings were relating to…

  129. February 05, 2016

    I have written a couple of articles around this; relating to transmitting large files over WCF and enabling filestream in SQL. This article…

  130. January 15, 2016

    This describes a method of persisting data in Unity. For example, saving and loading the current game level. The first thing that you will…

  131. December 25, 2015

    I’m quite new to Unity, and so thought I would start blogging useful things that I’ve discovered. Obviously, there is the which is…

  132. December 12, 2015

    Pointlessly Long Introduction (feel free to skip) Some time ago, in a previous job, I was asked to add spell checking to a WPF textbox. I…

  133. December 04, 2015

    The following is a XAML page that allows the user to draw on it. This was written and tested under a Windows 10 desktop application, but…

  134. November 27, 2015

    In trying to write a Windows 10 Desktop application that refreshes an image on the screen within a timer; I had the following code: However…

  135. November 13, 2015

    Believe it or not, Windows 10 comes with OCR capabilities out of the box. It’s actually very easy to use as well; admittedly, it’s not the…

  136. October 30, 2015

    Given a standard interface, how to retrieve all implementing classes and run the interface methods. Unit testing through test driven…

  137. October 23, 2015

    WCF is a good product in so many respects; but error reporting isn’t one of them. Whilst trying to get a WCF service to work, I encountered…

  138. October 16, 2015

    This is an interesting one - it is possible to load a binary file (such as an exe) in a .NET service and return it to the client via WCF…

  139. September 30, 2015

    I recently had a situation where I loaded a solution containing a suite of NUnit tests, but the test explorer would not recognise them. The…

  140. September 24, 2015

    Around this time last year, I published a review of NDepend. They contacted me around June and asked me to have a look at version 6. The…

  141. August 08, 2015

    This morning I didn’t have internet access and was trying to find this in my notes (which are also my blog posts), and I couldn’t; so purely…

  142. March 30, 2015

    Coded UI Tests are something I’ve always thought would be useful, but have only recently actually used. This post is details of the first…

  143. March 26, 2015

    Admittedly this isn’t my usual type of post. However, I’ve had a number of occasions where the touchpad on my Toshiba Satellite L855-18…

  144. February 01, 2015

    I’ve written a series of posts based on teaching programming to children (specifically my 9 year old children). Currently, we’ve managed to…

  145. January 28, 2015

    Recently, I discovered a bug with one of my Windows Store games - Maths Races. The issue was that when a number key was pressed, the…

  146. January 25, 2015

    This is quite a straightforward process, and well documented in several places - including here and here; and the sample that I used to…

  147. December 19, 2014

    Continuing on from my series of posts on writing a console game with my children, this post will cover the score and speed up the game a…

  148. November 26, 2014

    Following on from this post, we were creating a snake game for the purpose of teaching a 9 year old to program. This post will not make…

  149. November 23, 2014

    Based on this earlier post, we had a working console game. Admittedly it doesn’t do much, apart from allow you to move a star around the…

  150. November 07, 2014

    The new thing for VS 2013 is Universal Apps. They allow you to create a Win 8 and Phone app with shared code. But what if you’re writing…

  151. October 05, 2014

    I was previously using VS2013, but after running 14 just once, I saw no reason to go back. I thought I’d jot down some notes on my…

  152. September 10, 2014

    Introduction and Disclaimer I was asked around the middle of August if I would consider reviewing a product called NDepend; in exchange for…

  153. August 24, 2014

    How to bind Windows 8 XAML to a View Model. Although this post is based on an example using MVVM Cross, it will work for any MVVM framework…

  154. August 19, 2014

    A quick forward: there is nothing in this post that isn’t already published here: https://github.com/MvvmCross/MvvmCross/wiki/Value…

  155. August 10, 2014

    I thought I’d jot this down, as it had me for a short while. Imagine that you have a line of code that looks like this: But nothing happens…

  156. July 06, 2014

    Windows 8 is a great operating system, but sometimes, without knowing the shortcuts and apps available, it can be difficult to achieve even…

  157. June 17, 2014

    Recently, Twitter in their wisdom, discontinued the support for atom feed.  I have a couple of programs that were interrogating this, and…

  158. April 30, 2014

    A walkthrough of creating a Windows Universal App from scratch There is a new type of project that allows the creation of Windows 8 and…

  159. April 18, 2014

    Admittedly this does sound like a strange one. How or why would you both to test a resource file? The only reason I could think of was…

  160. March 24, 2014

    One of the best features of Windows 8 is that it allows you to store all your contacts in one place. This means you can link your e-mail…

  161. March 01, 2014

    Some time ago, I blogged about the importance of creating a “Monogame With XAML” project. Before I’d written this, I’d started a long…

  162. February 28, 2014

    Once you’ve created your project, should you wish you distribute your software to multiple countries, then the question of localisation must…

  163. February 05, 2014

    The RelayCommand is an excellent way to communicate between a view and View Model in MVVM without creating a link to a specific instance of…

  164. January 07, 2014

    The async / await keywords allow asynchrony extremely easily in comparison to previous implementations; however, this blog post is a word of…

  165. November 29, 2013

    Introduction In this post, I would like to specifically focus on the differences between animations in WPF and in WinRT. Some quick…

  166. November 22, 2013

    Introduction Following on from http://pmichaelsdev.wordpress.com/2013/11/18/animation-in-xaml-part-3/ this post is about achieving the…

  167. November 18, 2013

    Introduction In this article, I’m going to expand on the first posts, by providing an alternative way to chain animations. In this article…

  168. November 06, 2013

    Introduction This is the second of my series of posts on animation, using WPF and XAML. In this post, I’m looking at how we can control an…

  169. October 29, 2013

    Introduction I recently wrote a little application in WPF, which displayed a button. I thought it would be nice to have the button “burst…

  170. September 12, 2013

    Introduction I haven’t written anything for a while, but I spent a good while on the issue below, so I thought I’d share. The Problem I…

  171. May 11, 2013

    This is the second time I’ve typed this. For some reason, WordPress musn’t have liked the first attempt, and so trashed it - which is…

  172. March 01, 2013

    This is basically just a test post.  I’ve never really blogged before and thought that now would be a good time to start - predominantly…

© Paul Michaels 2022