Software Development Posts…

List all Transitive Dependencies in your .Net Core Project (12/3/2022) - Sometimes you need to find out what packages a .Net Core project or solution depends on quickly and whilst you can find this information in the Visual Studio IDE or by opening the project files individually and reading them, there is a quick and easy way using the “dotnet list package” command. What’s more you…More
Support multiple JS module formats with rollup (11/5/2022) - Having recently needed to produce a shared JavaScript npm package for internal sharing of functionality between applications I naively failed to consider the impact of the various competing module formats at large in the JS world, but luckily the solution is straight forward with the help of ‘rollup’. The requirement was to make a shared…More
Window is undefined during SSR (4/13/2022) - If when server side rendering a React application (other JS frameworks are available) that makes use of the global window object during the initial render, or perhaps the global document object, then you may get an error stating “window is undefined”. This is because when the app is being rendered on the server side on…More
NodeJS & HTTP Error 431 (4/4/2022) - I recently found error responses from a Node JS microservice with HTTP error “431 Request Header Fields Too Large” but at first it seemed to be intermittent dependent on the test environment being used. Further investigations though found it to be a Node setting on the max header size combined with Node JS version changes…More
Coding in Spectrum Basic Again (6/12/2021) - My first computer was a Sinclair ZX Spectrum (16k) with rubber keys which is an icon of the innovative 1980’s micro computer market. On it I learned to code in Sinclair Basic either by reading the manual or typing in programs from the Spectrum magazines of the time. It wasn’t long before one Christmas my…More
Terminal Icon Add Git Bash & VS Dev Cmd Prompt Profiles to Windows Terminal (6/8/2021) - I admit I was not too impressed with the early beta versions of Windows Terminal, maybe because I use Cmder as my daily terminal driver and its features are excellent. However since Windows Terminal reached RTM at v1.0 it does seem a better quality product and with the demo at MS Build 2021 of the…More
VS Code Keyboard Mappings in VS 2019 (4/14/2021) - Quick post to let you and ‘future me’ know that Visual Studio 2019 includes the option to use VS Code keyboard mappings out of the box. As someone who has been using VS Code as my development environment much more often than full Visual Studio recently this was a really useful find for me, and…More
Referencing External Controllers in ASP.Net Core 3.x (4/4/2021) - I recently had a situation where I needed to include a utility controller and set of operations into every .Net Core Web API that used a common in-house framework. The idea being that by baking this utility controller in to the framework then every API built that references it can take advantage of this common…More
Moving Sonar Rules closer to the Developer with ESLint (11/4/2020) - Shift code quality analysis to the left by moving your static analysis from the CI/CD pipeline to the developers IDE where possible. In this post I cover what we did, how to set up Sonar Lint and how we ultimately moved the Sonar rules into ESLint instead. Problem As a development team working on a…More
Auto increment build number in a JavaScript app (7/11/2020) - Whilst looking a simple way to auto increment an application build version number for a small React JavaScript application I found a neat solution so I’m sharing it here for others to use (and for me to refer back to on my next project). Problem: For a small React application using NPM I needed to…More
jenkins Jenkins: Script not permitted to use method signature (3/24/2020) - I’ve recently ran into an error in a Jenkins CI/CD pipeline when using java.util.Date objects in my Groovy script pipeline and so I’d thought I’d share the problem and workaround. Problem In order to create a date time and build number stamp into an output build package as part of a Jenkins build I made…More
Free SSL encryption on Azure with Cloudflare (3/13/2020) - I have a small Web Application site (running ASP.net Core) hosted on Microsoft Azure under a shared plan. Azure shared plans are budget friendly whilst providing features like custom domain names. Until recently the site was HTTP only which was initially fine for my use case but as HTTPS is becoming increasingly a minimum standard…More
Build warnings & .Net Standard dependencies (3/6/2020) - Having recently migrated a Windows Azure hosted .Net Framework ASP.net MVC 5 web application over to ASP.net Core (v2.2) I hit a few issues so I’m documenting them here for my future self and anyone else who might find it useful. The application was a multi functional ASP.net MVC site with an Azure Blob Storage…More
IIS Express Launch Script (2/29/2020) - Usually during web development you want to run your web code locally via a local development web server and there are many options for this. In fact most development workflows provide this functionality. For example Visual Studio provides a local web server to run your code, and React/Webpack toolchains usually use NodeJS based solutions. Sometimes…More
Break your site out of Internet Explorer Compatibility View (2/10/2020) - Internet Explorer Compatibility mode is a feature of IE that allows you to choose to render sites that targeted older versions of IE when they were developed. It essentially pretends to be IE 8 during rendering which can correct many issues. Microsoft maintains a list of sites that require this compatibility mode and allows users…More
Some Recommended VS Code Extensions (10/13/2019) - One of the things that makes Visual Studio Code (VSCode) such a great editor is the many extensions that have been built for it. Extensions in VSCode are explained here. As a reference for myself when building new machines,and anyone else who might find this useful, below is a list of my most used extensions:…More
Razor Pages Fixes to Tag Helpers Issues (7/1/2019) - Recently when adding Razor Pages to an existing ASP.net Core MVC web application I had issues with the Tag Helpers not working. No markup was being produced. Not only were the tag helpers (i.e. asp-for) not doing their job of but I also noticed that the markup was not being formatted in bold in Visual…More
Toggle Switch Moving teams to Trunk Based Development (an example) (6/20/2019) - In this post I am going to cover an example case study of introducing Trunk Based development to an existing enterprise Dev team building a monolithic web application. I’m not going to cover the details of trunk based development as that’s covered in detail elsewhere on the internet (I recommend trunkbaseddevelopment.com). For the purpose of this…More
RunAs Issue? Check Secondary Logon Service. (6/2/2019) - On Windows if you are having problems trying to perform an action as a different user via the RunAs command then it might be due to the ‘Secondary Logon Service’ not running. I recently had this problem on Windows Server and after some investigations found that the ‘Secondary Logon Service’ had been disabled, starting the…More
SonarQube migration issue- Jenkins Using old URL (5/1/2019) - I recently migrated a SonarQube server from one server to another in order to scale out the service to our dev team. All went well until builds failed due to them looking at both the old and new server URLs for the Sonar results and so I’m writing some notes here to help me (and…More
Visual Studio 2019 Offline Installer (4/12/2019) - Microsoft have now released Visual Studio 2019 and like VS2017 there is no offline installer provided by Microsoft, but you can generate one by using the web installer setup program to write all the packages to disk. To create the offline installer just download the usual web installer exe from the Microsoft download site and…More
Easy Upgrade Tool For NPM on Windows (4/2/2019) - Having recently needed to upgrade my version of NPM on a Windows machine, without upgrading my Node.js installation, I came across this excellent tool for doing just that without following a complex set of steps. Adding it here for others to find and for me to remember 🙂 The tool is called npm-windows-upgrade and can…More
Cheap Azure Hosting via Static Web Sites (3/16/2019) - Something that is pretty cool and not that well known is that you can now host your static web site in the cloud with Microsoft Azure just from your Azure storage account. The functionality is currently in preview only but its functional enough to get up and running quickly if you have an Azure account.…More
Developer Roadmaps (2/13/2019) - Something that’s proving popular on Medium these days are “development roadmaps” that outline a roadmap approach to choosing techniques and technologies for certain technical domains (for example Web development or Dev Ops). Some of these are particularly powerful for putting the many bewildering technologies all on one page with logical grouping and a visual representation…More
Cmder – A Better Windows Console (12/16/2018) - Whilst Linux treats console users as first rate citizens and provides many useful and powerful terminal emulators Windows has always lagged behind. This is evermore noticeable now that many developer and IT Ops workloads are done via the terminal. Modern web development and DevOps tooling requires at least some interaction with the terminal, and with…More
Useful Git Training Links (7/1/2018) - Having recently had to compile a list of useful learning resources for a development team migrating to git, I thought I would share them here. Git is a very powerful and versatile distributed source control system but its not the easiest for a newbie to get their head around. The below links are ordered from…More
Consume JSON REST Service via WCF Message Class (3/2/2018) - Since WCF was designed and envisioned by Microsoft the world has changed and the use of RESTful JSON based web services has increased at the expense of SOAP based services. WCF was updated to reflect this change and for several years has supported RESTful services through webHTTPBinding etc (more on MSDN), and there are many…More
SonarQube: Unit Test Results Not Shown (1/29/2018) - Recently whilst building Jenkins CI pipeline, with SonarQube static analysis, the JUnit unit test results were not being included in the Sonar dashboard results. The Jacoco based test coverage results were being included fine but not the actual test pass/fail percentage. After digging into the log for the Jenkins build I found this warning being…More
A Custom JSF Tag Lib For Toggling Render of Child Elements (12/23/2017) -   I’ve added a new sample project on GitHub that shows a custom Tag Library for JSF (Java Server Faces) that can be used to show/hide its children. There are several uses for this sort of custom component in your JSF web project but in this sample code I just read a property on the…More
Create New MSTest Projects for Pre .Net 4.5 in Visual Studio 2017 (11/22/2017) - This post outlines the steps to create a new unit test project in Visual Studio 2017 using MS Test V1 and that targets .Net Frameworks prior to .Net 4.5. Visual Studio 2017 onwards only has new unit test projects for MS Test V2 onwards and .Net 4.5. This is fine for new applications or ones…More
Find assemblies loaded during debugging in Visual Studio (11/5/2017) - Sometimes you may get the following error when you are debugging a .Net app in Visual Studio: “The breakpoint will not currently be hit. No symbols have been loaded for this document.” Or you may have issues whereby the wrong code version appears to be loading at run time or perhaps when debugging you get…More
Platform Targeting in .Net (10/16/2017) - If you see one of the errors below within your .Net application it is likely as a result of your assembly having been compiled with the wrong target architecture flag set. 1) In this instance the assembly was accidentally compiled for x86 only and run within IIS in a 64bit process: Unhandled Exception: System.BadImageFormatException: Could…More
Calculate a file hash without 3rd party tools on Windows & Linux. (9/15/2017) - If you need to generate a hash of a file (e.g. MD5, SHA256 etc) then there are numerous 3rd party tools that you can download but if you are restricted to only built in tools or don’t need to do this often enough to install something then there are built in OS tools for Windows…More
Speed up a slow JSF XHTML editing experience in Eclipse or IBM RAD/RSA. (9/7/2017) - If you find yourself doing some JSF (Java Server Faces) development within either Eclipse, IBM’s RAD (Rapid Application Developer) or IBM RSA (Rational Software Architect) IDEs you may find that the JSF editor can run slowly with some lag. This seems particularly a problem on RAM starved machines and/or older versions of the Eclipse/RAD IDEs.…More
Some SonarQube Upgrade Issues & Fixes (12/12/2016) - I recently upgraded a SonarQube server installation from v5.6.2 to v6, and unfortunately hit a few issues along the way which I thought I’d share here in case others experiences the same issues. All were resolved in the end and if you are yet to be running SonarQube to analyse your software assets please don’t…More
Using PowerShell for your VS Code Integrated Terminal (12/7/2016) - Microsoft’s superb Visual Studio Code editor has an integrated terminal which is accessed via the ‘View’menu or via the Ctrl+’ shortcut keys. On Windows by default the terminal used is the Windows Command Prompt (cmd.exe) terminal, however you can easily configure VS Code to use a different terminal such as Windows PowerShell. Open the User…More
Interactive file reading with Powershell (11/24/2016) - Sometimes you want to see the contents of text file whilst it is still being updated, a common example is where you are outputting to a log file and need to see the output interactively without having to keep opening the file to check for progress, or to see if a job has complete. Luckily…More
Break on Exceptions in Visual Studio 2015 (9/27/2016) - Looking for the option to break on exceptions during debugging in Microsoft Visual Studio 2015? Well Microsoft dumped the old exceptions dialog and replaced it with the new Exception Settings Window. To see it to show that window via the menu: Debug > Windows > Exception Settings. Use the Exception Settings window to choose the types of…More
Allow PowerShell Execution (8/11/2016) - By default PowerShell’s execution policy is very restrictive which is a good thing for security. If you are editing or running scripts on your machine you may want to relax it slightly. As I often forget to do this on new machines I’m making a note of the command in this post: Open PowerShell prompt…More
NPM config for web access via a proxy (5/9/2016) - If you are using NPM for to install your JavaScript modules and you are sitting behind a corporate proxy server  with a strict firewall then you will likely be having problems. If NPM cannot find its way out to the web you will likely be getting a timeout error like the one below: npm ERR!…More
Setting HTTP Headers in Java Server Faces (JSF) (3/2/2015) - In my last post  I discussed using HTTP headers to control browser caching of sensitive data. The post can be found here. The examples provided in that post were all ASP.Net and so I thought I’d cover how to explicitly set your HTTP Response headers when you are using the Java JSF framework. Adding Headers…More
Preventing Browser Caching using HTTP Headers (2/16/2015) - Many developers consider the use of HTTPS on a site enough security for a user’s data, however one area often overlooked is the caching of your sites pages by the users browser. By default (for performance) browsers will cache pages visited regardless of whether they are served via HTTP or HTTPS. This behaviour is not…More
Upgrading MVC 3 to MVC 4 via NuGet (2/12/2015) - I had to upgrade an old ASP.NET MVC 3 project to MVC 4 yesterday and whilst searching for the official instructions I found that there is a NuGet package that does all the hard work for you. The official instructions for upgrading are in the MVC 4 release notes here: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 But Nandip Makwana has…More
Backing Up Your Blog Content Using HTTrack (5/20/2014) - I’m pretty strict on making sure I have my data backed up in numerous places and my blog content is no different. I would hate to lose all these years of babbling. In this post I cover how I back up this blog, and this will apply to any blog engine or indeed any website.…More
Adding a Return Message in an RSA Sequence Diagram (5/12/2014) - Here’s a quick tip that I found useful last week. If you’re using IBM Rational Software Architect to produce a UML Sequence diagram and you add a new Synchronous Message activity the tool automatically inserts a return message for you (this can be turned off in the preferences tab). Last week I discovered that if…More
How to Backup To USB Drive Only If It’s Connected (2/28/2014) - A key part of most personal data backup strategies involves backing up data to an external USB drive but I don’t want to leave it constantly connected. In this post I cover how to backup to an external drive using a scheduled automated process but only if the external drive is connected at the time.…More
Host Static HTML or WebForms Page within MVC Site (11/10/2013) - If you need to host a static HTML page within an ASP.net MVC website or you need to mix ASP.net WebForms with an MVC website then you need to configure your routing configuration in MVC to ignore requests for those pages. Recently I wanted to host a static HTML welcome page (e.g. hello.htm) on an…More
Full Screen Remote Desktop Sessions (11/6/2013) - Sometimes if you are on a new machine or using Remote Desktop for the first time you might find that the display size is not correct when you connect to a remote machine. If the remote machine session won’t go Full Screen it can be annoying. To resolve launch Remote Desktop (tip: Start > Run…More
Building A Learning Culture (10/1/2013) - I’m keen on fostering a learning culture within teams and was drawn to this article on InfoQ “Creating a Culture of Learning and Innovation by Jeff Plummer” which shows what can be achieved through community learning. In the article Jeff outlines how a learning culture was developed within his organisation using simple yet effective crowd…More
Setting a Custom Domain Name on an Azure Web Site (9/15/2013) - I recently decided to add a custom domain name to a free Azure website that I use for development purposes. As the FREE Azure web site model doesn’t support custom domains (a shame but hard to complain as it’s FREE) I needed to upgrade the site to the ‘Shared’ mode. This is easily done by…More
SQL Server Compact Minimum Date Value (5/11/2013) - Recently I got this error connecting to a SQL Server Compact database from .Net: "An overflow occurred while converting to datetime." So I dug into my data insertion code (I was using the excellent Massive mini ORM by the way – and yes I know its not really an ORM but that’s another post) and…More
The Growth Of Business IT (2/11/2013) - In my popular post on “The Future of the IT Department” I covered how IT is changing rapidly in enterprises and touched on how business aligned IT teams are going to become more relevant. Some of these agile ‘business focused development and delivery teams’ will be official IT sponsored initiatives whilst others will be somewhat…More
Estimates: A Necessary Evil (2/4/2013) - Despite being an age old problem in the IT industry (and presumably a problem in other industries) it still concerns me how we have to rely so much on estimates to manage resources on complex multi-million pound projects. We call them estimates to hide the truth that they are at best educated guesses, or at…More
Renaming your Team Foundation Service Account (1/21/2013) - If you haven’t checked out TFS Service from Microsoft then I thoroughly recommend trying it out. It is basically a TFS instance in the cloud and at the moment its free for everyone to use and there’s an official a free plan for small projects up to 5 users. I run a small TFS instance…More
Just Do It ! (1/8/2013) - Now I’m not a big fan of New Year’s Resolutions and in fact have the same one each year which I religiously stick to, which is to never make any New Years Resolutions. However whilst we are all in the spirit of renewed enthusiasm for the new year ahead I’d like to quote the great…More
Useful Web Based UML Drawing Tools (7/25/2012) - A basic sequence diagram can be a very powerful tool to explain the interactions in a system but drawing them can often be too time consuming to bother for disposable uses. I find that many people draw them out on rough paper to help explain their argument but less actually ever bother to build them…More
Exporting an HTML Report From your VS/TFS Test Results (5/24/2012) - Have you ever wanted to export your unit test results from Visual Studio or your TFS Build? Sometimes you may need to provide evidence of your unit testing position to a project stakeholder. This may be for an internal review or as part of a gateway check in a waterfall project. Alternatively you may just…More
It’s All About Culture (Enterprise IT Beware) (5/15/2012) - This interesting post by PEG recently highlights an organisations culture as being in reality the only differentiating factor that they have. In his view assets, IP, cost competitiveness, brand and even people can be copied or acquired by your competition but it is your company culture that will lead to success/failure. I agree with his…More
Physical vs Virtual Kanban Boards (3/2/2012) - In previous posts I covered an introduction to Kanban and a review of a trial Kanban project. In this, my third in a series of Kanban posts, I’ll cover physical versus software Kanban boards.  For some this is an almost religious debate, and many would not question their decision for one other another. Whilst the…More
A Trial Kanban Project – What Worked. What Didn’t. (2/21/2012) - Recently I introduced Kanban to an inflight development project with the objective of trialling this technique with the team to raise productivity by overcoming various communication and process issues. In the first part of this 3 part series I presented an introduction to Kanban. This second part will cover the results obtained by introducing it…More
An Introduction to Kanban (2/13/2012) - Recently I introduced Kanban to an inflight development project with the objective of trialling this technique with a hope to raising productivity by overcoming various communication and process issues. In this three part series I’ll cover my real world experiences and the results felt by the project/team. This first part offers an introduction to Kanban,…More
The Enterprise & Open Web Developer Divide (2/6/2012) - In this interesting Forrester post about embracing the open web Jeffrey Hammond highlights the presence of two different developer communities. In his words: "…there are two different developer communities out there that I deal with. In the past, I’ve referred to these groups as the "inside the firewall crowd" and the "outside the firewall crowd."…More
Enterprise IT Project Insanity (1/16/2012) - A study published in the Harvard Business Review  has again shown that many IT projects continue to come in late and over budget. In addition it shows that there is a higher than expected number of large scale failures. These failures are massively over budget (200% in this study) and over deadline (70% overruns) and…More
Embedding Pro-Active Tasks In Your Dev Team (1/16/2012) - We have made huge advances over recent years in the tools available to the development team, including the more proactive and investigative tools (profiling tools, code analysis, performance analysis, debugging etc). However demanding project timelines mean that we have increasingly less time to investigate, trial and use these tools. Compounding the problem is that unfortunately…More
No VS with Notepad++ and Programmers Notepad (12/5/2011) - Sometimes, despite Visual Studio being an excellent IDE, you want to go the No VS route and hack your code in notepad. Perhaps you just want to make a quick change and its not worth firing up the full VS experience. Maybe you are only checking the code as a background time-filler in between other…More
Using SlickRun For Fast PowerShell Commands (11/15/2011) - I’m a big fan of SlickRun and if you’ve not used it I recommend you download it and give it a try. I find it an invaluable tool not only for launching apps but also web sites, collections of applications and directories etc. It’s the simplicity of SlickRun that makes it so powerful. Sure there…More
Is Your Gym Like Your Dev Team? (7/5/2011) - I recently managed to drag myself out of the office and into the gym, but unfortunately my mind was still on the office and my observations of what makes a dev team tick. In between sets I observed my fellow gym-goers and I witnessed similarities with my experiences of IT development teams. Parallels between your…More
Windows PowerShell Console Fun (3/12/2011) - Whilst watching Die Hard 4 the other day I noticed the funky transparent console windows that were being used to battle out cyber warfare, and being a traditional geek I immediately liked the idea of doing the same for my PowerShell console. Sure I know these guys are using Linux and transparent consoles have been…More
Getting A Users Username in ASP.NET (2/15/2011) - When building an ASP.net application it’s important to understand the authentication solution that you are planning to implement and then ensure that all your developers are aware of it. On a few projects I have noted that some developers lack this knowledge and it can end up causing issues later on in the project once…More
XML Error in TFS Power Tools Backup Plan (2/8/2011) - Whilst checking the Windows Event Log on my server I found this worrying error being reported by the Team Foundation Server Power Tools Backup & Restore Tool : Error: Tfpt Backup Restore : There is an error in XML document (499, 100). I posted an article about using this tool to backup your TFS server…More
The Future Of The IT Department (1/23/2011) - Recently I have been witness to rapid, often painful, change within my own internal IT division over the last few years and observed the on-going developments in the industry. It is clear that IT departments changed dramatically in a short amount of time and the pace is not relenting. This has led me to try…More
Ray Ozzie’s Dawn of a New Day (12/12/2010) - I would recommend everyone interested in technology to read Ray Ozzie’s (Chief Software Architect of Microsoft) memo – "Dawn of a New Day". It’s a fascinating insight into the vision of a key player in the industry and a call to arms for Microsoft and it’s partners. What interests me the most about this vision…More
Backing up TFS 2010 with new Power Tools Backup Plan (9/12/2010) - At last – backup is built into the TFS product, well via the Power Tools at least. Backing up TFS has always been difficult and non-intuitive without a SQL DBA in your pocket, even the documentation is at best extensive but at worse confusing. But all that’s history as the September 2010 TFS Power Tools…More
Private Clouds Gaining Momentum (7/30/2010) - Well its been an interesting few weeks for cloud computing, mostly in the “private cloud” space. Microsoft have announced their Windows Azure Appliance enabling you to buy a Windows Azure cloud solution in a box (well actually many boxes as it comprises of hundreds of servers) and also the OpenStack cloud offering continues to grow…More
Backing Up TFS 2010 Using PowerShell: Part 2 (7/30/2010) - In my previous post (“Backing Up TFS 2010 Using PowerShell: Part 1”) I covered how to backup up the TFS SQL Server databases using Windows PowerShell and the SQL Server Management Objects (SMO) API. In this post I’m going to take it one stage further and add another layer of backup for the paranoid amongst…More
Backing Up TFS 2010 Using PowerShell: Part 1 (7/30/2010) - In a previous post I covered how to install Team Foundation Server 2010 onto a Windows Home Server. The installation was a TFS Basic Configuration installation and whilst it was geared towards Windows Home Server the concepts are the same if you are installing it on other servers / workstations. This post will cover how…More
Installing Team Foundation Server 2010 on Windows Home Server (7/9/2010) - Last October I posted about the fact that Microsoft’s Team Foundation Server 2010 was going to be shipping with a “Basic” configuration that more light weight and seen as more of a Visual SourceSafe replacement. In that post I also pointed out that it seemed possible to install this version on a Windows Home Server…More
A Useful Entity Translator Pattern / Object Mapper Template (6/11/2010) - In this post I’m going to cover the Entity Translator pattern and provide a useful base class for implementing this pattern in your application. The ‘Entity Translator Pattern’ (defined here and here) covers situations where you need to move object state from one object type to another and there are very strict reasons why these…More
Raising Multiple Exceptions with AggregateException (5/12/2010) - There are occasions where you are aware of multiple exceptions within your code that you want to raise together in one go. Perhaps your code makes a service call to a middleware orchestration component that potentially returns multiple exceptions detailed in its response or another scenario might be a batch processing task dealing with many…More
Free Icons For Your Application Within Visual Studio (4/1/2010) - If like me you’re always on the lookout for neat little icons and images to add to your shiny .Net applications then you might like to know that Visual Studio includes an image library for you to use. The library is located on your hard drive within the Visual Studio installation at: For Visual Studio…More
Integrating WCF Services into Web Client Software Factory (2/12/2010) - For those of you unfamiliar with the Web Client Software Factory (WCSF) it is a very capable web application framework for building web forms based thin client applications. It was created as part of the Patterns and Practices offering from Microsoft (alongside the more well known Enterprise Library). It shares many concepts with it’s sister…More
Windows Azure Experimentation Is Currently Too Expensive (12/12/2009) - I’m a fan of Windows Azure and have enjoyed using it during its CTP phase. Once the CTP was open for registration like many I jumped at the chance to play with this new paradigm in Software Development. During this CTP phase I have written some small private web applications that really do nothing more…More
‘Java Update Secret Warning’ or ‘You WILL Auto-Update’ (12/7/2009) - The Java Runtime on my Dev machine prompted me to Update with a new Version. It didn’t prompt nicely via a little notification popup in the System Tray but instead blows straight into a full UAC prompt. Anyway in a moment of revenge I decided to turn off the ‘Auto Update’ feature. I opened the…More
Team Foundation Server ‘Basic’ Edition (10/12/2009) - Many development teams still regularly use Visual SourceSafe for their source control which can stimulate heated debates between those that have used it for many years without problems and those that have suffered some pain with it. Regardless of this debate there is no denying that SourceSafe is coming to the end of it’s useful…More
IIS Host Headers, Secure Bindings, Wix & Custom Actions (7/3/2009) - Whilst trying to host multiple WCF Services in IIS, each within it’s own web site, I discovered an issue with secure host headers and IIS6. The requirements were to securely install each WCF service inside it’s own web site, with its own application and application pool instance. In order to setup multiple sites I needed…More
WCF Best Practices (5/21/2009) - Windows Communication Foundation is a huge technology and one that is easy to implement badly. Luckily Mehran Nikoo has collated a selection of WCF best practices in his blog: http://mehranikoo.net/CS/archive/2008/05/31/WCF_5F00_Best_5F00_Practices.aspx It covers versioning, hosting and security, all of which are worth reading in detail. Two highlights for me are the problems with using the ‘Using’…More
Faster MSDN Library (4/14/2009) - It’s possible to view a low bandwidth version of the online MSDN Library which is faster and more lightweight than the full version. Check this post from Eric Nelson.More
Windows Azure : An Introduction (4/14/2009) - At last year’s PDC Microsoft released the details of its new venture into the next IT paradigm that is arguably set to change the way that applications are developed, hosted, managed and funded – Cloud Computing. It is easy to dismiss Cloud Computing is a fad or simply as a move back towards the mainframe…More
Extract Contents of an MSI (3/18/2009) - Sometimes you want to be able to access the contents of an MSI without having to install it. This is possible by running the Windows Installer MSIExec program with a few chosen parameters: msiexec /a FilePathToMSI /qb TARGETDIR=TargetFolder Where FilePathToMSI is the file path to the source MSI file, and TargetFolder is the path to…More
Thin Client vs Thick Client Architecture (12/2/2008) - Earlier in the year I did a presentation on the pros and cons of Thin vs Thick Client architecture, purely from the perspective of recommending an approach for a new UI. This is a long running debate and one that can become very political as most people have a preference. Usually developers/architects prefer to either…More