Hanalei, Hawaii 9/2/2010
438 Posts and Counting

MVC Storefront: Why No Source!1!1!

Monday, February 16, 2009 -

This is my fault. Boom - there it is. No excuses, no lame attempts to laugh it off and blame Phil (even though it really is his fault). A lot of people have been messaging me via Twitter and leaving comments on my blog with the same question:

Dude, where's the source! You promised 1-2 weeks! It's been a month!

My response has been the same every time: the source will be ready by MIX. As you can imagine, people haven't taken to this very well and have decided that:

  1. This is yet another, typical Microsoft project with flaws and endless delays
  2. This is just a marketing vehicle with no substance
  3. I must have better things to do and I clearly don't care

I can understand the frustration - honestly I can because I told you something that's not happening and that's not cool. Well I'm here to tell you that nothing's changed really - I still can't load the source (but I'll tell you why in just a second) - but it's not for any of those reasons (obviously).

Good Things Happen
The Storefront was probably one of the most organic applications I've ever worked on - something that was allowed to morph and change based on community feedback and changes in technology allowed. It changed faces twice:

  • When I decided to refactor with an eye on harnessing the complexity using DDD
  • When I decided (recently) to refactor yet again, to reduce "concept count" and to massage out a bit of extra poof put in there by my initial attempts with DDD

What you don't know is that a 3rd refactor has just happened - and for a good reason: Microsoft is taking this effort seriously and it is now my 100% full time commitment (as opposed to before - the Storefront was almost completely an extracurricular thing for me). Now I know what you're thinking:

OMFG Great!1!1! Another Pet Shop or Fitch and Mather!1!1!

I have nothing against those sample apps - nor do I have an issue with Starter Kits. But this is neither of those things. It has changed, it has matured, and it's becoming the application I wanted it to become when I started this effort last spring: it's becoming relevant.

We're not all evil here. It's not always about marketing, and it's not always about pimping our stack - sometimes Good Things Happen and I'm asking for your patience for just another 4 weeks, while we tidy this thing up and I get ready to show it off (and some other things) at MIX.

So Why No Source!1!1!
Because it's not working yet and we're still nailing out concepts - architectural shifts (slight, but awesome) that will make this thing work in a relevant way. It's always been in the spirit of the Storefront to do these kinds of things in the open and to remain transparent - but we have a "concept shift" happening that I've been pushing for, and we're "spiking it" right now to see if it makes sense (which I think it really, really does!) - it really helps if you can do these kinds of things in small groups.

So I'm taking this 45 days to work this thing and I'm asking for your patience - it's coming together and I think it will rock at MIX. This has been a great experience in learning in every way, and if there's something specific you'd like to know more about (in terms of patterns or code I've shown with the Storefront) I'm more than happy to show you and write a blog post on it. Someone just today asked for more information about the Presentation Model Pattern - so I'm working up a post on that currently.

I'm not playing you and I have no other agenda right now except to devote as much of my time as possible to getting this right. It could flop, or it could fly. I just need my head down right now with the rest of the team to nail this - and I'm asking you to be patient with me. It's only another 4 weeks.

Related


Gravatar
robconery - Thursday, April 09, 2009 - True and true :) but at the same time what I'm suggesting is NOT letting

your client find you with your pants down - WRITE TESTS.

Tests don't take that long - I did 30 of them in 40 minutes. No excuses...

test your stuff. "Git er done" isn't what pro's do - they get it done and do

it right :). And I'm not saying you're not a pro - not at all. "Done" just

has to include testing is all...
Gravatar
Chris Kolenko - Thursday, April 09, 2009 - hey Mr BBQ Chicken Robot,



Your reply to my comment doesn't make sense.. I agree with you 100%.. but at the end of the day a client isn't going to pay you for a half done system.



all the client wants is to make money that's why someone goes into business.. what Rob has done is show the world different ideas and my favourite Store Front vid would have to be the one with the Birthing Process..



bottom line is unfinished product === failure!!



sometimes you have to suck up a few poorly writen lines of code just to finish the project
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Write one better since you obviously know what an elegant solution would look like. ;)
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Is this "The Donald"? Is that you Mr. Trump!? Didn't know you were a tech, well if you don't like this work then you can move forward as Rob's been fired and you can focus on a project that's done... check out Ruby on Rails... ask the guys over at twitter how that worked out ;)
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Totally agree. Negative posts that are masked under the "constructive so take it" notion are just plane annoying. Leave the guy alone, we may be the clients but we aren't paying him directly and therefore have no right to complain if a proposed date needs to be pushed back. Ya it sucks, but that't the way it is... Thanks for all your work Rob, especially MVC and Subsonic (3 is gonna kill it...) Keep up the good work, you're seen as a dev demi-god from the community and i'm sure your *real* bosses and clients don't have an ounce of an issue with your work or deadlines.
Gravatar
Paul - Thursday, April 09, 2009 - Wow there are some arseholes about, we get all this excellent technology to impress our bosses, not to mention god knows how much completely free tutorial's and examples of best practices on ASP.NET and STILL people moan.



How about Rob comes to your organisation, works for 6 month 24 hours a day for free and then allows you to claim the work as yours? Would that please you? Give the guys a break, your an embarassment to yourselves.
Gravatar
robconery - Tuesday, April 07, 2009 - Why not?
Gravatar
BB - Tuesday, April 07, 2009 - What have you done!!! It is no longer an elegant solution.
Gravatar
robconery - Monday, March 30, 2009 - http://mvcsamples.codeplex.com
Gravatar
Jon Davis - Monday, March 30, 2009 - Where? (I didn't attend MIX.)
Gravatar
Emanuele - Monday, March 30, 2009 - Hi Rob,

compliment for the storefront project.



I have a question about the concept of aggregate defined in DDD.

"An Aggregate is a cluster of associated objects that are treated as a unit for the purpose of data changes"

For this purpose in storefront you have created the IAggregateRoot interface used to mark an entity as an

aggregate root, and you set Customer and Product entities as aggregates:

- customer contains shopping cart entity,

- product has related products, cross sells and recommended entities.



First question:

the definition of the aggregate says that "associated objects are treated as a unit for the purpose of data changes",

does it mean that if I save the customer I save also the shopping cart?

If so the SimpleCustomerRepository doesn't consider customer and shopping cart as a unit, it has

Save and SaveCart methods respectively for customer and shopping cart entities.



Second question:

an aggregate could be also the order entity, is it right?



Rob can you publish a roadmap about storefront evolution?

I'm interested to the implementation of an Entity Framework repository :))

I like very much the first version of storefront with the use of IQueryable extensions

Gravatar
David - Monday, March 30, 2009 - Hey Rob, your hair looked much better in 06... :)
Gravatar
MrAnonymous - Monday, March 30, 2009 - Dude! Where`s da code?22 ^^
Gravatar
YZ - Sunday, March 29, 2009 - Good stuff! Will check out the newly posted code.
Gravatar
jmatharu - Thursday, March 26, 2009 - Thanks







________________________________
Gravatar
jeff - Thursday, March 26, 2009 - Can't wait to read your first post. I like the preview we got on the Mix video.
Gravatar
robconery - Thursday, March 26, 2009 - The source has been up all week :)
Gravatar
jmatharu - Thursday, March 26, 2009 - Still no source code! What's happening! The TICKS have tocked away!



Can you give us more information on when you will have this completed?



Thanks for an engaging and thought provoking series.





Gravatar
robconery - Wednesday, March 25, 2009 - Oh no! I took it the way you meant it :) - sorry if I didn't make that

clear. My point was simply that if I did work for you, I wouldn't be

bouncing all over the place :). I sort of have to when doing things like

this because people have a LOT of questions so I want to cover everything...

Anyway - I've stayed true to TDD/DDD, even up until now. The only major

thing I've shifted is that the biz logic is in plugins :).



Either way - I'm workin up the webcast now...
Gravatar
jc - Wednesday, March 25, 2009 - Now see there, I knew you'd take it the wrong way. :) Wasn't meant as a personal attack. Believe me, I do the same thing. I'm like Ricochet Rabbit sometimes bouncing from one architectural idea to the next. I don't have the community watching me to kick me in the ass when I do it though! I really appreciate you putting it out there like this.





Gravatar
robconery - Wednesday, March 25, 2009 - LOL Another person fires me :). I like where the Storefront ended WRT to

part 26 - it was tight and I liked exactly where it was. I would have kept

going with what I had if I was working in a company setting and tightened it

down, etc.

The difference with what you see is that we're making the app a community

app now - which to me is an entirely different focus. If you watch the MIX

presentation, we have a very clear goal - which is completely different then

most "enterprise" apps have: the ability to quickly change/theme/tweak.



I do appreciate your feedback (it's the 3rd time I've been fired!) - the

main thing I'd like to remind you is that I'm not working as your consultant

:) - I'm more or less trying to "educate" from a position of putting myself

on the firing line :):). Bit of a difference - if *you* were my client, I

wouldn't be doing this.



Anyway - I have a series of posts explaining this in the cue - first up

today.
Gravatar
jc - Wednesday, March 25, 2009 - I've been following this series since the very first post, and just downloaded the latest code. I really hope you take this comment in the spirit in which it is sent, which is constructive criticism, but this series of post has become a prime example of the way to not ever finish a project. If you're continually saying "Ooh, look, shiny new pattern!" and changing your entire design and/or architecture midstream, you'll never finish! At some point, you just have to say "this is how we're doing it" and get it done.



I recognize this, because I often have the exact same problem of getting sucked into the rabbit hole of the continually improving design. But at some point a deadline pops up and I just have to get it done.



You said very early on that you considered the community to be your customer. I have to say that if I were truly your customer, I think I'd have fired you after the third architecture change because I'd have been like "I paid this guy to write software, not experiment". Or worse, I'd think you just didn't know what the hell you were doing if you have to change your whole strategy every few weeks.



Anyway, just to be clear, I have enjoyed reading the series and will continue reading it. It does give a good intro to some patterns and tools I didn't even know existed. But, if your plan is to have a finished e-commerce starter kit, at this rate it's never going to get done! Hard to hit a moving target, you know?

Gravatar
robconery - Monday, March 23, 2009 - Looking into all of these things (Azure, etc) - specifically the CMS stuff.

It's hard to implement a "backbone" while making sure you still pay the most

attention to the commerce stuff.
Gravatar
Andy - Monday, March 23, 2009 - I've listened to the presentation, and agree that .NET applications should be more compelling. And simple plugins and theming, which have really helped PHP apps like Wordpress flourish, would be good. And an application or driving force to help foster these agile/simple ideas would be great.



But .NET development is getting very compelling already, in particular with elements of code generation and better tooling. And cleaner XHTML in Webforms 4.0 and MVC.



On the specifics of the Plugin work, how would the App_Code dynamically compiled Plugin approach work with Windows Azure style deployment? Where pre-packaged applications have to be deployed, without FTP or normal file access?



And back thinking about the Framework stuff that's coming out... though running the risk of trying to fit in a more complex framework piece of tech in the small app... how would it eventually play nice with MEF?



On the CMS stuff, I'd be keen for a simple Personalisation/Content Targetting architecture. As adding Widgets/Modules to every page individually gets unmanageable. It would be nice to target these by user or site area or product category with the beginnings of a little rules engine, which cuts out the need for some of the drag-drop interface customisation. Though I realise that's the route many open source products go, in their Admin areas.
Gravatar
robconery - Sunday, March 22, 2009 - Still have repos, using the MS namespace in anticipation of other things.

Moved off linq to SQL to broaden DB support.

The tangent is CMS stuff - watch the presentation :)
Gravatar
GinoIcis - Sunday, March 22, 2009 - Hi Rob,



Got your MIX09 video and the new AdventureWorks source code. Thanks for all the hard work.



"Simplicity is compelling" keep it going...I really hate YAGNI.
Gravatar
kitsune - Sunday, March 22, 2009 - The storefront session from Mix09 is online now, gonna watch it now, might explain some things:



https://content.visitmix.com/2009/sessions/default.aspx?keyword=There%27s+a+Little+Scripter+in+All+of+Us%3a+Building+a+Web+App+for+the+Masses
Gravatar
Andy - Saturday, March 21, 2009 - Wow, I'm confused. Just looked at the source on Codeplex checked in from 21st March.



I've been pleased to see the NerdDinner and Contact Management samples come to some consensus on Repositories, Services, Validation, LINQ and the like. And had thought MvcStorefront was going in a similar direction.



Has some "strategic" decision been made to realign the Storefront sample? The source really confuses me, so I suppose I'll have to be patient and wait for Rob's blog posts.



[1] using Microsoft namespace opens up "approved application" can of worms like with Oxite?

[2] what no LinqToSql sample repositories? No IQueryable for filtering and to play nice with ADO.NET Data Service and .NET RIA Services?

[3] using T4 for database generation, object store, themes, widget and module features seem to be going off on a tangent from a simple ecommerce reference app?



Did Rob write this or the other Commerce Starter Kit guys?!
Gravatar
georgia - Saturday, March 21, 2009 - Got it! A lot of changes to digest.



Thanks so much for the good stuff, Rob
Gravatar
kitsune - Saturday, March 21, 2009 - The code is online... but it looks.. strange?
Gravatar
georgia - Saturday, March 21, 2009 - Being a child asking cookies, codeplex seems working now. show me the code please :-)
Gravatar
kitsune - Saturday, March 21, 2009 - Codeplex was down for maintenance yesterday, so he couldn't upload the source (it looks like it from his twitter updates)



"Trying to load demo bits to Codeplex... and it's down. Yay!"



Patience is a virtue :)
Gravatar
Anthony Main - Saturday, March 21, 2009 - Thought the release was due at Mix, no sign of the session video on the mix site and still no source code, come on we're desperate for codage!
Gravatar
kitsune - Saturday, March 21, 2009 - Codeplex was down for maintenance yesterday, so he couldn't upload the source (it looks like it from his twitter updates)



"Trying to load demo bits to Codeplex... and it's down. Yay!"
Gravatar
PK - Friday, March 20, 2009 - Heya Rob :)



It's the weekend here in Australia .. so have you finished your demo @ MIX09? Any news on how it went? any code / session vid available?



(just trying to get these q's in quick before u go on a long. most desereved, vacation with the family, which i'm guessing cause most of the other boys (scott, phil, etc) sound like they are :) )



PS. Pre-orded the book, out of resepect and interest.
Gravatar
Petr - Tuesday, March 17, 2009 - Can we watch your presentation over internet?



Source code will be on codeplex?
Gravatar
robconery - Monday, March 16, 2009 - Yep - just finished my demo stuff today and am powering up my PowerPoint. I

think you'll like it :)
Gravatar
PK - Monday, March 16, 2009 - Not long, now peeps :) MIX09 is basically here (which means, so will the code!)
Gravatar
Harish - Thursday, March 05, 2009 - Hi Rob,



I am very much impressed and inspired with your work .. basically i am a java developer .. but due to some project work it happend to see your blog and started the work in ASP.net .. and i am continuing it happily .. I feel that i should continue to work in asp/c# for further works ..



Expecting lot more from you soon .. especially DDD

Gravatar
Todd - Wednesday, March 04, 2009 - Rob,



How hard would it be to just create a designer like the Linq2Sql classes use currently?



That would be really cool.
Gravatar
Tormod - Monday, March 02, 2009 - I think the effort is great.



Bringing the Agile and TDD into traditional boiler plate app. Making it possible to actually trash long overdue and smelly code that managers of small businesses cling to. "It works fine..... it's just this little thing which I'm sure will be no effort at all after you've heard my motivational speech..... even though the guy who originally wrote it sold it at a discount with the clause of never being contacted for any form of support...."



This will save me a lot of headache.
Gravatar
Bill Patterson - Monday, March 02, 2009 - Rob,



Thanks again for doing this project and seeing it through to its completion. I have an eCommerce site that I volunteered to do for a friend and I think your solution may be idea.



She has a PHP/MySQL site now, but is refocusing her company to deliver services to at-risk people and also sell a sub-set of the products she used to sell. It needs to intergrate with a results-based management and tracking system for case management that I'm developing for her using the MS Entity Framework.



She needs to have regular web pages as well as catalog and I think your system will allow her to do this.



Lastly, it would be useful to have some sort of purchase order or "other" payment method where a code (or PO Number) could be entered.



Thanks again! I can't wait to see the results of all of your work. I have learned a lot from you!



Bill
Gravatar
Ben Cherry - Sunday, March 01, 2009 - Rob -



Thanks a bunch for all your work on this project, it's incredibly useful to me.



Anyways, I'm posting looking for a suggestion. I'm building an application using the model you've presented here (with some tweaks). It's a different sort of app, so I'm hoping this all works out for it, and I'll certainly let you know of any challenges I run into (especially my solutions to those challenges).



So, my app involves an MVC web application, which will be hosting a Silverlight app. I've built out repositories, and services just like you've presented here. Currently, I'm presenting the data to Silverlight through a WCF service hosted in my Web application (under Services/Private, we'll have a public API later). But, my WCF service is essentially the same as my normal data service that I've built in the services library, except that it is in a .svc file (with a .svc.cs codebehind), and all of the methods have [DataContract] on top of them. The WCF service simply calls the underlying services layer's methods, so it's a pretty simple solution. However, I'm wondering if it might make sense to turn the services (for example, CatalogService in your app) into a WCF service, having the web application just call the class library directly through code, so that one service is available both straight through the compiled assembly, and exposed on the web site as well, as a WCF service. The upshot is that I don't have to manage changes at two different levels, and I reduce redundant code. However, there must be a downside!



I've tested that this, does, in fact work, but I'm wondering if there are any undesirable implications of doing it this way that I haven't noticed. Any ideas?
Gravatar
andycwk - Thursday, February 26, 2009 - I completely agree... I have just found time (thanks to redundancy) to start learning MVC and have screamed through all of your screen casts so far with eagerness... yes it would be kewl to see stuff happening now; but if the final product is better for the wait.. then I will wait.



Greatness takes time ;)



Keep up the fantastic work Rob... it's very much appreciated :)
Gravatar
TS Smith - Tuesday, February 24, 2009 - I am a real fan of your works but I think working source code might not be relevant here. We could've learned a lot from your source code that might not be even working while watching your screencasts and blog posts.. But with rare release of source code, I am not sure I can easily connect your screencasts/blogs to the real thing.
Gravatar
Mauricio Rodriguez - Monday, February 23, 2009 - Have you considered to plug-in the Entity Framework in the data layer???



Congratulations! Great webcast!!!!!
Gravatar
chriskolenko - Sunday, February 22, 2009 - Hey Rob,



Everyone has been saying really nice stuff about this project, so I'm just going to state something. It's still NOT finished.



You know how i feel about your stuff.. I think you're great, everything you've done has been an inspiration.



I don't know if you've achieved what you set out to achieve by what was the main goal of the MVC Store Front.

To sell stuff



1. Can i sell stuff?

2. Is the end client going to be happy?



at the end of the day my client doesn't care about DDD or all these man design patterns. He/She just wants to make the big $$$$$$$'s.



I have a friend who is still using ASP, yes classic stuff. He's clients love him, I'm thinking to myself he's a B Grade developer, however he knows how to finish.



being a good developer is %30 Skill Set %70 Delivering on time with no bugs.



That's my opinon
Gravatar
Andrew Knox - Sunday, February 22, 2009 - Haha, I was thinking exactly the same thing and was going to use the same example, beat me to it!



Some people will always bitch and moan in the meantime, but at the end of the day, the end product will be better for it. Happened with WoW and look at it now, license to print money.
Gravatar
Adam - Tuesday, February 17, 2009 - Not one to comment usually, however with some of the critical responses thought it was important you were thanked for your efforts. After all you have given the community a lot more then just source code. To the people who have hammered you, perhaps they should try giving rather then taking sometime. Have a good one.
Gravatar
mmather - Tuesday, February 17, 2009 - This is coming off as some kind of entitlement. I don't know about anyone else, but all I did for Rob was watch some screen casts, pick apart some source code, and send a few emails (ok - 1 email). He is really getting the short end of the contract stick. BTW, Rob, as your client, what am I paying you? Double it! You've earned it.



For me, Rob's built up a lot of credibility, genie wishes, date my sister type of gratitude stuff with regards to this series. I got way more from him then he got from me (can't divide by zero).



I hope the capable others, who are in a position to produce this kind of material, see an overall positive outpouring of sentiment from the community.

Gravatar
kh40s - Tuesday, February 17, 2009 - Apparently you're a very sensitive person. No mention of the compliments I paid you, which were all sincere BTW.



-----------------

>>> >>> this definition placed the community in a cooperative decision-making position (which I fear was never truly the case)

>>> I think I've been asking for your feedback, not really your consent. At some point *I* have to be responsible for what I've made - therefore *I* make the final decision :).



You appointed the community to be the client, right?



-----------------

>>> >>> I don't know of any "clients" out there that would settle for the explanation you've given

>>> Probably not. In this case there's not much else I can do here. Feel free to fire me :p.



Learn from the experience? Wasn't that the original goal?



-----------------

>>> >>>Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.

>>> Are you hammering me? It sounds like it...



This was intended to convey a sample dialog with the "client", not me hammering you personally. Apologies if you read it that way.



-----------------

>>> >>>Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD)

>>> 26 Screencasts +4 blog posts. The most public and transparent thing Microsoft has ever done, and you're lecturing me about communication? Really?



I believe I said something about the series being WONDERFUL! The communication breakdown I was referring to was everything that happened after the last episode.



-----------------

>>> >>>How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.

>>> Wow. Not sure I've had a worse comment than that on my blog. As I mention - feel free to fire me and move on.



Again, this wasn't intended to be a personal attack. Everyone is learning from this experience, right? Dealing with these situations is part of what we're learning (hopefully). Not taking feedback as a personal attack is also something we should learn. :)



-----------------

>>>Please don't take my comments as abusive or negative

Sure, why not. I love lectures.



Me too!



-----------------

>>> >>> Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.

>>> Sure - with comments like this you can see why it's so motivating.



I'm a programmer, not an author or a poet. My inter-personal relationship skills may be lacking, but

that wasn't the focus of the course, was it? Wait, this isn't the hostile takeover skills workshop

? Damn, I must be in the wrong forum again. :)



-----------------

>>> I have no idea if people actually work for you, but I feel sorry for them.



Yes, I feel sorry for myself sometimes too. Thanks for your support!
Gravatar
Duncan Mackenzie - Tuesday, February 17, 2009 - We should have the video up within a day ... we managed that for PDC and we are planning the same for MIX09
Gravatar
Chad Moran - Tuesday, February 17, 2009 - Rob, one thing you have to understand is people are getting such in a twist about this because there is a huge desire to have what you're working on. That's a good thing, not a bad one. You've built up a large, devoted userbase around this project and lots of people are thankful for that.



If you weren't getting "angry," feedback or any at all I'd be worried but the fact that people are taking this much time to write up a comment on one of your posts show much people really care about this project.



Just try to take it in stride, there's no perfect happy area (as we've seen with Oxite LOLOLLOLOL).



Be happy with what you've accomplished and just remember that these types of comments come out of good, not bad. We're all cheering for you on this one and just want to see the fruits of your labor.
Gravatar
Travis - Tuesday, February 17, 2009 - Go back to your management office!
Gravatar
robconery - Tuesday, February 17, 2009 - >>> this definition placed the community in a cooperative decision-making position (which I fear was never truly the case)

I think I've been asking for your feedback, not really your consent. At some point *I* have to be responsible for what I've made - therefore *I* make the final decision :).



>>> I don't know of any "clients" out there that would settle for the explanation you've given

Probably not. In this case there's not much else I can do here. Feel free to fire me :p.



>>>Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.

Are you hammering me? It sounds like it...



>>>Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD)

26 Screencasts +4 blog posts. The most public and transparent thing Microsoft has ever done, and you're lecturing me about communication? Really?



>>>How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.

Wow. Not sure I've had a worse comment than that on my blog. As I mention - feel free to fire me and move on.



>>>Please don't take my comments as abusive or negative

Sure, why not. I love lectures.



>>> Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.

Sure - with comments like this you can see why it's so motivating.



I have no idea if people actually work for you, but I feel sorry for them.



Gravatar
kh40s - Tuesday, February 17, 2009 - First off I have to say the MVC storefront series is wonderful. It's great to see someone working through the development process without knowing all the answers ahead of time. I really appreciate all the work and time you've put into creating this series. Thank you!



In part 5 of the series you introduced the idea of the "client" which you defined to be "you [the community], some big-whigs at Microsoft, and me [Rob Conery]." While I'm sure your intention was to keep the audience interested and involved, this definition placed the community in a cooperative decision-making position (which I fear was never truly the case).



According to the roles of the project (as defined by you [Rob Conery]), the community is the client (or at least part of the client). Like most clients, we want to know what's going on. I don't know of any "clients" out there that would settle for the explanation you've given, which is more or less "I'm currently refactoring the code, but don't worry, it will be done in 4 weeks and it's going to be awesome." (BTW, I have no doubt the final release will be awesome). Umm... refactoring? Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.



If your project focus or goals have changed, fine, but let the client (the community) know about it. Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD).



How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.



Please don't take my comments as abusive or negative. I understand this was a learning process, and I want to make sure that everyone gets the most out of it. Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.



Again, thanks for all your hard work. I look forward to seeing more high-quality content in the future.



PS: The comment "We're not all evil here." Does that mean that some of you ARE evil? :)
Gravatar
Todd - Tuesday, February 17, 2009 - Are there plans to store the object metadata in a cached manner? The template generated DB class reloads the metadata everytime it's created and I wouldn't need access to *all* of the tables on a given request. I can modify the template to retrieve the metadata from a cache but it looked like there was something in the works, I seemed to remember a WebRequestContext with NotImplementedExceptions in the code, will that be what I'm after?
Gravatar
robconery - Tuesday, February 17, 2009 - Probably not live if history is an indicator - might take a day or two.
Gravatar
robconery - Tuesday, February 17, 2009 - I'm not working with Oxite anymore so that's one thing off my plate :). In

terms of the beta for SubSonic - there are a couple of outstanding issues

that I need to resolve, primarily when working with two projected types in a

query and I also want to make the templates 100% easier.
Gravatar
MartinF - Tuesday, February 17, 2009 - I agree, it is exactly why i am waiting for the source code to be released.

I want to know how it ended up, but I suspect that it is one of the things that have not been finished completly yet and is still being refactored / tweaked ?



I have just started a new project, and as i am not the most experienced developer i want to wait for the release of the source and base my new application upon it. I have been waiting for it the last couple of weeks, expecting it to be released at anytime - but unfortunatly now have to wait 4 weeks more.



Rob: Please dont confuse it with me being mad at you - because i am not - it just feels like a bomb being dropped when you are as excited as you can get. Like a kid being promised to go to Disney World and then 10 minutes after you are expected to leave you are being told you have to wait until next year (thats how it feels) :)



Gravatar
Justin Etheredge - Tuesday, February 17, 2009 - Yeah, some people just go through life reinventing ways in which to suck more. You're doing a lot of good work, and most of us out here truly appreciate it. Sadly, we are the ones that you rarely hear from.
Gravatar
craftyfella - Tuesday, February 17, 2009 - Do you know if it's going to be streamed live? I can't make it to the states.. but i'd like to see the talk. ASAP. if possible.. I know the MIX in the UK puts the videos up pretty quickly.
Gravatar
Todd - Tuesday, February 17, 2009 - Sounds like you're pretty busy (Storefront, Oxite, MVC, Subsonic 3).



Speaking of Subsonic 3, are you using it in any of your current projects? I'm anxious for a beta release!!
Gravatar
Shawn Burke - Monday, February 16, 2009 - Rob, I know you're not all that evil. I'll vouch for ya.
Gravatar
rock_sg - Monday, February 16, 2009 - This is really the most valuable part of it. It's easy to just hack some code and get a website up and running. I'm interested in why you chose to do what you did and what the options were.



Thanks Rob, I'm a big fan of your project and can't wait for the source code release.
Gravatar
mmather - Monday, February 16, 2009 - In the meantime, could you just record your voice and show some funny pictures (some Tool would be nice too) You're like the Barry White of webcast narrators.



Your Mix session attendees are gonna throw their undies at you.
Gravatar
robconery - Monday, February 16, 2009 - That's almost exclusively what I"m going to present at MIX - it'll be

recorded and I"ll follow up with some defensive posts i"msure :)
Gravatar
leftend - Monday, February 16, 2009 - Thanks for the update, Rob. I'm interested in the "process" and decision making that took place between the last video, and the source that we ultimately see... Will there be some more video's to go over what has changed, and why? That's been the most useful part for me - seeing you hit snags, or better solutions, and adapting along the way. Anyway, just wanted to make sure that the rest of us who don't get to go to MIX get the skinny as well.



Thanks again!
Gravatar
robconery - Monday, February 16, 2009 - http://forums.asp.net/1165.aspx
Gravatar
Daniel Auger - Monday, February 16, 2009 - Still... It would be nice to see this methodology/pattern described and flushed out in an article all by itself since it is somewhat hidden across several videos. It's worthy of its own presence IMHO.



I only brought up Ayende because he's had some more to say about it since he was on one of the episodes.

Gravatar
TobiR - Monday, February 16, 2009 - Hi Rob, I have been working though the expample code (Part 8) and bringing it upto date with RC1 of the MVC and there is some code for RenderCommerceControl that uses RenderUserControl that I cannot find anywhere. I have tried RenderPartial but the extension methods never show up and nothing in Microsoft.Web.Mvc. Can you help?



Thanks



Tobi
Gravatar
Jeff G - Monday, February 16, 2009 - Wow. this really made me laugh. Thanks.
Gravatar
robconery - Monday, February 16, 2009 - I continue to marvel at how negative people can be about this. Seriously. I

don't do what you want me to do and Boom, I'm an a**hole and Microsoft

sucks. If you think this process was all "pull" - all I can tell you is you

are dead wrong.
Gravatar
Joe Chung - Monday, February 16, 2009 - As long as it ships on or before ASP.NET MVC itself ships, that's cool.
Gravatar
chriskolenko - Monday, February 16, 2009 - Maybe you should take the Blizzard approach and not give release dates.



"It's ready when it's ready"



When you get popular politics starts.
Gravatar
aherrick - Monday, February 16, 2009 - Looking forward to reviewing the complete source. Thanks for all the work.
Gravatar
PK - Monday, February 16, 2009 - I disagree with your comment, Ruffone. I've found that, when working on projects like this awesome one, there comes a point where u need to shut out all external opinions and get on with it. A bit like 'Head down, bum up'. I never read Rob's comments as an insult or feeling used - the complete opposite in fact! He's done what very little have done before him ... organically matured the project based on thoughts of all his pro-peers ... assembled what he knows .. tried a few things .. now has come up with a concrete direction and viola! lets bring it on -- head down bum up! If we continually sit here and questions everything that comes out, he will be away from developing and here answering questions .. which IMO are the lesser importance at this point of time.



Rob -> you go dude! Rip it home and save all the blog posts until _AFTER_ MIX .. so when the dust settles we can then pick it apart adnausum and love it, like a child.



I so hope this project will revolutionise the way a lot of us mid range developers work .. because as much as we think we're pro, u just gotta listen to Ayende, etc and u feel dumb (with all due respect).



Finally - for suggested blog posts (i so hope we get more after MIX discussing the various technologies and reasons) .. I drolled at your AsQuerable stuff .. and u teased us with some Unit Of Work magic ... so can u please elaborate on this stuff, with respect to Repository Pattern.
Gravatar
Chad Moran - Monday, February 16, 2009 - Well, to be fair I did say the source. But sure, I'll go for that too... getting a room by myself. ;)
Gravatar
ruffone - Monday, February 16, 2009 - It is a little bit curious to say the least. We had access to your consultations with friends and colleges about "concepts - architectural shifts" and technology direction on a number of occasions through out this process up to now. We have seen a number of hot spikes. That is what we have come to love about this project. All of a sudden "it really helps if you can do these kinds of things in small groups". I feel used. I feel like the community was used to develop this thing and now that it has sparked we could return to form. We could return to group mentality. This is nothing against you Rob, I believe you fought long and hard to keep this process open, but I have a visual in my mind of you being ultimately over powered by the huge Microsoft blob and this "small groups" policy proves your transformation. Ultimately it is a good swap, the profile of the project is raised. You have put a lot of hard work into it. Thanks for all the work.
Gravatar
applecran - Monday, February 16, 2009 - Well, in your last screen cast you noted a new architecture here, and you were refactoring this a lot, but you did not go into much detail as to how it was going to work in the end, maybe you can give us an example of just this and how it ended up looking?



Unless I completely missed something, in which case I'll just rewatch the video! Thanks!

Gravatar
robconery - Monday, February 16, 2009 - By the time you get your hands on me (ewwwwwww) the source will be posted.
Gravatar
robconery - Monday, February 16, 2009 - In terms of critical review - the last 8 months doesn't get more critical.

Ayende, for what it's worth (and Steve Harman) are the guys that came up

with the foundation of this idea :).
Gravatar
robconery - Monday, February 16, 2009 - Yes - I don't think they've updated the latest but right now (I think) MVC

has 3 sessions - one with me, one with Phil, and one with Hanselman. I think

MVC is also involved with another one but I'm not too sure yet.
Gravatar
robconery - Monday, February 16, 2009 - Can you be a bit more specific? I cover this in detail with the screencasts

- what did I leave out?
Gravatar
robconery - Monday, February 16, 2009 - Deny...
Gravatar
William - Monday, February 16, 2009 - >"Dude, where's the source! You promised 1-2 weeks! It's been a month!"



Probably somebody who promised a client a new store front app and was going to use your code and charge them for it while taking out any reference to you and or MS so they could say it was written from scratch. Now that you are behind in what you promised they are in a jam as well. Dirty, filthy apes...



Yeah probably unlikely, but it makes for a good story...



Take as much time as you need Rob and get it done right, we all know that quality code does not happen overnight.



And to quote Hedonismbot, "I will would consider it a smashing success if it kepts me entertained through the overture."
Gravatar
Chad Moran - Monday, February 16, 2009 - I agree, it's one of the reasons I'm going to MIX. I really hope some more MVC sessions come out of it or I might transfer my registration. I'm not going to spend all that money when I still don't see a single session regarding MVC. Not that I doubt there will be a few I'm just really interested in MVC right now.
Gravatar
Chad Moran - Monday, February 16, 2009 - At least you told us why. I'm sure you're talking a lot of flack for it and it was nice and professional of you to make a confession of a post. I'll be at Mix, finding a way to bug you until I get my hands on the source. :)
Gravatar
cowgaR - Monday, February 16, 2009 - that is what I was wondering looking on the flight tickets to L.A.



offtopic

half of MIX was "plagued" with Silverlight...

I'm not in war with Silverlight (battling with Flash really badly though ;-) but somehow I got feeling it is a MS marketing meeting not a web dev conference...
Gravatar
Daniel Auger - Monday, February 16, 2009 - I also think this would be a good idea because I think it has become something on to itself outside of the storefront example. It would be interesting if you could find some people who have used your IQueryable repository pattern in real world apps to discuss its strengths and weaknesses and its overall feasibility. If you really wanted to torture yourself Rob, you could ask Ayende to review the pattern at this point in the game.



Why do I think this would be a good idea? Because, this could be a very good pattern to use by shops that don't want to go full ORM. However, I feel that it needs some critical review before it can gain acceptance.
Gravatar
Justin Etheredge - Monday, February 16, 2009 - Side topic, but what is up with no listed ASP.NET MVC sessions at MIX? The web technology coming out of Microsoft that I am most interested in, and as of right now it looks like a no-show. You speak of debuting the code for the storefront, is that going to be in a session?
Gravatar
Travis - Monday, February 16, 2009 - The real question is, will Bellware be pleased? Probably not but... ;-)





Gravatar
applecran - Monday, February 16, 2009 - Hi Rob,



I'm looking forward to seeing this finished, I know you have put a lot of hard work into it.



Any chance you could write a post about your repository pattern and how you used custom business objects as well as LINQ to SQL?



Looking forward to seeing this live at Mix!
Gravatar
Ray - Monday, February 16, 2009 - Tin foil hat time: I suspect that you're integrating it with other up-and-coming MS stuff like Hanselman did with Baby Smash. Ex: composition with MEF, Velocity for caching, maybe some dynamic data/data services. Confirm/Deny?
Gravatar
yassir - Monday, February 16, 2009 - 4 weeks it is too much !!

anyway will it still under the Microsoft Public License ?
Gravatar
davidalpert - Monday, February 16, 2009 - Head down and keep it comin' i'm sure it's worth waiting for...
Gravatar
Kelly Stuard - Monday, February 16, 2009 - I am very much looking forward to seeing a full-fledged example that has all the best practices I keep hearing about (layers, IOC, DDD, TTD, list goes on...).



It's painful that we have to wait 45 days, given that we want to start yesterday. But if you really are putting the spit-polish on it like you say, I can only imagine the difference 45 days will make.



Please see if you can give us faithful readers of your blog a peek earlier than MIX!!
Gravatar
Damir - Monday, February 16, 2009 - Nice going.

I sure hope It'll be the MVC application that really rocks. And I also hope that it'll be easy to get running and extend with all sorts of things, internalization, plug-ins...



Ohh, and it'll still be very, very open source, right?



Thank You, it was a great fun following the development of the whole thing.
Gravatar
cowgaR - Monday, February 16, 2009 - do not understimate situation Mr. Conery, 4 weeks that is 2419200 seconds to tick! =D



so have this in mind when you are wasting your time with sleep and such ;p
Gravatar
Adam - Thursday, February 19, 2009 - I think you're doing an awesome job Rob!

Don't people know that if they want it now they can actually write the rest themselves. ohhh wait a second. Lets just wait for someone else. I can't do anything.....haha.



Keep up the good work! and don't listen to anyones Sh!t
Gravatar
Travis - Wednesday, February 18, 2009 - I think Bellware is the Thona 2.0.
Gravatar
Brett - Friday, April 24, 2009 - code or it didn't happen
Gravatar
Tormod - Thursday, May 07, 2009 - It would be nice though to know wether it: 1. Isn't done yet. or 2. Isn't going to be done. I find that instructional code samples meant to illustrate something frequently has some other vulnerability. To have an instructional project like this which has been under so much scrutiny and peer review should have a greater degree of maturity and be a good display of allround best practice. And unit tests for web security is a treat in and of itself. Without wanting to take anything away from Robs efforts and abilities, I find it slightly discouraging that this project is showing symptoms of stuff that MVC-accommodated TDD and Agile Process is meant to counteract. On a pretty standard eCommerce app with a top notch programmer at the wheel.... It should be a winning combination. But, remember that there also is a lot to learn from sharing failures. This is without knowing anything about Robs hectic days or current commitment on this project. But if we for a moment just assume that the code base (in spite of Agile practice and TDD) became hard to maintain, then there are valuable hard earned lessons to be extracted from this, which I hope Rob will be willing to share at a later time.
Gravatar
Charlie - Thursday, June 04, 2009 - Greatings, Everything dynamic and very positively! :)
Charlie
Gravatar
cowgaR - Monday, February 16, 2009 - do not understimate situation Mr. Conery, 4 weeks that is 2419200 seconds to tick! =D

so have this in mind when you are wasting your time with sleep and such ;p
Gravatar
Damir - Monday, February 16, 2009 - Nice going.
I sure hope It'll be the MVC application that really rocks. And I also hope that it'll be easy to get running and extend with all sorts of things, internalization, plug-ins...

Ohh, and it'll still be very, very open source, right?

Thank You, it was a great fun following the development of the whole thing.
Gravatar
Kelly Stuard - Monday, February 16, 2009 - I am very much looking forward to seeing a full-fledged example that has all the best practices I keep hearing about (layers, IOC, DDD, TTD, list goes on...).

It's painful that we have to wait 45 days, given that we want to start yesterday. But if you really are putting the spit-polish on it like you say, I can only imagine the difference 45 days will make.

Please see if you can give us faithful readers of your blog a peek earlier than MIX!!
Gravatar
davidalpert - Monday, February 16, 2009 - Head down and keep it comin' i'm sure it's worth waiting for...
Gravatar
yassir - Monday, February 16, 2009 - 4 weeks it is too much !!
anyway will it still under the Microsoft Public License ?
Gravatar
Ray - Monday, February 16, 2009 - Tin foil hat time: I suspect that you're integrating it with other up-and-coming MS stuff like Hanselman did with Baby Smash. Ex: composition with MEF, Velocity for caching, maybe some dynamic data/data services. Confirm/Deny?
Gravatar
robconery - Monday, February 16, 2009 - Deny...
Gravatar
applecran - Monday, February 16, 2009 - Hi Rob,

I'm looking forward to seeing this finished, I know you have put a lot of hard work into it.

Any chance you could write a post about your repository pattern and how you used custom business objects as well as LINQ to SQL?

Looking forward to seeing this live at Mix!
Gravatar
Daniel Auger - Monday, February 16, 2009 - I also think this would be a good idea because I think it has become something on to itself outside of the storefront example. It would be interesting if you could find some people who have used your IQueryable repository pattern in real world apps to discuss its strengths and weaknesses and its overall feasibility. If you really wanted to torture yourself Rob, you could ask Ayende to review the pattern at this point in the game.

Why do I think this would be a good idea? Because, this could be a very good pattern to use by shops that don't want to go full ORM. However, I feel that it needs some critical review before it can gain acceptance.
Gravatar
robconery - Monday, February 16, 2009 - In terms of critical review - the last 8 months doesn't get more critical.
Ayende, for what it's worth (and Steve Harman) are the guys that came up
with the foundation of this idea :).
Gravatar
Daniel Auger - Monday, February 16, 2009 - Still... It would be nice to see this methodology/pattern described and flushed out in an article all by itself since it is somewhat hidden across several videos. It's worthy of its own presence IMHO.

I only brought up Ayende because he's had some more to say about it since he was on one of the episodes.
Gravatar
robconery - Monday, February 16, 2009 - Can you be a bit more specific? I cover this in detail with the screencasts
- what did I leave out?
Gravatar
applecran - Monday, February 16, 2009 - Well, in your last screen cast you noted a new architecture here, and you were refactoring this a lot, but you did not go into much detail as to how it was going to work in the end, maybe you can give us an example of just this and how it ended up looking?

Unless I completely missed something, in which case I'll just rewatch the video! Thanks!
Gravatar
MartinF - Tuesday, February 17, 2009 - I agree, it is exactly why i am waiting for the source code to be released.
I want to know how it ended up, but I suspect that it is one of the things that have not been finished completly yet and is still being refactored / tweaked ?

I have just started a new project, and as i am not the most experienced developer i want to wait for the release of the source and base my new application upon it. I have been waiting for it the last couple of weeks, expecting it to be released at anytime - but unfortunatly now have to wait 4 weeks more.

Rob: Please dont confuse it with me being mad at you - because i am not - it just feels like a bomb being dropped when you are as excited as you can get. Like a kid being promised to go to Disney World and then 10 minutes after you are expected to leave you are being told you have to wait until next year (thats how it feels) :)
Gravatar
Travis - Monday, February 16, 2009 - The real question is, will Bellware be pleased? Probably not but... ;-)
Gravatar
Jeff G - Monday, February 16, 2009 - Wow. this really made me laugh. Thanks.
Gravatar
Travis - Wednesday, February 18, 2009 - I think Bellware is the Thona 2.0.
Gravatar
Justin Etheredge - Monday, February 16, 2009 - Side topic, but what is up with no listed ASP.NET MVC sessions at MIX? The web technology coming out of Microsoft that I am most interested in, and as of right now it looks like a no-show. You speak of debuting the code for the storefront, is that going to be in a session?
Gravatar
cowgaR - Monday, February 16, 2009 - that is what I was wondering looking on the flight tickets to L.A.

offtopic
half of MIX was "plagued" with Silverlight...
I'm not in war with Silverlight (battling with Flash really badly though ;-) but somehow I got feeling it is a MS marketing meeting not a web dev conference...
Gravatar
Chad Moran - Monday, February 16, 2009 - I agree, it's one of the reasons I'm going to MIX. I really hope some more MVC sessions come out of it or I might transfer my registration. I'm not going to spend all that money when I still don't see a single session regarding MVC. Not that I doubt there will be a few I'm just really interested in MVC right now.
Gravatar
robconery - Monday, February 16, 2009 - Yes - I don't think they've updated the latest but right now (I think) MVC
has 3 sessions - one with me, one with Phil, and one with Hanselman. I think
MVC is also involved with another one but I'm not too sure yet.
Gravatar
Chad Moran - Monday, February 16, 2009 - At least you told us why. I'm sure you're talking a lot of flack for it and it was nice and professional of you to make a confession of a post. I'll be at Mix, finding a way to bug you until I get my hands on the source. :)
Gravatar
robconery - Monday, February 16, 2009 - By the time you get your hands on me (ewwwwwww) the source will be posted.
Gravatar
Chad Moran - Monday, February 16, 2009 - Well, to be fair I did say the source. But sure, I'll go for that too... getting a room by myself. ;)
Gravatar
William - Monday, February 16, 2009 - >"Dude, where’s the source! You promised 1-2 weeks! It’s been a month!"

Probably somebody who promised a client a new store front app and was going to use your code and charge them for it while taking out any reference to you and or MS so they could say it was written from scratch. Now that you are behind in what you promised they are in a jam as well. Dirty, filthy apes...

Yeah probably unlikely, but it makes for a good story...

Take as much time as you need Rob and get it done right, we all know that quality code does not happen overnight.

And to quote Hedonismbot, "I will would consider it a smashing success if it kepts me entertained through the overture."
Gravatar
ruffone - Monday, February 16, 2009 - It is a little bit curious to say the least. We had access to your consultations with friends and colleges about "concepts – architectural shifts" and technology direction on a number of occasions through out this process up to now. We have seen a number of hot spikes. That is what we have come to love about this project. All of a sudden "it really helps if you can do these kinds of things in small groups". I feel used. I feel like the community was used to develop this thing and now that it has sparked we could return to form. We could return to group mentality. This is nothing against you Rob, I believe you fought long and hard to keep this process open, but I have a visual in my mind of you being ultimately over powered by the huge Microsoft blob and this "small groups" policy proves your transformation. Ultimately it is a good swap, the profile of the project is raised. You have put a lot of hard work into it. Thanks for all the work.
Gravatar
PK - Monday, February 16, 2009 - I disagree with your comment, Ruffone. I've found that, when working on projects like this awesome one, there comes a point where u need to shut out all external opinions and get on with it. A bit like 'Head down, bum up'. I never read Rob's comments as an insult or feeling used - the complete opposite in fact! He's done what very little have done before him ... organically matured the project based on thoughts of all his pro-peers ... assembled what he knows .. tried a few things .. now has come up with a concrete direction and viola! lets bring it on -- head down bum up! If we continually sit here and questions everything that comes out, he will be away from developing and here answering questions .. which IMO are the lesser importance at this point of time.

Rob -> you go dude! Rip it home and save all the blog posts until _AFTER_ MIX .. so when the dust settles we can then pick it apart adnausum and love it, like a child.

I so hope this project will revolutionise the way a lot of us mid range developers work .. because as much as we think we're pro, u just gotta listen to Ayende, etc and u feel dumb (with all due respect).

Finally - for suggested blog posts (i so hope we get more after MIX discussing the various technologies and reasons) .. I drolled at your AsQuerable stuff .. and u teased us with some Unit Of Work magic ... so can u please elaborate on this stuff, with respect to Repository Pattern.
Gravatar
robconery - Monday, February 16, 2009 - I continue to marvel at how negative people can be about this. Seriously. I
don't do what you want me to do and Boom, I'm an a**hole and Microsoft
sucks. If you think this process was all "pull" - all I can tell you is you
are dead wrong.
Gravatar
mmather - Tuesday, February 17, 2009 - In the meantime, could you just record your voice and show some funny pictures (some Tool would be nice too) You’re like the Barry White of webcast narrators…

Your Mix session attendees are gonna throw their undies at you.
Gravatar
Justin Etheredge - Tuesday, February 17, 2009 - Yeah, some people just go through life reinventing ways in which to suck more. You're doing a lot of good work, and most of us out here truly appreciate it. Sadly, we are the ones that you rarely hear from.
Gravatar
andycwk - Thursday, February 26, 2009 - I completely agree... I have just found time (thanks to redundancy) to start learning MVC and have screamed through all of your screen casts so far with eagerness... yes it would be kewl to see stuff happening now; but if the final product is better for the wait.. then I will wait.

Greatness takes time ;)

Keep up the fantastic work Rob... it's very much appreciated :)
Gravatar
Chris Kolenko - Monday, February 16, 2009 - Maybe you should take the Blizzard approach and not give release dates.

"It's ready when it's ready"

When you get popular politics starts.
Gravatar
Andrew Knox - Sunday, February 22, 2009 - Haha, I was thinking exactly the same thing and was going to use the same example, beat me to it!

Some people will always bitch and moan in the meantime, but at the end of the day, the end product will be better for it. Happened with WoW and look at it now, license to print money.
Gravatar
Joe Chung - Monday, February 16, 2009 - As long as it ships on or before ASP.NET MVC itself ships, that's cool.
Gravatar
TobiR - Monday, February 16, 2009 - Hi Rob, I have been working though the expample code (Part 8) and bringing it upto date with RC1 of the MVC and there is some code for RenderCommerceControl that uses RenderUserControl that I cannot find anywhere. I have tried RenderPartial but the extension methods never show up and nothing in Microsoft.Web.Mvc. Can you help?

Thanks

Tobi
Gravatar
robconery - Monday, February 16, 2009 - http://forums.asp.net/1165.aspx
Gravatar
leftend - Monday, February 16, 2009 - Thanks for the update, Rob. I'm interested in the "process" and decision making that took place between the last video, and the source that we ultimately see... Will there be some more video's to go over what has changed, and why? That's been the most useful part for me - seeing you hit snags, or better solutions, and adapting along the way. Anyway, just wanted to make sure that the rest of us who don't get to go to MIX get the skinny as well.

Thanks again!
Gravatar
robconery - Monday, February 16, 2009 - That's almost exclusively what I"m going to present at MIX - it'll be
recorded and I"ll follow up with some defensive posts i"msure :)
Gravatar
craftyfella - Tuesday, February 17, 2009 - Do you know if it's going to be streamed live? I can't make it to the states.. but i'd like to see the talk. ASAP. if possible.. I know the MIX in the UK puts the videos up pretty quickly.
Gravatar
robconery - Tuesday, February 17, 2009 - Probably not live if history is an indicator - might take a day or two.
Gravatar
Duncan Mackenzie - Tuesday, February 17, 2009 - We should have the video up within a day ... we managed that for PDC and we are planning the same for MIX09
Gravatar
rock_sg - Tuesday, February 17, 2009 - This is really the most valuable part of it. It's easy to just hack some code and get a website up and running. I'm interested in why you chose to do what you did and what the options were.

Thanks Rob, I'm a big fan of your project and can't wait for the source code release.
Gravatar
Shawn Burke - Tuesday, February 17, 2009 - Rob, I know you're not all that evil. I'll vouch for ya.
Gravatar
Todd - Tuesday, February 17, 2009 - Sounds like you're pretty busy (Storefront, Oxite, MVC, Subsonic 3).

Speaking of Subsonic 3, are you using it in any of your current projects? I'm anxious for a beta release!!
Gravatar
robconery - Tuesday, February 17, 2009 - I'm not working with Oxite anymore so that's one thing off my plate :). In
terms of the beta for SubSonic - there are a couple of outstanding issues
that I need to resolve, primarily when working with two projected types in a
query and I also want to make the templates 100% easier.
Gravatar
Todd - Tuesday, February 17, 2009 - Are there plans to store the object metadata in a cached manner? The template generated DB class reloads the metadata everytime it's created and I wouldn't need access to *all* of the tables on a given request. I can modify the template to retrieve the metadata from a cache but it looked like there was something in the works, I seemed to remember a WebRequestContext with NotImplementedExceptions in the code, will that be what I'm after?
Gravatar
Todd - Wednesday, March 04, 2009 - Rob,

How hard would it be to just create a designer like the Linq2Sql classes use currently?

That would be really cool.
Gravatar
kh40s - Tuesday, February 17, 2009 - First off I have to say the MVC storefront series is wonderful. It's great to see someone working through the development process without knowing all the answers ahead of time. I really appreciate all the work and time you've put into creating this series. Thank you!

In part 5 of the series you introduced the idea of the "client" which you defined to be "you [the community], some big-whigs at Microsoft, and me [Rob Conery]." While I'm sure your intention was to keep the audience interested and involved, this definition placed the community in a cooperative decision-making position (which I fear was never truly the case).

According to the roles of the project (as defined by you [Rob Conery]), the community is the client (or at least part of the client). Like most clients, we want to know what's going on. I don't know of any "clients" out there that would settle for the explanation you've given, which is more or less "I'm currently refactoring the code, but don't worry, it will be done in 4 weeks and it's going to be awesome." (BTW, I have no doubt the final release will be awesome). Umm... refactoring? Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.

If your project focus or goals have changed, fine, but let the client (the community) know about it. Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD).

How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.

Please don't take my comments as abusive or negative. I understand this was a learning process, and I want to make sure that everyone gets the most out of it. Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.

Again, thanks for all your hard work. I look forward to seeing more high-quality content in the future.

PS: The comment "We’re not all evil here." Does that mean that some of you ARE evil? :)
Gravatar
robconery - Tuesday, February 17, 2009 - >>> this definition placed the community in a cooperative decision-making position (which I fear was never truly the case)
I think I've been asking for your feedback, not really your consent. At some point *I* have to be responsible for what I've made - therefore *I* make the final decision :).

>>> I don't know of any "clients" out there that would settle for the explanation you've given
Probably not. In this case there's not much else I can do here. Feel free to fire me :p.

>>>Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.
Are you hammering me? It sounds like it...

>>>Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD)
26 Screencasts +4 blog posts. The most public and transparent thing Microsoft has ever done, and you're lecturing me about communication? Really?

>>>How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.
Wow. Not sure I've had a worse comment than that on my blog. As I mention - feel free to fire me and move on.

>>>Please don't take my comments as abusive or negative
Sure, why not. I love lectures.

>>> Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.
Sure - with comments like this you can see why it's so motivating.

I have no idea if people actually work for you, but I feel sorry for them.
Gravatar
Chad Moran - Tuesday, February 17, 2009 - Rob, one thing you have to understand is people are getting such in a twist about this because there is a huge desire to have what you're working on. That's a good thing, not a bad one. You've built up a large, devoted userbase around this project and lots of people are thankful for that.

If you weren't getting "angry," feedback or any at all I'd be worried but the fact that people are taking this much time to write up a comment on one of your posts show much people really care about this project.

Just try to take it in stride, there's no perfect happy area (as we've seen with Oxite LOLOLLOLOL).

Be happy with what you've accomplished and just remember that these types of comments come out of good, not bad. We're all cheering for you on this one and just want to see the fruits of your labor.
Gravatar
kh40s - Tuesday, February 17, 2009 - Apparently you're a very sensitive person. No mention of the compliments I paid you, which were all sincere BTW.

-----------------
>>> >>> this definition placed the community in a cooperative decision-making position (which I fear was never truly the case)
>>> I think I've been asking for your feedback, not really your consent. At some point *I* have to be responsible for what I've made - therefore *I* make the final decision :).

You appointed the community to be the client, right?

-----------------
>>> >>> I don't know of any "clients" out there that would settle for the explanation you've given
>>> Probably not. In this case there's not much else I can do here. Feel free to fire me :p.

Learn from the experience? Wasn't that the original goal?

-----------------
>>> >>>Didn't you say the code would be finished 4 weeks ago? As a client, all I hear is you need 4 more weeks before I have the code I was promised 4 weeks ago.
>>> Are you hammering me? It sounds like it...

This was intended to convey a sample dialog with the "client", not me hammering you personally. Apologies if you read it that way.

-----------------
>>> >>>Communication is paramount for any development process, especially the ones you claim to be following (i.e. TDD and DDD)
>>> 26 Screencasts +4 blog posts. The most public and transparent thing Microsoft has ever done, and you're lecturing me about communication? Really?

I believe I said something about the series being WONDERFUL! The communication breakdown I was referring to was everything that happened after the last episode.

-----------------
>>> >>>How would you handle this situation if the community were an actual client? Hopefully not as you've done, because I know it would probably be the last time you would work for me.
>>> Wow. Not sure I've had a worse comment than that on my blog. As I mention - feel free to fire me and move on.

Again, this wasn't intended to be a personal attack. Everyone is learning from this experience, right? Dealing with these situations is part of what we're learning (hopefully). Not taking feedback as a personal attack is also something we should learn. :)

-----------------
>>>Please don't take my comments as abusive or negative
Sure, why not. I love lectures.

Me too!

-----------------
>>> >>> Besides, I'm hoping you (or someone else at Microsoft) will continue to provide for the community as you've done with this series.
>>> Sure - with comments like this you can see why it's so motivating.

I'm a programmer, not an author or a poet. My inter-personal relationship skills may be lacking, but
that wasn't the focus of the course, was it? Wait, this isn't the hostile takeover skills workshop
? Damn, I must be in the wrong forum again. :)

-----------------
>>> I have no idea if people actually work for you, but I feel sorry for them.

Yes, I feel sorry for myself sometimes too. Thanks for your support!
Gravatar
mmather - Tuesday, February 17, 2009 - This is coming off as some kind of entitlement. I don’t know about anyone else, but all I did for Rob was watch some screen casts, pick apart some source code, and send a few emails (ok - 1 email). He is really getting the short end of the contract stick. BTW, Rob, as your client, what am I paying you? Double it! You’ve earned it.

For me, Rob’s built up a lot of credibility, genie wishes, date my sister type of gratitude stuff with regards to this series. I got way more from him then he got from me (can’t divide by zero).

I hope the capable others, who are in a position to produce this kind of material, see an overall positive outpouring of sentiment from the community.
Gravatar
Travis - Tuesday, February 17, 2009 - Go back to your management office!
Gravatar
Adam - Tuesday, February 17, 2009 - Not one to comment usually, however with some of the critical responses thought it was important you were thanked for your efforts. After all you have given the community a lot more then just source code. To the people who have hammered you, perhaps they should try giving rather then taking sometime. Have a good one.
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Totally agree. Negative posts that are masked under the "constructive so take it" notion are just plane annoying. Leave the guy alone, we may be the clients but we aren't paying him directly and therefore have no right to complain if a proposed date needs to be pushed back. Ya it sucks, but that't the way it is... Thanks for all your work Rob, especially MVC and Subsonic (3 is gonna kill it...) Keep up the good work, you're seen as a dev demi-god from the community and i'm sure your *real* bosses and clients don't have an ounce of an issue with your work or deadlines.
Gravatar
Adam - Thursday, February 19, 2009 - I think you're doing an awesome job Rob!
Don't people know that if they want it now they can actually write the rest themselves. ohhh wait a second. Lets just wait for someone else. I can't do anything.....haha.

Keep up the good work! and don't listen to anyones Sh!t
Gravatar
Chris Kolenko - Sunday, February 22, 2009 - Hey Rob,

Everyone has been saying really nice stuff about this project, so I'm just going to state something. It's still NOT finished.

You know how i feel about your stuff.. I think you're great, everything you've done has been an inspiration.

I don't know if you've achieved what you set out to achieve by what was the main goal of the MVC Store Front.
To sell stuff

1. Can i sell stuff?
2. Is the end client going to be happy?

at the end of the day my client doesn't care about DDD or all these man design patterns. He/She just wants to make the big $$$$$$$'s.

I have a friend who is still using ASP, yes classic stuff. He's clients love him, I'm thinking to myself he's a B Grade developer, however he knows how to finish.

being a good developer is %30 Skill Set %70 Delivering on time with no bugs.

That's my opinon
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - With MVC and SubSonic I bet 85% of asp.net developers can build the same site cheaper, quicker and with less bugs than a developer using classic asp and ado. Which, ultimately, means less money for the client. Additionally, IIS7 with asp.net can scale much better than IIS5/6 with Classic ASP so once that storefront gets massive traffic (which, why wouldn't it of course...) asp.net/mvc will handle it much better. This can also be equated to cost through a performance/hardware metric. So to revisit the notion of success and development... I think there is a third and fourth element... price & performance. The trick is keeping one low and the other high! asp.net (mvc) allows just that.
Gravatar
Chris Kolenko - Friday, April 10, 2009 - hey Mr BBQ Chicken Robot,

Your reply to my comment doesn't make sense.. I agree with you 100%.. but at the end of the day a client isn't going to pay you for a half done system.

all the client wants is to make money that's why someone goes into business.. what Rob has done is show the world different ideas and my favourite Store Front vid would have to be the one with the Birthing Process..

bottom line is unfinished product === failure!!

sometimes you have to suck up a few poorly writen lines of code just to finish the project
Gravatar
robconery - Friday, April 10, 2009 - True and true :) but at the same time what I'm suggesting is NOT letting
your client find you with your pants down - WRITE TESTS.
Tests don't take that long - I did 30 of them in 40 minutes. No excuses...
test your stuff. "Git er done" isn't what pro's do - they get it done and do
it right :). And I'm not saying you're not a pro - not at all. "Done" just
has to include testing is all...
Gravatar
Mauricio Rodriguez - Monday, February 23, 2009 - Have you considered to plug-in the Entity Framework in the data layer???

Congratulations! Great webcast!!!!!
Gravatar
TS Smith - Tuesday, February 24, 2009 - I am a real fan of your works but I think working source code might not be relevant here. We could've learned a lot from your source code that might not be even working while watching your screencasts and blog posts.. But with rare release of source code, I am not sure I can easily connect your screencasts/blogs to the real thing.
Gravatar
Ben Cherry - Monday, March 02, 2009 - Rob -

Thanks a bunch for all your work on this project, it's incredibly useful to me.

Anyways, I'm posting looking for a suggestion. I'm building an application using the model you've presented here (with some tweaks). It's a different sort of app, so I'm hoping this all works out for it, and I'll certainly let you know of any challenges I run into (especially my solutions to those challenges).

So, my app involves an MVC web application, which will be hosting a Silverlight app. I've built out repositories, and services just like you've presented here. Currently, I'm presenting the data to Silverlight through a WCF service hosted in my Web application (under Services/Private, we'll have a public API later). But, my WCF service is essentially the same as my normal data service that I've built in the services library, except that it is in a .svc file (with a .svc.cs codebehind), and all of the methods have [DataContract] on top of them. The WCF service simply calls the underlying services layer's methods, so it's a pretty simple solution. However, I'm wondering if it might make sense to turn the services (for example, CatalogService in your app) into a WCF service, having the web application just call the class library directly through code, so that one service is available both straight through the compiled assembly, and exposed on the web site as well, as a WCF service. The upshot is that I don't have to manage changes at two different levels, and I reduce redundant code. However, there must be a downside!

I've tested that this, does, in fact work, but I'm wondering if there are any undesirable implications of doing it this way that I haven't noticed. Any ideas?
Gravatar
Bill Patterson - Monday, March 02, 2009 - Rob,

Thanks again for doing this project and seeing it through to its completion. I have an eCommerce site that I volunteered to do for a friend and I think your solution may be idea.

She has a PHP/MySQL site now, but is refocusing her company to deliver services to at-risk people and also sell a sub-set of the products she used to sell. It needs to intergrate with a results-based management and tracking system for case management that I'm developing for her using the MS Entity Framework.

She needs to have regular web pages as well as catalog and I think your system will allow her to do this.

Lastly, it would be useful to have some sort of purchase order or "other" payment method where a code (or PO Number) could be entered.

Thanks again! I can't wait to see the results of all of your work. I have learned a lot from you!

Bill
Gravatar
Tormod - Tuesday, March 03, 2009 - I think the effort is great.

Bringing the Agile and TDD into traditional boiler plate app. Making it possible to actually trash long overdue and smelly code that managers of small businesses cling to. "It works fine..... it's just this little thing which I'm sure will be no effort at all after you've heard my motivational speech..... even though the guy who originally wrote it sold it at a discount with the clause of never being contacted for any form of support...."

This will save me a lot of headache.
Gravatar
Harish - Thursday, March 05, 2009 - Hi Rob,

I am very much impressed and inspired with your work .. basically i am a java developer .. but due to some project work it happend to see your blog and started the work in ASP.net .. and i am continuing it happily .. I feel that i should continue to work in asp/c# for further works ..

Expecting lot more from you soon .. especially DDD
Gravatar
PK - Monday, March 16, 2009 - Not long, now peeps :) MIX09 is basically here (which means, so will the code!)
Gravatar
robconery - Tuesday, March 17, 2009 - Yep - just finished my demo stuff today and am powering up my PowerPoint. I
think you'll like it :)
Gravatar
Petr - Tuesday, March 17, 2009 - Can we watch your presentation over internet?

Source code will be on codeplex?
Gravatar
PK - Saturday, March 21, 2009 - Heya Rob :)

It's the weekend here in Australia .. so have you finished your demo @ MIX09? Any news on how it went? any code / session vid available?

(just trying to get these q's in quick before u go on a long. most desereved, vacation with the family, which i'm guessing cause most of the other boys (scott, phil, etc) sound like they are :) )

PS. Pre-orded the book, out of resepect and interest.
Gravatar
kitsune - Saturday, March 21, 2009 - Codeplex was down for maintenance yesterday, so he couldn't upload the source (it looks like it from his twitter updates)

"Trying to load demo bits to Codeplex... and it's down. Yay!"
Gravatar
Anthony Main - Saturday, March 21, 2009 - Thought the release was due at Mix, no sign of the session video on the mix site and still no source code, come on we're desperate for codage!
Gravatar
kitsune - Saturday, March 21, 2009 - Codeplex was down for maintenance yesterday, so he couldn't upload the source (it looks like it from his twitter updates)

"Trying to load demo bits to Codeplex... and it's down. Yay!"

Patience is a virtue :)
Gravatar
georgia - Saturday, March 21, 2009 - Being a child asking cookies, codeplex seems working now. show me the code please :-)
Gravatar
kitsune - Saturday, March 21, 2009 - The code is online... but it looks.. strange?
Gravatar
georgia - Saturday, March 21, 2009 - Got it! A lot of changes to digest.

Thanks so much for the good stuff, Rob
Gravatar
Andy - Sunday, March 22, 2009 - Wow, I'm confused. Just looked at the source on Codeplex checked in from 21st March.

I've been pleased to see the NerdDinner and Contact Management samples come to some consensus on Repositories, Services, Validation, LINQ and the like. And had thought MvcStorefront was going in a similar direction.

Has some "strategic" decision been made to realign the Storefront sample? The source really confuses me, so I suppose I'll have to be patient and wait for Rob's blog posts.

[1] using Microsoft namespace opens up "approved application" can of worms like with Oxite?
[2] what no LinqToSql sample repositories? No IQueryable for filtering and to play nice with ADO.NET Data Service and .NET RIA Services?
[3] using T4 for database generation, object store, themes, widget and module features seem to be going off on a tangent from a simple ecommerce reference app?

Did Rob write this or the other Commerce Starter Kit guys?!
Gravatar
kitsune - Sunday, March 22, 2009 - The storefront session from Mix09 is online now, gonna watch it now, might explain some things:

https://content.visitmix.com/2009/sessions/defa...
Gravatar
robconery - Sunday, March 22, 2009 - Still have repos, using the MS namespace in anticipation of other things.
Moved off linq to SQL to broaden DB support.
The tangent is CMS stuff - watch the presentation :)
Gravatar
Andy - Monday, March 23, 2009 - I've listened to the presentation, and agree that .NET applications should be more compelling. And simple plugins and theming, which have really helped PHP apps like Wordpress flourish, would be good. And an application or driving force to help foster these agile/simple ideas would be great.

But .NET development is getting very compelling already, in particular with elements of code generation and better tooling. And cleaner XHTML in Webforms 4.0 and MVC.

On the specifics of the Plugin work, how would the App_Code dynamically compiled Plugin approach work with Windows Azure style deployment? Where pre-packaged applications have to be deployed, without FTP or normal file access?

And back thinking about the Framework stuff that's coming out... though running the risk of trying to fit in a more complex framework piece of tech in the small app... how would it eventually play nice with MEF?

On the CMS stuff, I'd be keen for a simple Personalisation/Content Targetting architecture. As adding Widgets/Modules to every page individually gets unmanageable. It would be nice to target these by user or site area or product category with the beginnings of a little rules engine, which cuts out the need for some of the drag-drop interface customisation. Though I realise that's the route many open source products go, in their Admin areas.
Gravatar
robconery - Monday, March 23, 2009 - Looking into all of these things (Azure, etc) - specifically the CMS stuff.
It's hard to implement a "backbone" while making sure you still pay the most
attention to the commerce stuff.
Gravatar
jc - Wednesday, March 25, 2009 - I've been following this series since the very first post, and just downloaded the latest code. I really hope you take this comment in the spirit in which it is sent, which is constructive criticism, but this series of post has become a prime example of the way to not ever finish a project. If you're continually saying "Ooh, look, shiny new pattern!" and changing your entire design and/or architecture midstream, you'll never finish! At some point, you just have to say "this is how we're doing it" and get it done.

I recognize this, because I often have the exact same problem of getting sucked into the rabbit hole of the continually improving design. But at some point a deadline pops up and I just have to get it done.

You said very early on that you considered the community to be your customer. I have to say that if I were truly your customer, I think I'd have fired you after the third architecture change because I'd have been like "I paid this guy to write software, not experiment". Or worse, I'd think you just didn't know what the hell you were doing if you have to change your whole strategy every few weeks.

Anyway, just to be clear, I have enjoyed reading the series and will continue reading it. It does give a good intro to some patterns and tools I didn't even know existed. But, if your plan is to have a finished e-commerce starter kit, at this rate it's never going to get done! Hard to hit a moving target, you know?
Gravatar
robconery - Wednesday, March 25, 2009 - LOL Another person fires me :). I like where the Storefront ended WRT to
part 26 - it was tight and I liked exactly where it was. I would have kept
going with what I had if I was working in a company setting and tightened it
down, etc.
The difference with what you see is that we're making the app a community
app now - which to me is an entirely different focus. If you watch the MIX
presentation, we have a very clear goal - which is completely different then
most "enterprise" apps have: the ability to quickly change/theme/tweak.

I do appreciate your feedback (it's the 3rd time I've been fired!) - the
main thing I'd like to remind you is that I'm not working as your consultant
:) - I'm more or less trying to "educate" from a position of putting myself
on the firing line :):). Bit of a difference - if *you* were my client, I
wouldn't be doing this.

Anyway - I have a series of posts explaining this in the cue - first up
today.
Gravatar
jc - Wednesday, March 25, 2009 - Now see there, I knew you'd take it the wrong way. :) Wasn't meant as a personal attack. Believe me, I do the same thing. I'm like Ricochet Rabbit sometimes bouncing from one architectural idea to the next. I don't have the community watching me to kick me in the ass when I do it though! I really appreciate you putting it out there like this.
Gravatar
robconery - Wednesday, March 25, 2009 - Oh no! I took it the way you meant it :) - sorry if I didn't make that
clear. My point was simply that if I did work for you, I wouldn't be
bouncing all over the place :). I sort of have to when doing things like
this because people have a LOT of questions so I want to cover everything...
Anyway - I've stayed true to TDD/DDD, even up until now. The only major
thing I've shifted is that the biz logic is in plugins :).

Either way - I'm workin up the webcast now...
Gravatar
jeff - Thursday, March 26, 2009 - Can't wait to read your first post. I like the preview we got on the Mix video.
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Is this "The Donald"? Is that you Mr. Trump!? Didn't know you were a tech, well if you don't like this work then you can move forward as Rob's been fired and you can focus on a project that's done... check out Ruby on Rails... ask the guys over at twitter how that worked out ;)
Gravatar
jmatharu - Thursday, March 26, 2009 - Still no source code! What's happening! The TICKS have tocked away!

Can you give us more information on when you will have this completed?

Thanks for an engaging and thought provoking series.
Gravatar
robconery - Thursday, March 26, 2009 - The source has been up all week :)
Gravatar
jmatharu - Thursday, March 26, 2009 - Thanks



________________________________
Gravatar
Jon Davis - Monday, March 30, 2009 - Where? (I didn't attend MIX.)
Gravatar
robconery - Monday, March 30, 2009 - http://mvcsamples.codeplex.com
Gravatar
YZ - Sunday, March 29, 2009 - Good stuff! Will check out the newly posted code.
Gravatar
MrAnonymous - Monday, March 30, 2009 - Dude! Where`s da code?22 ^^
Gravatar
David - Monday, March 30, 2009 - Hey Rob, your hair looked much better in 06... :)
Gravatar
Emanuele - Monday, March 30, 2009 - Hi Rob,
compliment for the storefront project.

I have a question about the concept of aggregate defined in DDD.
"An Aggregate is a cluster of associated objects that are treated as a unit for the purpose of data changes"
For this purpose in storefront you have created the IAggregateRoot interface used to mark an entity as an
aggregate root, and you set Customer and Product entities as aggregates:
- customer contains shopping cart entity,
- product has related products, cross sells and recommended entities.

First question:
the definition of the aggregate says that "associated objects are treated as a unit for the purpose of data changes",
does it mean that if I save the customer I save also the shopping cart?
If so the SimpleCustomerRepository doesn't consider customer and shopping cart as a unit, it has
Save and SaveCart methods respectively for customer and shopping cart entities.

Second question:
an aggregate could be also the order entity, is it right?

Rob can you publish a roadmap about storefront evolution?
I'm interested to the implementation of an Entity Framework repository :))
I like very much the first version of storefront with the use of IQueryable extensions
Gravatar
BB - Tuesday, April 07, 2009 - What have you done!!! It is no longer an elegant solution.
Gravatar
robconery - Tuesday, April 07, 2009 - Why not?
Gravatar
bbqchickenrobot - Thursday, April 09, 2009 - Write one better since you obviously know what an elegant solution would look like. ;)
Gravatar
Paul - Thursday, April 09, 2009 - Wow there are some arseholes about, we get all this excellent technology to impress our bosses, not to mention god knows how much completely free tutorial's and examples of best practices on ASP.NET and STILL people moan.

How about Rob comes to your organisation, works for 6 month 24 hours a day for free and then allows you to claim the work as yours? Would that please you? Give the guys a break, your an embarassment to yourselves.
Gravatar
aherrick - Monday, February 16, 2009 - Looking forward to reviewing the complete source. Thanks for all the work.
Gravatar
GinoIcis - Sunday, March 22, 2009 - Hi Rob,

Got your MIX09 video and the new AdventureWorks source code. Thanks for all the hard work.

"Simplicity is compelling" keep it going...I really hate YAGNI.