If you're reading this then it means the Commerce Server 2007 Starter Site has been released. The entire team is happy to finally be able to make this product available to you. As lead developer for the Starter Site I am finally pleased to see my work hit the street.
I want to start my blogging here by sharing with you some of the motives behind the design of the Starter Site. Some of our design decisions may seem confusing at first if you don't know the impetus behind them.
In no particular order:
- Create a set of reusable controls - There are some features that are common across commerce sites but are above the level that the core product provides. The CS2007 Starter Site has broken out some of these features into reusable controls. The benefit of this is developers can use these controls on their own Commerce Server sites without needing to use the Starter Site.
- Showcase some new and/or important functionality - There are great features of Commerce Server that people never hear about or get missed in reviews. We wanted to show off some of these features and showcase some new features that really excite us.
- Demonstrate best-practices for Commerce Server - Developing against Commerce Server can be a little daunting at times, I'll admit it. There are a lot of features and there is a lot of things going on. Using Commerce Server is still orders of magnitude easier than developing your own solution from scratch and to make it that much easier we want the Starter Site to show how to do common tasks as well as use some of the more powerful, if not complicated, features that Commerce Server provides.
- Provide a production-ready site that can be customized and deployed with a minimal amount of code changes - Previous sample sites for Commerce Server were intended as nothing more than code samples with disclaimers warning against use in a production system. Nevertheless many deployments used the sample sites, often times without much modification, as their production e-commerce site. For Commerce Server 2007 we wanted to deliver a solution site that was tested for production, especially since MSIB, the only Commerce Server solution validated for production release, is no longer a supported solution.
Some of these goals mesh well together ("production ready" and "best practices") while others clash. For instance, not everyone wants multiple-shipping, multiple-tender checkout with promo codes and user accounts but we wanted to show off that technology (one of the first series of posts I will be making will be instructions on modifying the site to do anonymous, single-shipping, single-payment checkout).
The control library presented a unique challenge on its own. Since the control library is meant to be reusable it could not contain any site-specific code. For instance, URL formats couldn't be hard-coded since the layout of the site is an implementation-specific detail. We certainly didn't want to force a specific URL format or site-layout on everyone that wanted to use the controls.
Hopefully this post will give you insight into the design choices that were made. My next post will talk about the basic architecture and layout of the Starter Site and it should become more clear how the above goals were used to guide design.
If you have any questions about the Starter Site you can post a comment on this blog but the preferred method is to post on the Commerce Server 2007 forum at the Commerce Server MSDN Forums. The forums will allow anyone on the team to answer your question and I will be checking them regularly. It's also less likely for your questions to fall through the cracks.