Sign in
|
Join
|
Help
Peter Ritchie's MVP Blog
This is not a life-saving device.
This Blog
Home
Contact
Tags
.NET 2.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET Development
AntiPattern
C#
C# 3.0
Design/Coding Guidance
DevCenterPost
DevTeach
General
Interesting Find
Microsoft
Non-development
OOD
Patterns
Pontification
Resharper
Software Development
Software Development Guidance
Software Development Practices
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Syndication
RSS for Posts
Atom
RSS for Comments
Go
News
Follow @peterritchie
Search
Go
Email Notifications
Go
Archives
March 2013 (3)
February 2013 (1)
January 2013 (2)
November 2012 (4)
September 2012 (4)
August 2012 (1)
May 2012 (1)
April 2012 (1)
February 2012 (3)
January 2012 (3)
December 2011 (1)
November 2011 (5)
October 2011 (2)
September 2011 (2)
August 2011 (1)
July 2011 (1)
June 2011 (1)
May 2011 (3)
April 2011 (1)
March 2011 (2)
February 2011 (1)
December 2010 (4)
November 2010 (2)
October 2010 (2)
August 2010 (1)
June 2010 (2)
May 2010 (4)
April 2010 (6)
March 2010 (1)
February 2010 (6)
December 2009 (1)
August 2009 (1)
July 2009 (1)
May 2009 (1)
April 2009 (1)
March 2009 (3)
January 2009 (3)
November 2008 (6)
October 2008 (2)
September 2008 (2)
August 2008 (8)
July 2008 (8)
June 2008 (5)
May 2008 (8)
April 2008 (1)
March 2008 (4)
February 2008 (6)
January 2008 (4)
December 2007 (4)
November 2007 (1)
October 2007 (4)
September 2007 (2)
August 2007 (3)
July 2007 (2)
June 2007 (4)
May 2007 (5)
April 2007 (2)
March 2007 (4)
February 2007 (3)
January 2007 (1)
November 2006 (2)
October 2006 (5)
September 2006 (6)
August 2006 (2)
July 2006 (7)
March 2006 (2)
Nuggets
.NET 2.0 Breaking Changes
Visual Studio and .NET Framework Feedback
Microsoft Developer Network Forums
Interesting Blogs
Visual Studio Code Analysis Blog
Sara Ford's Blog
Me
Technorati Profile
Browse by Tags
All Tags
»
Software Development Guidance
»
Design/Coding Guidance
(
RSS
)
.NET 2.0
.NET 3.5
.NET 3.x
.NET 4.0
.NET 4.5
.NET Development
ALT.NET
AntiPattern
Architecture
C#
C# 3.0
C# 4
Code Contracts
Code Smells
Concurrency
DbC
DDD
DevCenterPost
DevTeach
General
Microsoft
Microsoft Patterns and Practices
Multithreaded
OOD
Patterns
Pontification
Software Development
Software Development Practices
Software Development Principles
Visual Studio 2005
Visual Studio 2008
Visual Studio 2012
WCF
Mon, Jan 21 2013 11:11
IDisposable and Class Hierarchies
In my previous post , I showed how the Dispose Pattern is effectively obsolete. But, there’s one area that I didn’t really cover. What do you do when you want to create a class that implements IDisposable , doesn’t implement the Dispose...
Posted by
PeterRitchie
|
4 comment(s)
Filed under:
C#
,
.NET Development
,
Design/Coding Guidance
,
Patterns
,
DevCenterPost
,
Software Development Guidance
Sun, Jan 20 2013 16:16
The Dispose Pattern as an anti-pattern
When .NET first came out, the framework only had abstractions for what seemed like a handful of Windows features. Developers were required to write their own abstractions around the Windows features that did not have abstractions. Working with these features...
Posted by
PeterRitchie
|
3 comment(s)
Filed under:
C#
,
.NET Development
,
Design/Coding Guidance
,
DevCenterPost
,
AntiPattern
,
Software Development Guidance
Sun, Nov 25 2012 11:29
Leave predicting to meteorologists and fortune-tellers
There’s a couple of good axioms about software design: You Can’t Future-Proof Solutions and the Ivory Tower Architect You Can’t Future-Proof Solutions basically details the fact that you can’t predict the future. You can’t possibly come up with...
Posted by
PeterRitchie
| with
no comments
Filed under:
Software Development
,
Design/Coding Guidance
,
Software Development Guidance
Tue, Sep 11 2012 14:04
Thread synchronization of non-atomic invariants in .NET 4.5
Now that we’ve seen how a singular x86-x64 focus might affect how we can synchronize atomic invariants , let’s look at non-atomic invariants. While an atomic invariant really doesn’t need much in the way of guarding , non-atomic invariants often do. ...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
C#
,
.NET Development
,
Design/Coding Guidance
,
DevCenterPost
,
Software Development Guidance
,
Multithreaded
,
.NET 4.5
,
Concurrency
,
Visual Studio 2012
Fri, Feb 10 2012 11:56
The Rat-hole of Object-oriented Mapping
Mark Seemann recently had a great post that, as most of his posts seem to do, challenges the average reader to re-think their reality a bit. The post is titled “Is Layering Worth the Mapping”. In the post Mark essentially details some of the...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Pontification
,
Patterns
,
Software Development Guidance
,
Code Smells
,
Architecture
Thu, Nov 24 2011 8:50
If You’re Using “#if DEBUG”, You’re Doing it Wrong
I was going through some legacy code the other day, refactoring it all over the place and I ran into many blocks of code wrapped in “#if DEBUG”. Of course, after a bit of refactoring in a RELEASE configuration these blocks of code were quickly out...
Posted by
PeterRitchie
|
13 comment(s)
Filed under:
C#
,
.NET Development
,
Design/Coding Guidance
,
DevCenterPost
,
Software Development Guidance
,
Software Development Principles
,
DbC
,
Code Contracts
Sat, May 7 2011 10:08
Criteria for Success
I was having a conversation with a client recently and the topic of “11th hour” came up. He seemed to think it wasn’t possible to deliver a software project without some sort of “11th hour” panic. I disagreed I disagree because I’ve...
Posted by
PeterRitchie
| with
no comments
Filed under:
General
,
Software Development
,
Design/Coding Guidance
,
Software Development Practices
,
Software Development Guidance
Sat, Mar 26 2011 19:19
Mapping to Your Database is a Private Affair
Your mapping to your database is generally coupled to the design of the data and the mapping provider's ability to implement a relational or non-relational model. This means your ORM influences the design of your mapped classes and/or the design...
Posted by
PeterRitchie
|
3 comment(s)
Filed under:
Software Development
,
Design/Coding Guidance
,
Patterns
,
Software Development Guidance
,
WCF
Wed, Nov 3 2010 8:23
Deep Dive on Closure Pitfalls
I've blogged about closures in C# and their pitfalls before. I keep seeing problems with closures--more now that lambdas expressions and statements ("lambdas") are becoming more widespread--even with experienced developers. So, I'd thought...
Posted by
PeterRitchie
|
5 comment(s)
Filed under:
C#
,
.NET Development
,
.NET 2.0
,
Design/Coding Guidance
,
.NET 3.x
,
C# 3.0
,
.NET 3.5
,
DevCenterPost
,
C# 4
,
Software Development Guidance
,
.NET 4.0
Wed, Feb 3 2010 17:52
The Difference between an Anti-Pattern and a Code Smell
I think the term “Anti-Pattern” is being over used. There’s various definitions for Anti-Pattern like “obvious but wrong, solutions to recurring problems” and “common approaches to solving recurring problems that prove...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
Software Development
,
Design/Coding Guidance
,
Patterns
,
AntiPattern
,
Software Development Guidance
Mon, Mar 30 2009 23:02
Evolving code over time
Given economics, time constraints, resource limitations, etc.; you can't write all the functionality for a given solution for a single release. Even if you weren't limited by these constraints, you're likely to get changing requirements as...
Posted by
PeterRitchie
|
1 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Software Development Practices
,
Software Development Guidance
Thu, Mar 26 2009 11:33
DevTeach 2009 Vancouver
The schedule for DevTeach 2009 Vancouver has been announced ( http://www.devteach.com/ ). There’s lots of great software development sessions from some of the leaders in our industry. If you’re planning on improving yourself, this is the conference...
Posted by
PeterRitchie
|
1 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Visual Studio 2005
,
.NET 2.0
,
Design/Coding Guidance
,
.NET 3.x
,
Visual Studio 2008
,
C# 3.0
,
.NET 3.5
,
DevTeach
,
DDD
,
Software Development Practices
,
Software Development Guidance
Thu, Jan 29 2009 11:10
A Upcoming Pandemic of Domain Anaemia
There's a well-known anti-pattern called the anaemic domain model[1][2]. This anti-pattern basically says domain entities, chronically, have little or no behaviour (remember, object-oriented design is about attributes and behaviour). It should be...
Posted by
PeterRitchie
|
4 comment(s)
Filed under:
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Microsoft
,
Patterns
,
OOD
,
AntiPattern
,
DDD
,
ALT.NET
,
Software Development Practices
,
Software Development Guidance
,
Microsoft Patterns and Practices