Home MVC Storefront

MVC Storefront Part 18: Creating An Experience

There's been a pretty big gap in the productions here, and it's mostly because I couldn't figure out what exactly to show. I also need to finish this thing - it's taking longer than I'd like! In this episode I go over some of the refactoring I've done and then show you my process for pulling the initial application together.

Outside-In

A lot of people have told me they want to see more "how another developer does something" so I've tried to focus on that with this episode. The theory of Unit Testing is that if you test your application completely against your requirements, you'll have a nice, stable application.

None of that matters unless you deliver an "experience". There really is no way to define what this means, nor a way to capture it with any type of test. Even a user-acceptance test - which to me offers a "this will do" kind of feedback.

At this stage of development (pre-alpha, almost alpha), there's usually a time consideration, and this time consideration will usually come with the requisite "I don't care WHAT font you use! Pixel-padding? Whatever get it DONE". This is understandable - we are building a business application here after all.

The thing I focus on at this stage, however, is the ability of the application to "sell itself". The best demos are the silent ones, filled with the user muttering good things mixed with the occasional gasp. This kind of thing goes far beyond usability, and beyond "acceptance" and dives more into digital sex appeal. Just how sexxy is your application?

I don't want to get ahead of myself here (I also don't want to suggest I know a lot about sex appeal). I just want you to know that this is how I think - I don't focus on technology as much as I do the experience - and hopefully you can see this captured in this screencast.

You can watch it here.

Nathan avatar
Nathan says:
Friday, August 08, 2008

Thanks Rob, can't wait to watch it!


Derek avatar
Derek says:
Saturday, August 09, 2008

The MVC StoreFront serials do give me a lot help. Thanks Rob. Waiting for the next screencast


King Wilder avatar
King Wilder says:
Saturday, August 09, 2008

Peahi means "Beacon".


Stas avatar
Stas says:
Monday, August 11, 2008

What about backend for storefront?


Simon avatar
Simon says:
Tuesday, August 12, 2008

Some ideas on how to deal with payment gateways in an MVC and TDD world would be nice.


Simon avatar
Simon says:
Tuesday, August 12, 2008

IPaymentService, I think that maybe I need to go read the code.


Chris Kolenko avatar
Chris Kolenko says:
Wednesday, August 13, 2008

Hey Rob..

quick question for ya..

just looked at the source from <a href="http://www.codeplex.com/mvcsamples">codeplex MVC Samples</a>

noticed that your using the

using (DB db=new DB()).....

in the comments you have Ayende.. so i don't know if he did this or not..

but what happened to the DI stuff??

will this create a new connection to the database for every call.. what's the reasoning behind it... not saying this is bad or not.. just want to know if i should be doing something similar with my stuff..

Cheers.


Rob Conery avatar
Rob Conery says:
Wednesday, August 13, 2008

Hi Chris - DI is still sending in the Context, but when you have data operations (UPDATE, INSERT, DELETE) you want to be sure that you capture it outside of any other instance lifetime. I think you looking at Order.Save() and in that case I want everything part of the same transaction - which is why I'm using a using.


Chris Kolenko avatar
Chris Kolenko says:
Wednesday, August 13, 2008

Thanks Rob..

i never got into the habit of using the using stuff..

that extra set of {} drives me crazy lol..


Dave Craft avatar
Dave Craft says:
Thursday, August 14, 2008

Yoh,

First off, loving you work Rob.

I got your latest source code and opened it up in VS 2008. When I ran the tested I was getting the following message:

"the location of the file or directory is not trusted"

Turns out it's something to do with NTFS storing the computer name that originally created the file. To get round it you can copy the downloaded code onto a FAT32 drive and then back again. This gets rid of the message and allows you to run the tests.

Just thought I’d post it incase anyone else gets a similar message about untrusted files.

Thanks

Dave


Robin M avatar
Robin M says:
Thursday, August 14, 2008

Another nice screencast, thanks!

One comment - I get very frustrated with (and don't often buy from) sites that won't tell me how much shipping will cost without logging in or going to far through the checkout process. I hope that this doesn't upset the birthing process but I think, at the very least, the "shipping method" screen should be between the "shipping" and "billing" and not on the "Finalize" screen.

It's a difficult process flow to get right and I'd love to hear your thoughts.


Rob Conery avatar
Rob Conery says:
Thursday, August 14, 2008

Good point Robin - I don't like that much either :). I've seen some sites that have a "calculate shipping" feature on the cart itself - and we can probably add that to the very first checkout screen. I agree - it tends to be a pain :).



Search Me
Subscribe

Index Of MVC Screencasts

You can watch all of the MVC Screencasts up at ASP.NET, and even leave comments if you like.

Popular Posts
 
My Tweets
  • @haacked must.... resist... assimilation...
  • Dinner at the Haacks. How did Phil get such a cute kid? Evidently Phil's in the doghouse though...
  • @shanselman dude turn off twitter and drive! that's gotta be illegal!
  • For D'Arcy and Justice... Scottgu goes Canuck! http://twitpic.com/mfz1
  • Working in ScottGu's office with @shanselman. Wearing an Orange Polo and saying "go ahead" a lot for some reason.
  About Me



Hi! My name is Rob Conery and I work at Microsoft. I am the Creator of SubSonic and was the Chief Architect of the Commerce Starter Kit (a free, Open Source eCommerce platform for .NET)

I live in Kauai, HI with my family, and when my clients aren't looking, I sometimes write things on my blog (giving away secrets of incalculable value).