The Curious Engineer

All blogs / C# / .NET

Code rant

mikehadlow.blogspot.com

Life as a mort.

C# / .NETSoftware / engineering practiceDevOps / SRE / infrastructure

Posts
504 from 5 Aug 2005 to 6 Jul 2021
Posting
quiet since 2021
Kind
personal blog
Feed
http://feeds.feedburner.com/CodeRant

2021 1

  1. New Blog At mikehadlow.com

2020 3

  1. C# preprocessor directive symbols from the dotnet build command line via DefineConstants
  2. Restoring from an Azure Artifacts NuGet feed from inside a Docker Build
  3. A Framework to DotNet Core Conversion Report

2019 1

  1. Why Containers are a Game Changer for Software Development

2018 5

  1. Decoupling, Architecture and Teams
  2. Visual Programming - Why it’s a Bad Idea
  3. What I Learnt Creating Guitar Dashboard: SVG, TypeScript and Music Theory.
  4. The Possibilities of Web MIDI With TypeScript
  5. Configure AsmSpy as an external tool in Visual Studio

2016 1

  1. Running The KestrelHttpServer On Linux With CoreCLR

2015 7

  1. Learn To Code, It’s Harder Than You Think
  2. Partial Application in C#
  3. C#: Program Entirely With Static Methods
  4. C#: How to Record What Gets Written to or Read From a Stream
  5. Inject DateTime.Now to Aid Unit Tests
  6. A Simple Nowin F# Example
  7. Basic OWIN Self Host With F#

2014 15

  1. The Lava Layer Anti-Pattern
  2. Hire Me
  3. Heisenberg Developers
  4. JSON Web Tokens, OWIN, and AngularJS
  5. A Contractor’s Guide To Recruitment Agencies
  6. A Docker ‘Hello World' With Mono
  7. Docker: Bulk Remove Images and Containers
  8. How To Add Images To A GitHub Wiki
  9. Coconut Headphones: Why Agile Has Failed
  10. Git Tips: Revert with a new commit
  11. EasyNetQ: Client Details in Connection String
  12. EasyNetQ: A Layered API
  13. EasyNetQ: Publishing Non-Persistent Messages
  14. In Praise of TestDriven.NET
  15. The Geek Christmas Quiz 2013: The Answers!

2013 38

  1. The Geek Christmas Quiz 2013
  2. How to Run a Successful Open Source Project
  3. Are Your Programmers Working Hard, Or Are They Lazy?
  4. EasyNetQ: Replace the Internal DI Container
  5. EasyNetQ’s Minimalist DI Container
  6. EasyNetQ: Non-Generic Subscribe
  7. EasyNetQ: Send Receive Pattern
  8. EasyNetQ: Multiple Handlers per Consumer
  9. EasyNetQ: Consumer Cancellation
  10. EasyNetQ: Changes to Conventions With Version 0.18
  11. EasyNetQ: Polymorphic Publish and Subscribe
  12. EasyNetQ: Big Breaking Changes to Request-Response
  13. RabbitMQ Request-Response Pattern
  14. EasyNetQ: Publisher Confirms
  15. AsmSpy Coloured Output
  16. EasyNetQ: Big Breaking Changes in the Publish API
  17. Brighton Fuse
  18. EasyNetQ: IConsumerDispatcher
  19. RabbitMQ: AMQP Channel Best Practices
  20. EasyNetQ: Topic Confusion!
  21. EasyNetQ: Big Breaking Changes in the Advanced Bus
  22. Brighton ALT NET @ Brighton Digital Festival
  23. Guest Post: Working Around F#/NuGet Problems
  24. Redis: Very Useful As a Distributed Lock
  25. Automating Nginx Reverse Proxy Configuration
  26. NuGet Install Is Broken With F#
  27. SSH.NET
  28. The Benefits of a Reverse Proxy
  29. Stop Your Console App The Nice Way
  30. Serializing Lua Coroutines With Pluto
  31. Lua as a Distributed Workflow Scripting Language
  32. Coders, Musicians and Cooks
  33. Fractured Product Syndrome
  34. EasyNetQ on .NET Rocks!
  35. EasyNetQ in Africa
  36. How to Write Scalable Services
  37. Visual Studio: Multiple Startup Projects
  38. Converting Between Unix Time And DateTime

2012 34

  1. A Geek Christmas Quiz–The Answers!
  2. A Geek Christmas Quiz
  3. My Super Simple Node Twitter Re-Tweeter
  4. WebRequest Throws On 404 Status Code
  5. The Onion Of Compromise
  6. RabbitMQ On Windows With .NET, A Case Study
  7. Using BlockingCollection To Communicate Between Threads
  8. A C# .NET Client Proxy For The RabbitMQ Management API
  9. Nicer Client Properties For EasyNetQ
  10. EasyNetQ Publisher Confirms
  11. A Functional IoC Container
  12. EasyNetQ Cluster Support
  13. Parsing a Connection String With Sprache
  14. Replacing EasyNetQ Components
  15. Return a Task From BeginExecuteNonQuery
  16. Wiring up TopShelf, Windsor and EasyNetQ
  17. Using Git and GitHub in a Microsoft Development Team
  18. REST – Epic Semantic Fail
  19. Sprache – A Monadic Parser For C#
  20. Reading UTF-8 Characters From An Infinite Byte Stream
  21. Tracing System.Net to debug HTTP Clients
  22. Playing with Twitter
  23. EasyNetQ: Continuous Delivery with TeamCity and NuGet
  24. When Should I Use An ORM?
  25. Use AutoResetEvent To Unit Test Multi-Threaded Code
  26. EasyNetQ: Introducing the Advanced API
  27. Time To Consider Node.js?
  28. EasyNetQ: A Breaking Change, IPublishChannel
  29. The Configuration Complexity Clock
  30. How Do I Detect When A Client Thread Exits? Make The Client Tell You.
  31. Help! How Do I Detect When a Client Thread Exits?
  32. EasyNetQ: Topic Based Routing
  33. The Database As Queue Anti-Pattern
  34. A Useful Linq Extension Method: Intersperse

2011 40

  1. Some Thoughts On Service Oriented Architecture (Part 2)
  2. Some Thoughts On Service Oriented Architecture
  3. Thoughts on Windows 8 (part 2)
  4. Why Write a .NET API For RabbitMQ?
  5. Restarting RabbitMQ With Running EasyNetQ Clients
  6. How to stop System.Uri un-escaping forward slash characters
  7. An Action Cache
  8. Task Parallel Library: How To Write a Simple Delay Task
  9. EasyNetQ: How Should a Messaging Client Handle Errors?
  10. MEF DirectoryCatalog Fails to Load Assemblies
  11. Detecting and Changing a File’s Internet Zone in .NET: Alternate Data Streams
  12. RabbitMQ Subscriptions with the DotNet Client
  13. What is a Closure?
  14. The First Rule of Threading: You Don’t Need Threads!
  15. I Don’t Have Time for Unit Tests
  16. RabbitMQ, Subscription, and Bouncing Servers in EasyNetQ
  17. Some Thoughts on Windows 8
  18. Dependency Injection Haskell Style
  19. FuturePublish with the EasyNetQ RabbitMQ API
  20. EasyNetQ, a simple .NET API for RabbitMQ
  21. Serializing Continuations
  22. Message Queue Shootout!
  23. Monads! European Virtual ALT.NET. Video is now available
  24. Monads! European Virtual ALT.NET Tuesday 29th March
  25. 7000 Concurrent Connections With Asynchronous WCF
  26. WebStresser: A very simple web load testing tool
  27. Brighton ALT.NET show and tell night videos
  28. Monads in C#-8. Video of my DDD9 Monad talk
  29. Delegates make great container components
  30. Using Git alongside other version control systems
  31. Monads in C#-7. Turning our parser into a Monad
  32. AsmSpy: A little tool to help fix assembly version conflicts
  33. The MVC 3.0 IDependencyResolver interface is broken. Don’t use it with Windsor.
  34. Monads in C#-6. Introducing a simple parser
  35. Monads in C#-5. Maybe ;)
  36. Monads in C#-4. Linq loves Monads!
  37. Monads in C#-3. Creating our first Monad
  38. Monads in C#–2. What’s the point?
  39. Monads in C#–1. Introduction
  40. 2010 A Code Rant Retrospective

2010 81

  1. C# Closure Constructors
  2. The Second Commandment: Thy entity shalt not participate in dependency resolution
  3. An Explosion of Alternative Web Frameworks
  4. Javascript: Defining Classes with Closures
  5. ASP.NET MVC: Creating a URL From Route Values
  6. Sammy.JS
  7. Pedant Corner: Clarifying IoC, DIP and DI
  8. The first Commandment: Thou shalt not reference the IoC container!
  9. Tardis Bank at £5App
  10. An ASP.NET HttpModule to set the current culture to the user’s locale
  11. Composing Sequential Tasks With Linq
  12. Tardis Bank is now live
  13. Using the Task Parallel Library with ASP.NET MVC for scalable web applications
  14. RavenDb Indexes : 1st Attempt
  15. Tardis Bank – online pocket money banking for parents and kids
  16. RavenDb, ASP.NET MVC and Windsor working together
  17. RavenDb: Playing with Inheritance and Polymorphism
  18. A Powershell Script for Monitoring Web Site Status
  19. Populating Drop Down Lists in ASP.NET MVC
  20. ASP.NET MVC Controller Action Unit Test Extension Methods
  21. Use a Single Version File For All Projects in a Solution
  22. NHibernate Schema Export in Suteki Shop
  23. A Quick Play With NuPack
  24. Experimental ASP.NET MVC Add-ins : Updated (or why it pays to blog)
  25. Experimental ASP.NET MVC Add-ins
  26. Separation of Concerns with Domain Events
  27. How Conventions Can Massively Save Typing
  28. Implementing a ‘Money’ type in an ASP.NET MVC and NHibernate application.
  29. Getting the Property Name From a Property Expression
  30. Trust Your Instincts! Or how to stay interested in programming
  31. More Boilerplate Code Removal
  32. Adventures in Repetitive Code
  33. Using the Visitor Pattern with Domain Entities
  34. How to Fix Public Sector IT
  35. The New Brighton ALT.NET Wiki
  36. How to send an email via GMail using .NET
  37. Bending Linq Syntax to your will
  38. NHibernate Linq Eager Fetching
  39. How do You Stress Test Your Web Application?
  40. You Don’t Need an Application Server
  41. Book Review: Rework by Jason Fried and David Heinemeier Hansson
  42. Brighton ALT.NET Beers. 7pm Tuesday 6th July at The Skiff
  43. Is Microsoft the IBM of the 2010’s?
  44. Brighton ALT.NET Beers. 7pm Tuesday 1st June at The Skiff
  45. Skillsmatter Progressive .NET Tutorials May 12-14th 2010
  46. 10 Advanced Windsor Tricks – 13. Use SubContainers to replace dependencies on context
  47. Brighton ALT.NET Beers. 7pm Tuesday 4th May at The Skiff
  48. Currying vs Partial Function Application
  49. NHibernate Get<T> vs Load<T> and sub types
  50. Moving Suteki Shop from Linq-to-SQL to NHibernate
  51. A Custom ASP.NET MVC Model Binder for Repositories
  52. Microsoft TechDays – Open Source on .NET. April 14th, Shepherd’s Bush.
  53. Testing NHibernate mappings
  54. Brighton ALT.NET Beers. 7pm Tuesday 6th April at The Skiff
  55. Functional Dependency Injection == Currying
  56. Selenium test suite for Suteki Shop
  57. Why I write this stuff
  58. Upgrading Suteki Shop to ASP.NET MVC 2
  59. How to tell if a type is a delegate
  60. Combining Higher Order Functions in C#
  61. Thought experiment: The Curry Facility
  62. Brighton ALT.NET Beers. 7pm 2nd March at The Skiff
  63. Creating x.509 certificates with Pluralsight self-cert
  64. 10 Advanced Windsor Tricks – 12. The NamingPartsSubsystem
  65. In praise of ELMAH
  66. 10 Advanced Windsor Tricks – 11. Type forwarding
  67. 10 Advanced Windsor Tricks – 10. Configuration with type converters
  68. 10 Advanced Windsor Tricks – 9. Configuring fluently registered components with XML
  69. 10 Advanced Windsor Tricks – 8. Dependency graph visualisation
  70. My DDD8 Talk: An Introduction to IoC Containers with Castle Windsor
  71. Configuring SmtpClient to drop emails in a folder on disk
  72. Brighton ALT.NET Beers – 2nd February at The Skiff
  73. 10 Advanced Windsor Tricks – 7. How to Write a Facility
  74. 10 Advanced Windsor Tricks – 6. The Event Wiring Facility
  75. 10 Advanced Windsor Tricks – 5. The Startable Facility
  76. 10 Advanced Windsor Tricks – 4. How to register and use decorators
  77. 10 Advanced Windsor Tricks – 3. How to resolve arrays
  78. 10 Advanced Windsor Tricks – 1A. A Delegate Factory Facility
  79. 10 Advanced Windsor Tricks – 2. Auto Registration
  80. 10 Advanced Windsor Tricks – 1. Registering Delegates
  81. 10 Advanced Windsor Tricks - Introduction

2009 55

  1. Book Review: Enterprise Integration Patterns
  2. Skills Matter Functional Programming Exchange
  3. The Monthly Code Quality Report
  4. The joy of MSpec
  5. Make working with open source a breeze with Hornget
  6. Fun with Linq Aggregate
  7. Collection covariance with C# 4.0
  8. TFS Build: _PublishedWebsites for exe and dll projects. Part 2
  9. Installing Ubuntu on Hyper-V
  10. Suteki Shop: Big in China
  11. The .NET Developer’s Guide to Windows Security
  12. Brighton ALT.NET Beers! Tuesday 6th October.
  13. MassTransit at Skills Matter
  14. Why is ‘Buy’ not always better than ‘Build’
  15. Slides and Code for last night’s VBug London NHibernate talk
  16. Mocking Delegates
  17. The first rule of exception handling: do not do exception handling.
  18. How MassTransit Publish and Subscribe works
  19. A First Look at MassTransit
  20. IronPython in Action
  21. TFS Build: _PublishedWebsites for exe and dll projects
  22. What I look for in a Code Review
  23. Mike Ormond interviews me about the MVC Framework
  24. Multi-tenanted services with the Windsor WCF Facility
  25. Parameterised component resolution with the Windsor NamingPartsSubSystem
  26. Has this happened to you?
  27. Windsor WCF Facility: MessageAction and MessageEnvelopeAction
  28. Atom feeds with the Windsor WCF Facility
  29. Brighton ALT.NET Beers, Tuesday 5th May at the Prince Albert
  30. Suteki Shop is now a sample application on the official MVC Framework site
  31. Last Chance to Book Progressive .NET Tutorials with £150 Off!
  32. The sorry tale of the Visual Studio Web Site
  33. Some Fundamentals of Service Oriented Architecture
  34. Agile practices are not just about management.
  35. Choosing a Source Control Tool
  36. Why you should upgrade to .NET 3.5.
  37. Rhino Mocks at Skills Matter: Sample Code
  38. ALT.NET Brighton Beers. Tuesday 31st March
  39. WCF / Windsor Integration: Adding Behaviours
  40. Castle Windsor: Registering and resolving arrays of dependencies using the fluent registration API
  41. Recursive LINQ with Y-combinator
  42. What's the point of Value types?
  43. An evening of mockery at Skills Matter on the 23 of March
  44. WCF / Windsor Integration: Using the perWebRequest lifestyle
  45. VBug London 10th Feb: Why to I need an Inversion of Control Container?
  46. Further Reading on IoC Containers
  47. Tonight’s talk: Implementing the Repository Pattern
  48. Capturing and playing back web service calls with Wireshark and SoapUI
  49. Eric Evans on Repositories
  50. The best explanation of lazy loading ever!
  51. In search of Wild Repository
  52. Should my repository expose IQueryable?
  53. More Curry?
  54. Javascript tools
  55. Integrating Fluent NHibernate and the Windsor NHibernate Facility

2008 103

  1. Open Source .NET Exchange
  2. OpenRasta
  3. Multi-tenancy part 2: Components and Context
  4. Windsor WCF Integration
  5. Resources for tomorrow’s Developer Day talk
  6. Multi-tenancy part 1: Strategy.
  7. Upgrading Suteki Shop to the MVC Framework Beta
  8. Digital Media Awards South
  9. Dependency injection with Castle Windsor: Video
  10. MVC Framework and jQuery = Ajax heaven
  11. Dynamic Dispatch in C# 4.0
  12. Today's WTF
  13. Last night's talk on Dependency Injection with Windsor at Skill's Matter, London
  14. Rendering a tree view using the MVC Framework
  15. Mapping entities to multiple databases with NHibernate
  16. MVC Framework beta released
  17. Using ServiceLocator in an MVC Framework application
  18. Using Google Maps with the MVC Framework
  19. Learn to use Castle Windsor: Skills Matter, London October 23rd
  20. Using the Google maps geocode service to find the co-ordinates of an address
  21. Google Charts
  22. I welcome our new IServiceLocator overlord
  23. Column Ordering, Paging and Filtering in the MVC Framework
  24. Jump the Gun
  25. Photosynth Fun
  26. Suteki Shop at REMIX
  27. Form validation with MVC Framework Preview 5
  28. Resolving arrays with Windsor
  29. ALT.NET UK (un)conference
  30. Today's WTF
  31. MVC Framework Validation
  32. Managed Extensibility Framework: Why?
  33. What's up with Linq to NHibernate?
  34. Vote For Me! (again)
  35. Taking the HttpContext out of the MVC Framework Controller
  36. More on MSTest
  37. Firefox wins here (just)
  38. What's an Auto Mocking Container?
  39. Microsoft.Sdc.Tasks
  40. The Queryable Domain Property Problem
  41. On Google App Engine
  42. How Did I Get Started In Software Development?
  43. ADO.NET Data Services: Creating a custom Data Context #3: Updating
  44. ADO.NET Data Services: Creating a custom Data Context #2: The Client
  45. ADO.NET Data Services: Creating a custom Data Context #1
  46. Last night's ALT.NET evening
  47. Playing with ADO.NET Data Services
  48. Today's WTF
  49. There's usually an easier way
  50. More fun with 'yield return'
  51. MSTest is sapping my will to live
  52. Extension Method + LINQ + Interface = Reusable Queries
  53. ALT.NET UK (un)conference
  54. Why isn't Microsoft ALT.NET?
  55. The ALT.NET virtuous network
  56. Eagerly Loading Northwind: playing with DataLoadOptions
  57. LINQ to CSV
  58. MVC Framework: Capturing the output of a view (part 2)
  59. More Windsor Love: Using log4net integration
  60. MVC Framework: Capturing the output of a view
  61. Developer Developer Developer Day 7
  62. Interface + Extension Methods = Mixin
  63. Upgrading Suteki Shop to MVC Framework CTP 3
  64. Compiling aspx templates using aspnet_compiler
  65. What is RSD? Making my Suteki Shop to Live Writer integration slicker.
  66. Using Live Writer to Post Content to a Web Site
  67. Nested Master Pages with the MVC Framework
  68. MVC Framework Scaffolding
  69. Credit Card Validation With LINQ
  70. Collecting Validation Exceptions
  71. CSS Based Foldout Menus
  72. MVC Framework - default.aspx routes no longer work with the latest CodePlex build
  73. Generic reordering
  74. Last night's Sussex Geek Dinner
  75. Problems with the MVC Framework RenderComponent helper method
  76. Design Coding
  77. MVC Storefront
  78. Do Not Use Webhosting.uk.com
  79. IoC Container Purse Fight
  80. Repository.GetById using LINQ Expression Syntax
  81. Extension Properties for easy Reflection in C#
  82. Software Factories and Battery Programmers
  83. Visual Tools: Marketing Dream, Programmer's Nightmare
  84. I'm speaking at the next Sussex Geek Dinner
  85. File uploads with the MVC Framework
  86. Using the IRepository pattern with LINQ to SQL
  87. LINQ to String
  88. Currying in C# with Oliver Sturm
  89. Windsor IoC Container and MVC Framework CTP 2
  90. Forms Authentication with the MVC Framework
  91. How to output Windsor Container's dependency graph
  92. Nasty IE margin inheritance bug
  93. Extension method validators
  94. RESTful file uploads with HttpWebRequest and IHttpHandler
  95. Never write a for loop again! Fun with Linq style extension methods.
  96. ALT.NET UK
  97. Writing unit tests for an MVC Framework controller sucks
  98. DDD6 Feedback
  99. You have to stay up late for ALT.NET
  100. Rob Conery on choosing your data access method
  101. More on source repository hosting: What about Continuous Integration?
  102. Source repository hosting: Why do it yourself?
  103. Building my first Monorail application

2007 59

  1. Rhino Mocks Callbacks with Lambda expressions
  2. RESTful Web Services by Leonard Richardson & Sam Ruby
  3. Exposing generic methods to frameworks that don't understand generics.
  4. Developer Developer Developer Day 6
  5. Hammett on Microsoft's MVC Framework
  6. Installing Visual Studio 2008
  7. Ian Cooper on MVC
  8. An important new .NET language: LOLCODE
  9. The MVC framework and new C# 3.0 features
  10. T-SQL Fibonacci and the power of 'With'
  11. My new MacBook
  12. Inversion of Control, Unit Tests and Mocks
  13. How big should a function be? Uncle Bob explains.
  14. using Rhino.Mocks
  15. What is Inversion of Control
  16. Who uses this stuff?
  17. Developer Developer Developer Day. I've been selected!
  18. The Hollywood Principle
  19. Breaking a list into columns using custom iterators
  20. F# to join C# and VB.NET as a core .NET language
  21. Installing Vista
  22. A custom SSIS PipelineComponent
  23. Vote For Me!
  24. Microsoft's new MVC web development framework
  25. Windsor Container Resources
  26. My Developer Developer Developer Day session
  27. Ben on MonoRail
  28. Why are you still hand coding your data access layer?
  29. The joys of System.Diagnostics.StackFrame
  30. MIX 07 UK
  31. Microsoft and Innovation
  32. Testing Will Challenge Your Conventions
  33. Masters, Journeymen, and Apprentices
  34. The Castle Project's Windsor Container and why I might need it.
  35. Jeremy Miller's build your own CAB series
  36. How to structure Visual Studio solutions
  37. Serializing lots of different objects into a single file
  38. Four ways of doing a test with a result.
  39. A problem with ASP.NET client side validation and IIS host headers
  40. Playing with JSON
  41. My new Web Service Test tool, WsdlWorks
  42. Permissions needed to access the IIS metabase remotely using WMI
  43. How to walk the IIS metabase using WMI and System.Management
  44. IIS Redirects by setting the HttpRedirect metabase property with WMI
  45. URL Rewriting
  46. Resolving mutipart WSDL documents with DiscoveryClientProtocol
  47. WCF and WSDL
  48. How to add a command to a custom VS project type
  49. Is LINQ the writing on the wall for C#?
  50. REST is the Betamax of Web Services
  51. Building a Visual Studio Custom Project Type
  52. Writing a raw web service using an HttpHandler
  53. Wes Dyer talking about LINQ
  54. Creating set based filters with custom iterators
  55. Writing your own XSD.exe
  56. Orthogonal Code
  57. Easy impersonation
  58. SQL Authorization Manager
  59. Are you confused by character encodings?

2006 55

  1. F# Life
  2. How to write an XSD
  3. XmlDiff
  4. Playing with the XmlSerializer
  5. Using MemoryStream and BinaryFormatter for reuseable GetHashCode and DeepCopy functions
  6. Nested files with 'DependentUpon' in Visual Studio
  7. Finally getting around to using NMock
  8. More than just code?
  9. Playing with Providers
  10. What is AzMan?
  11. log4net
  12. No to #region!
  13. Nullability Voodoo
  14. Problems with the DataGridViewComboBoxColumn
  15. Discovering GetService
  16. Just what do you do all day?
  17. How to examine code and write a class with EnvDTE
  18. Are you a nerd?
  19. How to do database source control and builds
  20. Windows Live Writer
  21. How to create a guidance package
  22. Fustrating Visual Studio Templates
  23. Software Factories, Domain Specific Languages and related stuff
  24. Reflecting Generics
  25. A nice soap test tool: SoapUI
  26. Functional Programming
  27. Writing web services contract first using WSCF
  28. Playing with HTTP.SYS
  29. Resting?
  30. one line fibonacci
  31. The Vietnam of Computer Science
  32. Book Review: Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams.
  33. A simple WSDL object
  34. Dynamically creating a web service proxy class
  35. I love Regex
  36. The world's most misunderstood programming language
  37. Making raw web service calls with the HttpWebRequest class
  38. Intellisense isn't always right
  39. Where do role-based security checks go in my Application?
  40. How to drive on Mars
  41. Windows.Forms databinding doesn't work for domain objects.
  42. The Research Channel
  43. Microsoft doesn't do Encapsulation.
  44. Stevey's Drunken Blog Rants
  45. To stored procedure or not to stored procedure?
  46. A Solution for the reference data problem
  47. Doing remote procedure calls using WSE web service attachments
  48. Steve Yegge's whirlwind language tour
  49. A nice pattern for databinding domain objects
  50. A neat way of getting around some OR mapping issues with temporary Domain classes.
  51. Seriously hard core debugging
  52. A VS Macro to count projects classes and functions
  53. PDC 05 Downloads
  54. The official Microsoft GUI Guidelines
  55. Linq

2005 6

  1. Passing complex object graphs through web services
  2. Automatically logging into windows
  3. Programming Quotes
  4. Why you should never use the DataSet or XMLDom
  5. Development essentials
  6. Developing with least privilege