Sign in
|
Help
Peter Ritchie's MVP Blog
This is not a life-saving device.
This Blog
Home
Contact
Syndication
RSS for Posts
Atom
RSS for Comments
Search
Go
Tags
.NET 2.0
.NET 3.5
.NET Development
C#
C# 3.0
C++
Design/Coding Guidance
DevCenterPost
General
Interesting Find
Microsoft
MVP
Non-development
OOD
Open Source
Patterns
Pontification
Poor UI
Pop Quiz
Product Bugs
Resharper
Software Development
Visual Studio 2005
Visual Studio 2008
WinForms
News
Twitter Updates
Community
Home
Blogs
Media
Groups
Email Notifications
Go
Archives
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 (1)
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
»
C#
(
RSS
)
.NET 2.0
.NET 3.5
.NET Development
Asynchronous Programming Model (APM)
C# 3.0
C# Nugget
C++
CodeRush Refactor! Pro
Connect Issue
Design/Coding Guidance
DevCenterPost
Framework Bugs
ITSWITCH
ITSWITCH Answer
Microsoft
OOD
Patterns
Pop Quiz
Resharper
TCP
Visual Studio 2008
Visual Studio 2008 SP1
WinForms
Tuesday, September 02, 2008 1:49 PM
Becoming a Visual Studio Jedi Part 1
Becoming a Visual Studio 2008 (and often Visual Studio 2005) Jedi In much the same grain as James' Resharper Jedi posts, I'm beginning a series of posts on becoming a Visual Studio Jedi. It involves getting the most out of Visual Studio off-the...
Posted by
PeterRitchie
|
7 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Visual Studio 2008
,
DevCenterPost
Tuesday, August 26, 2008 3:06 PM
Trials and Tribulations of DataGridView, Column Selections, and Sorting
I had to implement some custom sorting in a DataGridView recently. Essentially, the stakeholders wanted full column selection (like Excel) while still having the ability to sort the data based on a particular column. This particular DataGridView is data...
Posted by
PeterRitchie
|
1 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
.NET 3.5
,
Framework Bugs
,
Connect Issue
,
Visual Studio 2008 SP1
Monday, August 11, 2008 5:34 PM
DataGridViewColumn.Frozen
DataGridViewColumn.Frozen is documented as "When a column is frozen, all the columns to its left (or to its right in right-to-left languages) are frozen as well." Which is nice until you think of the consequences. The consequences being that...
Posted by
PeterRitchie
| with
no comments
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
Monday, July 28, 2008 2:00 PM
ITSWITCH #1: Answer
Last post I detailed some code that may or may not have something wrong in it. If you thought InitializeOne and IntializeTwo are semantically identical (e.g. they differ only by performance), you'd be wrong. If you simply ran the code, you'd...
Posted by
PeterRitchie
| with
no comments
Filed under:
C#
,
.NET Development
,
Software Development
,
.NET 2.0
,
Design/Coding Guidance
,
Pop Quiz
,
ITSWITCH Answer
Friday, July 25, 2008 1:58 PM
ITSWITCH: #1
A short pop quiz on design/coding in C#...
Posted by
PeterRitchie
|
5 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
.NET 2.0
,
Design/Coding Guidance
,
Pop Quiz
,
ITSWITCH
Tuesday, July 15, 2008 9:47 AM
Nested Types
Recently Michael Features blogged about nested types . The title was almost "nested types considered harmful". I don't agree. I don't agree that they're any more harmful than any other C# construct (except goto...). Nested types...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Visual Studio 2008
,
C# 3.0
,
.NET 3.5
,
TCP
,
Asynchronous Programming Model (APM)
Wednesday, June 25, 2008 8:17 PM
Comparing CodeRush Refactor! Pro and Resharper 4, part 1 or N -- first glance.
Metadata view of code in referenced assemblies This is a big one for me. For whatever reason, Refactor 4 (and prior) completely disables this and sends you to the Object Browser instead. You get metadata view with CodeRush Refactor! Pro. Keyboard layout...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Software Review
,
Resharper
,
CodeRush Refactor! Pro
Wednesday, June 25, 2008 12:21 PM
Entity Framework Petition of Vote of Non Confidence
I had intended to be happy simply being a signatory of ADO .NET Entity Framework Vote of No Confidence. But, there's people suggesting signatories of this petition are wackos or on the fringe. Do yourself a favour and read the petition . Read what...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
,
Microsoft
Tuesday, June 10, 2008 2:26 PM
Fundamentals of OOD Part 3: Method Cohesion
Single Responsibility Principle (SRP) helps us write more cohesive types and methods. Cohesion is the relatedness of the members of a type to each other and the relatedness parts of a method's code to other parts. Method cohesion Often times a method...
Posted by
PeterRitchie
|
13 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
,
DevCenterPost
,
OOD
Thursday, May 08, 2008 3:01 PM
Fundamentals of OOD, Part 2 - Encapsulation Scope
Let's look at the ubiquitous Person concept. It might seem logical that an application that deals with people should have a Person interface for classes to implement. For example: public interface IPerson { String GivenName { get; set; } String SurName...
Posted by
PeterRitchie
|
3 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
,
DevCenterPost
Thursday, May 01, 2008 10:50 PM
Fundamentals of Object-Oriented Design (OOD) Part 1
With increased usage of patterns and situationally specific strategies, people sometimes lose sight of the concepts and principles behind these patterns and strategies and fail to follow them when they're not using patterns or strategies. I feel it's...
Posted by
PeterRitchie
|
1 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
,
DevCenterPost
Tuesday, April 29, 2008 9:08 AM
Overcoming problems with MethodInfo.Invoke of methods with by-reference value type arguments
I ran into an interesting problem on the Forums recently. Basically, when you use MethodInfo.Invoke to invoke a method with by-reference value type arguments you can't have the invoked method update a variable/argument. The problem is, when you invoke...
Posted by
PeterRitchie
|
5 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
DevCenterPost
Friday, March 07, 2008 8:48 AM
Single-Entry, Single-Exit, Should It Still Be Applicable In Object-oriented Languages?
Before the modern high-level languages Edsger Dijkstra came up with "Structured Programming". This programming methodology relied on the programmer to form and enforce most of the structure of the program--manually keeping sub-structures and...
Posted by
PeterRitchie
|
32 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
Tuesday, February 05, 2008 2:38 PM
A Time and Place for Code Comments
I've dealt with more than one person who believes all code comments are bad. The first person I encountered who said that also asked me to explain why a particular algorithm was used instead of another because there were no comments explaining it...
Posted by
PeterRitchie
|
7 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
Thursday, December 13, 2007 9:42 AM
Dependency Injection
Dependency injection (DI) is a form of inversion of control. There seems to be a tendency in some circles to refer to dependency injection as inversion of control (IoC). Dependency injection is a form of abstraction by removing physical dependencies between...
Posted by
PeterRitchie
|
1 comment(s)
Filed under:
C#
,
.NET Development
,
Software Development
,
Patterns
Wednesday, August 22, 2007 2:13 PM
Thread.Abort is a Sign of a Poorly Designed Program
Continuing the theme of Thead.Sleep is a sign of a poorly designed program , I've been meaning to provide similar detail on Thread.Abort and not just allude to it in other posts like 'System.Threading.Thread.Suspend() is obsolete: 'Thread...
Posted by
PeterRitchie
|
5 comment(s)
Filed under:
C#
,
Software Development
,
.NET 2.0
,
Design/Coding Guidance
Wednesday, August 01, 2007 11:49 AM
Exception Logging
There is often a requirement for an application to log unhandled (and sometimes "handled") exceptions. This logging could occur to a log file, to the Event Log, a logging server, etc. There's great reasons to log exceptions but logging exceptions...
Posted by
PeterRitchie
|
6 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
Sunday, June 17, 2007 10:56 AM
The Religion of Class Member Prefixing
The periodic identifier naming/prefixing/Hungarian-notation religious discussion reared its head recently on Eric Gunnerson's blog . This particular discussion revolves around the Microsoft-based guideline/anti-guidance of prefixing class member names...
Posted by
PeterRitchie
|
17 comment(s)
Filed under:
C#
,
Software Development
,
Design/Coding Guidance
Friday, May 18, 2007 11:02 AM
Accumulative Construction
A while back someone asked for guidance on what order should polymorphic construction occur in C# classes. I guess I had never really put much thought into it before and have never seen other guidance on the topic; but, I can see where this can become...
Posted by
PeterRitchie
| with
no comments
Filed under:
C#
,
.NET Development
,
Software Development
,
Design/Coding Guidance
Monday, October 16, 2006 3:14 PM
Writing Solid Code
My apologies to Steve Maguire for "borrowing" a title. I constantly see code, examples, and advice that perpetuate unsafe coding practices. As programmers we have the habit of getting something to a "working" state and call it "done"...
Posted by
PeterRitchie
|
2 comment(s)
Filed under:
C#
,
Software Development
,
C++
,
Design/Coding Guidance
More Posts
Next page »