Ruminations of idle rants and ramblings of a code monkey

CSK 3.0 CTP1

CSK | Open Source | Web (and ASP.NET) Stuff
I know, I know, it’s a little late. I said Nov 1st and it’s now Nov 3rd. Here’s what happened – I was all on track to have it ready for the 1st, but then I got sick. I felt like a bowl of cold oatmeal, which is not very good. Kids … I’m tellin’ ya … they’re germ factories. I wound up spending the weekend in bed, resting. I could have down a drop on Friday or Saturday regardless, but it wasn’t at the point that I wanted it to be. Now that I’m feeling better, I got back down to it and got it to the point that I wanted in about an hour or so worth of work (told you I was close). [EDIT] You can download it from CodePlex. (thanks Alan!) Release Notes This is a Tech Preview. Read: nowhere near final. It’s not even up to what I’d call a beta. I’m putting this up primarily for feedback from the community and (hopefully) to generate some additional interest. It does show the direction that I’m going with this and I hope you’ll notice that, while the underlying functionality is pretty complex, it’s easy to work with and easy to change the UI. I have avoided duplicated any code as much as possible, though I may have missed something. User Interface elements: Most of the user interface is encapsulated in User Controls, which you will find in the Controls folder. I think that the names should be self-explanatory. For simplicity, data binding is used whenever feasible. Yes, it is not the most attractive. If there is anyone with better design skills, I’d be happy to hear from you. Implemented functionality: It’s the very base functionality; you have catalog display and navigation, cart functionality and checkout functionality. Checkout does not, at this time, call any of the payment processing components but the code will be (for the most part) the same when that does get added in. Installation: Unzip the file to a folder on your system. In the Data folder, you will find a backup of the Sql Server database that is used for the site. If you restore this to “.\SqlExpress” in a database named “CommerceDb”, you will not need to make any changes at all to the connection strings. If, however, your database is different, change the connection strings that are in the web.config. Coming next: Added actual payment processing. Would like to get login implemented as well; we’ll see about that.

CSK 3.0 Current Status

CSK | Open Source
Just last Friday, Rob Conery and I announced that we were working on a Commerce Starter Kit v 3.0, reviving the spirit of the CSK - “Sell your stuff, not your soul” (I always loved that tag line!). The project will be hosted on CodePlex. The current 3.0 checkins do not represent the current state of affairs, but a very interim state. It does show the architectural direction though. I also packaged up the final release of CSK 2.0 that Rob and I collaborated on so long ago for those that are interested. CSK 2.0 will not be actively supported moving forward. Support for CSK 3.0 will be done on the ASP.NET Forums. This is a quick update on the current status and a preliminary schedule for releases, etc. Keep in mind that this is preliminary and subject to change (in either direction). November 1, 2008: First drop of CSK 3.0. We’ll call this one a “Community Tech Preview” (CTP) and, in the tradition of CTP’s, it will represent a work very much in progress. We should have all of the major UI components of the site in place and, to some extent, functional. Well, catalog and cart are functional now, checkout … that may not be quite there on Friday’s drop, but I hope to have it there. I’d rather have this CTP release sooner than later to get feedback and participation from the community as early in the process as possible. December 1, 2008: CSK 3.0 Beta 1. This will be a stable release and we’re targeting to have it feature-complete. But we’ll still be working on any bugs and tightening down the hatches. January 5, 2009: CSK 3.0 Beta 2. Final beta of CSK 3.0. Again, a stable release, feature complete with few bugs (hopefully) left so we can concentrate on performance tuning and the like. (Note: there will be some tuning throughout the process, but this will involved a major push on tuning.) February 1, 2009: CSK 3.0 RTM. ‘Nuff said. I would love for this schedule to actually be too conservative. I really think it is. But … there’s lots to do and I do have other stuff on my plate as well, so I’m playing it safe. In between these milestones, there will be other drops as work progresses, with at least 1 interim release in between the dates here. If you are interested in working on CSK 3.0 and can commit to spending some time on it (that second part is the hard one!), let me know. This is especially true if you have features that you’d like to see implemented; that’s the best way to get those features in there! Keep in mind though that, much as I would like to, I won’t be giving everyone commit rights … I will need to see some contributions, etc. first. The reality is that we can’t have a free-for-all on the source tree; that would be bad for everyone involved.

Commerce Starter Kit 3.0 – CSK Reprise

CSK | Open Source | Web (and ASP.NET) Stuff
I am happy to announce a new Commerce Starter Kit. We’re calling it CSK 3.0, but it’s not based on the previous (CSK 2.0) codebase at all; it is a complete re-write from the ground up. Some of you probably remember when I first got involved in the CSK … that was WAAAAAY back in the days when ASP.NET 2.0 was all new and shiny. ASP.NET has, of course, moved forward quite a bit since then. We won’t be just upgrading the old CSK code base, but building a brand-spanking-new version, even though we’ll be calling it CSK 3.0. And … it will be in the same spirit as CSK - “shared source” and freely available to all. I will be reporting progress on this regularly, so you will want to subscribe if you want all the latest updates and news on the project. This all started with a chat or two with my old buddy Rob Conery, the creator of the original Commerce Starter Kit. He’s here at Microsoft now and working on the MVC Storefront, a sample application that uses the ASP.NET MVC Framework (as the name implies). At the end of these chats, we thought we’d revive the CSK name and build a new version … with components and business logic based on the same components and business logic used for MVC Storefront but with a traditional WebForms UI. That’s right folks … it’s gonna share code with the site that Rob’s working on. Not only does it make life much easier, it also shows how the same core logic and functionality can be skinned with either MVC or WebForms. Here’s the core stuff that is on the plate for this version: Updates to the latest coolness: CSK 3.0 will be targeting ASP.NET 3.5 with SP1, so we’ll have all of the latest toys, including (of course!) Linq. :-) Migration to common e-Commerce libraries: I mentioned this above; CSK will be using the same core business libraries and database as MVC Storefront, allowing you to easily switch between the two. Localization support: Oh boy, I remember lots of folks asking for this with CSK 1.x and 2.0. The new CSK will be localizable out of the box. All of the product and category text and descriptions will be localizable. The goal is to also have most, if not all, of the static text on the pages localizable as well. That’ll be fun with resource files. ASP.NET Dynamic Data Administration: The admin site will now be a separate web application so that there’s better isolation from the main web site. Of course, this could be installed as a virtual directory application under the main site but that won’t be necessary at all. You’ll easily be able to deploy it as a completely separate web site. ASP.NET Web Application: This is the “old” (as in 1.x) model for web applications. While it’s not as easily changed while running (since you actually have to do a build), it does provide better start-up performance, something that became a complaint with CSK 2.0. Yes, yes, you could pre-compile the site (and I often suggested that folks do this) but with the web application model, that won’t be a separate step. ASP.NET Ajax: This is all a part of the cool new toys, but I thought I’d highlight it separately. We’ll be using ASP.NET Ajax where it makes sense as well as the ASP.NET Ajax Control Toolkit. Better composability: One of the things that I thought we could have done better with CSK 2.0 was to have a better composition model for the UI … for example, there were 2 or 3 different places to change a product list display … category list, search list, etc. This made it more difficult to maintain as fields were added or changes were made to certain core UI elements. These components will be separated into a series of User Controls, each with distinct, composable functionality. You want to change the view of a product in a list? Change it once and you’ll see it everywhere … search results, category listing, cart, etc. Coupons: This was only partially implemented in CSK 2. Rob and I spent a couple of hours, both on the phone and over IM, and forth on how this would be implemented and I think it’s settled. The coupon system is going to be very extensible so that you can create any type of coupon that your heart desires. We’ll be including a couple of simple ones to get you started. One of my key goals with this rev is simplicity. I want the UI (at least) to be as simple as possible … and I want it to be simple to re-skin the CSK to your own look and feel. To that end, I am using quite a bit more controls and data binding than were used in version 2.0 … everything, in fact, is in some sort of control or another. Additionally, I do want to highlight, as much as possible, the infrastructure of ASP.NET as well as the extensibility of this infrastructure. For example, for the category listing, I’m using a SiteMapProvider that builds a site map from the categories in the database. Believe it or not, this is actually quite easy to do and provides things like the SiteMapPath, which I do plan on getting in there. I will need some help with this – in particular, I’d really like help with the following: Functionality – what features are essential and/or cool? What do you want to see in there? (No guarantees that it’ll make it, but if you offer to do it, it’s a lot more likely!) Design – Right now, I’m just stealing the design and layout from the MVC Storefront, converting it to use WebForms (so no MVC calls), etc. etc. etc. I call it the CASE methodology – Copy Always, Steal Everything. Now, I have the design skills of a dead toad, so redoing the design is simply out of the question. BUT … I would like to see it begin to diverge from MVC Storefront’s look. So any help that you might want to provide to do that would be very nice. Testing – Yes, we’ll have automated tests to catch a bunch of stuff, but manual testing and feedback is also needed, particularly when it comes to user experience. Migration – From CSK 2. I really don’t know if this is going to actually be possible and it’s certainly not something that I have on the list of “stuff to do” but if someone wants to volunteer to write a migration utility, that’d be cool with me. I’m targeting to get the first, alpha “preview” version out in the next week or so and I’ll announce that here as well.