Chris Falter

.NET Design and Best Practices
posts - 49, comments - 89, trackbacks - 24

My Links

News

All source code published on this blog is placed in the public domain.

Archives

Post Categories

Image Galleries

About Me

March 2008 Entries

Want to Write Great Business Software? Create a Great Domain Model!

When you are coding in a hurry, it is very tempting to write business logic in the first place that comes to mind, such as a button click handler. However, for all but the simplest systems, such a practice leads very quickly to a chaotic system whose business logic is scattered like the ash from an erupting volcano. Create a great domain model, though, and you will be able to nimbly align your software with your emerging business needs.

Posted On Tuesday, March 25, 2008 9:01 AM | Feedback (7) | Filed Under [ Coding Practices and Design Patterns ]

Refactoring to Comply with the DRY principle (Don't Repeat Yourself)

Every time I see an example of copy-and-paste programming, I'm like a bull who just spotted a waving red flag. "Don't Repeat Yourself" (DRY) is a principle every programmer should live by, for Turing's sake! Read on for a discussion of why copy-and-paste is egregious, and how to refactor an expansive set of conditional logic branches into a concise and elegant piece of code.

Posted On Friday, March 07, 2008 7:45 AM | Feedback (0) | Filed Under [ Coding Practices and Design Patterns ]

A Good Solution for "Magic String" Data
Dealing with vendor data (or your own) in the form of "codes" can pose significant challenges. You must ensure that your source code remains readable, that data are properly validated, and that data can be displayed as user-friendly descriptions. The built-in solutions (named constants and enums) help, but they have some significant shortcomings. If you derive a class of named constants from the MagicStringTranslator class, though, you can vanquish all 3 challenges in one fell swoop! Egghead Cafe...

Posted On Thursday, March 06, 2008 10:08 AM | Feedback (0) | Filed Under [ Coding Practices and Design Patterns ]

Powered by: