Posts
12
Comments
5
Trackbacks
0
Monday, October 12, 2009
Introducing Spencer

I've started a new project called Spencer.  The goal of the project is to demonstrate how e-commerce applications can be built from simple, composable services, with an emphasis on scalability, flexibility, "multibility" (multi-tenant, -brand, -channel, -store, etc), and platform independence.  The project's code will be written in C# using WCF, WF, Enterprise Library, and Unity, with examples written to integrate with Commerce Server.

I've released the source for two services already:

  1. Product Feedback Service for retrieving feedback about products, including ratings, recommendations, and reviews.
  2. Product Image Service (no page yet, but the code's in TFS) for retrieving images of products.

In the next few weeks I'll be releasing additional services, and posting additional information about the project, the services, and techniques for combining the services into applications.

Cheers,

Colin

posted @ Monday, October 12, 2009 1:02 PM | Feedback (1)
Sunday, September 13, 2009
Defining Events and Writing Operations Guides
Tess Ferrandez has written a great post describing the questions she asks when troubleshooting a problem. Her nine questions are not only a great way to create a problem description; they’re also a great way to define events that occur in your application, and to write an operations guide that describes the events and what to do when they do occur.
posted @ Sunday, September 13, 2009 4:37 PM | Feedback (0)
Wednesday, September 09, 2009
5 Different .ca Wish Lists
Did a quick comparison of the wish list functionality on 5 large .ca e-commerce websites.
posted @ Wednesday, September 09, 2009 12:16 AM | Feedback (0)
Friday, September 04, 2009
Injecting Commerce Server 2007 Profile Context
"Injecting Commerce Server 2007 Catalog Context" demonstrated a simple technique for injecting catalog context and for writing catalog code that can be used on both the web tier and the service tier. The same technique can be used to get a Commerce Server 2007 profile context.
posted @ Friday, September 04, 2009 3:10 PM | Feedback (1)
Tuesday, September 01, 2009
Don't Put It In The Catalog (1 of ...)
I don't like storing non-product data in the Commerce Server catalog system. I know some smart people feel differently, and I respect their experience and opinions, but I've seen some incredible abuse of the catalog system. Here's one of the abuses that helped push me into the "If it's not a saleable product, it doesn't go into the catalog." camp.
posted @ Thursday, September 03, 2009 2:48 PM | Feedback (0)
Wednesday, August 26, 2009
Decrypting ConfigurationSection XML
I'm working on a project whose configuration system manipulates and deserializes blocks of XML as ConfigurationSection objects. Today we had to make the system support encrypted configuration sections, and we were surprised to find that it wasn't immediately obvious how to do it. The most common answer to the question of "How do I programmatically decrypt a configuration section?" is "Use SectionInformation.UnprotectSection!" Unfortunately, this wouldn't work for us...
posted @ Wednesday, August 26, 2009 10:46 PM | Feedback (0)
Tuesday, August 25, 2009
Writing Great Unit Tests
Steve Sanderson has a great post on writing great unit tests: best and worst practices.  The only things I'd add are...
posted @ Tuesday, August 25, 2009 9:06 AM | Feedback (0)
Monday, August 24, 2009
A Better Product Provider
I wrote the code for Building Product Business Entities From Commerce Server 2007 Products on my flight this morning. I was sitting next to one of my teammates, we got to talking about the approach, and I wound up writing the ProductProvider class in the post to demonstrate how the mapping factory would work. It's a trivial implementation. Here's a better one.
posted @ Monday, August 24, 2009 9:53 PM | Feedback (0)
Unity And Singletons

Brian Button has a great post on using Unity to make Singleton-ness an implementation detail.  I couldn't agree more.

posted @ Monday, August 24, 2009 4:07 PM | Feedback (0)
Sunday, August 23, 2009
Building Product Business Entities From Commerce Server 2007 Products
Many developers write catalog code against the Commerce Server 2007 Product class, or against a single business entity class that represents all types of products in the catalog, and then use the product's DefinitionName in if/else or switch statements to define behavior. This is makes their code fragile and harder to understand, extend, or test. Fortunately, there's a very simple way to build up business entities from products using abstract factory and dependency injection.
posted @ Sunday, August 23, 2009 7:39 PM | Feedback (1)