james mckay dot net
because there are few things that are less logical than business logic

Patterns and practices


Date Title
25th March 2019 A must-watch talk for every .NET developer by Udi Dahan
17th September 2018 Just how clean is Uncle Bob’s Clean Architecture?
10th July 2018 Your Repository is not a Data Access Layer
3rd May 2018 To throw or not to throw? Non-exceptional error conditions
8th February 2018 To throw or not to throw? Doing something that has already been done
19th January 2018 Positive, negative, or error?
7th December 2017 Error handling is the one thing that puts me off learning Go
12th January 2017 Some thoughts on CQRS and Event Sourcing
18th September 2014 How not to do logging: catch-log-throw
11th September 2014 How not to do logging: unnecessary abstractions
4th September 2014 A maturity model for best practices
7th October 2013 Your best practices are (probably) nothing of the sort
23rd July 2012 Is ALM just a marketing buzzword?
7th June 2012 Arguments that annoy me
15th August 2011 Individuals and interactions over processes and tools
7th April 2011 The purpose of auditing is to answer questions
3rd March 2011 Abstracting your ORM is a futile exercise
20th September 2010 On code generation
26th March 2010 On web deployment
15th March 2010 If part of your framework is not fit for purpose, don’t use it
16th December 2009 Can your database versioning tool do this?
25th September 2009 Joel Spolsky, cowboy coder
27th August 2009 Why can't every call centre let you know how long you'll be waiting?
29th June 2009 Why SQL Server 2005 database projects in VSTS are a bad idea
11th May 2009 Reinventing the wheel, badly
2nd April 2009 Continuous Deployment: radical idea or April fool?
26th March 2009 OO: the lingua franca of modern software design
31st May 2008 Productivity metrics: garbage in, garbage out
24th April 2007 Making website upgrades seamless: script the changes