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

Kona Screencast 1: It’s Baaaaack!

Friday, March 27, 2009 - This may be a really dumb thing I've just done - but bear with me because I think it makes sense. I knew this point was going to come when I first started the MVC Storefront - the point where I'm no longer building "an MVC sample app" and I change directions to build a flexible, pluggable Open Source community application. So I decided to mark the occasion by changing the application name from MVC Storefront to Kona. This screencast is all about that change and what's become of the MVC Storefront. What's Kona? Aside from being one of the most beautiful places on the planet with one of the best brew fests EVAR, Kona is the name I chose one late night when thinking this whole thing over. Originally I wanted to go with "Hilo" (the 2nd largest city in Hawaii and also a hub of KONA_tilecommerce for many, many years in old Hawaii) but everyone I showed it to kept asking me what "Hi Low" was all about.  Indeed it did seem confusing - so I went with Kona. Resuming the Screencasts One thing I've really enjoyed was being able to screencast the "learning process" as I built out the MVC Storefront. I can easily say that I have learned more over the last year than I have *ever* in my career. In fact I'll say I learned 5 times more - it was a ton of fun and I don't want to stop now! There are so many areas to cover that I think would be interesting - such as:

  • Cloud Computing and Azure
  • Analytics and this F# Thing
  • Deep dives into javascript and jQuery
  • Deployment issues
  • Mono and what it means to us as developers (I have a message into Miguel De Icaza to see if he'd do a screencast with me)
Crazy Town I'm trying out some different things with Kona, and these are:
  • Commitment to simplicity. I think that ASP.NET developers tend to fall into the rut of "producing software" instead of producing a compelling website. So much focus is given to the backend that the front end is "left for the turtlenecks" - and it shows in the popular apps that are out there these days. I'm really going to try to emphasize the user interaction as the driver - not my fear of the architecture police :).
  • Commitment to extensibility. This resolves down to plugins and theming - something that ASP.NET developers don't focus on very much. I want to enable a "Notepad/FTP" experience, where you can alter/fix/maintain your application easily. I know you have a life and your time is precious - you shouldn't have to dive deep into the application to figure out how tax is calculated :).
The ideas in the webcast are somewhat new and challenging and I'd like to say, once again, this isn't supposed to be "guidance". I tried to tackle those issues with the Storefront. This, instead, is my attempt at building something compelling, usable, and damn sexxy! Your feedback, as always, is a major motivator! The Code Is Here Download Here (40 Mb)

Related


Gravatar
robconery - Monday, April 06, 2009 - Good stuff! Jeff has a great post on Source Control here:

http://www.codinghorror.com/blog/archives/000660.html
Gravatar
robconery - Monday, April 06, 2009 - I do try to slow it down some - sorry bout that! I'll keep that in mind :)
Gravatar
Jun1st - Monday, April 06, 2009 - An awesome screencast and I'm exited about the new features you mentioned.



One more thing, you talk a little bit fast. Could you please solw down your talking speed a little bit, which would help foreigner's, like me, better following you :)



Hope to see the next screencast soon
Gravatar
wpatterson - Monday, April 06, 2009 - I am very open to looking at and trying new things, that is why I am following your development of the Kona solution.



I am also willing to try something other than Source Safe. I have to say that I have no real complaints with Source Safe. It seems to work as advertised and I find it every easy to use. That doesn't mean that something else might be even better to use.



As far as DB schema changes, I know Source Safe won't help. I have heard that this can be done with the Team system, so perhaps TFS will do it. I have access to TFS, but haven't used it yet. I will try it.



If I have a system I know every little detail about, then I know the ramifications of changes and what needs to be done to re-deploy. I have to say I don't know enough about your implimentation yet to know how any customizations, like new pages I make might interact with changes you make. To me, that is a bigger question than which source control solution to use. I think I need to know this before I could ever actually deploy a system based upon your solution. Thanks!
Gravatar
robconery - Sunday, April 05, 2009 - Right - I know the Source Safe thing wasn't about SubSonic - that was me

trying to save your soul :). Source Safe is *EVIL*. Plain, pure evil and you

should run, at very high speeds, from anything to do with Source Safe.

Seriously. I'll promise you this: upgrade your source control system and

you'll be a hero. Subversios (free), TFS - Whatever! Back away from Source

Safe... slowly... no sudden movements... it will eat your face. If you're

employer says "use Source Safe or go away" then go away. It will put you in

your grave a good 10 years before your time.



That said :)... DB schema changes - needs to ripple to the team right? How

does Source Safe do that? There, my friend, is your problem. If I may be so

bold - please accept this invitation to join the rest of the development

community in 2009. I know that 1994 might be comfortable and fun, but 15

years has bought us a lot in terms of source integration and team coding ...

I really just am not sure how I can explain it.



--------------------------------------------------
Gravatar
wpatterson - Sunday, April 05, 2009 - Rob - I wasn't saying that I wanted to use Source Save with your solution. Around here, you use Source Safe or you don't get the job.



The point I was trying to make is that when I am in charge devloping or mainting an application, I know what changes need to be made, so I know if the database schema needs to be changed and what modules need changing. However, with your solution, i you make some changes, I probably won't have a clue about what exactly has changed. If I have create some new pages or modified some, will have have to start all over and add my changes to your updated solution? Pherhaps it is my lack of understanding on how the whole system works and the pieces that relate to one another that is causing this confutsion on my part.



I'm looking forward to the upcoming screencasts.



Bill
Gravatar
Eric - Saturday, April 04, 2009 - Very nice screencast and project ! It's great that you're taking asp.net mvc in a whole different direction than the examples we've seen previously :).

Gravatar
robconery - Saturday, April 04, 2009 - Hey William - egads, Source Safe? Is there a way I can convince you to NOT

use Source Safe?



There are ways to do this - in fact I'll cover it in my next screencast.
Gravatar
wpatterson - Saturday, April 04, 2009 - This eCommerce solution looks great and I know that more will be added to it and things will change as it develops and martures. I would really like to use this as a basis for a site for a friend, however, I was just thinking about it and wondering how I will know when I can depoply it and add my cusomizations to it and not have to start all over when a new release comes out.



With my usual web development, everything is in Visual Source Safe and I have a working directory that I can test things in. Once I make somce changes and thest them, I check them in to VSS, and then just deploy the web site.



That works because I know all of the changes that have been made. I will I know if a change has been made in the system, including the database and how do I then merge things?



Thanks again!
Gravatar
Eker - Friday, April 03, 2009 - Hooray! Now I can continue to look through and learn your code. I'm trying to be a "big boy" about this project. Maybe one day I'll even answer questions! It seems like your code can easily accommodate a "one database several website" solution.
Gravatar
robconery - Thursday, April 02, 2009 - Thanks Geert :). I think I'm actually sharpening my focus because, in the

end, it comes down to selling stuff. We, as developers, have no idea what

our clients will do to sell things - how they want a page arranged, which

product appears where, etc. Therefore I'm concentrating on the most

important thing (in my mind). In the end all the tech stuff doesn't matter

if products don't move...
Gravatar
Geert van der Cruijsen - Thursday, April 02, 2009 - I think my last comment was a bit negative, i'll try to explain it a bit better:



I really liked the mvc storefront screencast series because every screencast added a little part to the storefront application. now with Kona you added a really big chunk with templates / cms and all that. What i was trying to say is that i would like to see the changes a bit more explained in a few screencasts then adding new features (ok everyone likes new features but maybe both then? ;) )



what i was trying to say with my comment on the cms part was that i really liked the things you explained about how you think webstores/commerce applications should work with some really good examples showing amazon etc. Aren't you losing focus on the store application with the cms and all because i really liked the tips about how to build a commerce application because i think you really have some business knowledge about this and i would like to hear more about it :)
Gravatar
robconery - Thursday, April 02, 2009 - The checkout bits aren't fully wired up yet.
Gravatar
Eker - Thursday, April 02, 2009 - I'm new to MVC and dotnet. And I realize this is a work in progress.

Does anyone else have this problem on checkout:



Exception has been thrown by the target of an invocation.

if (method != null) {

result = (TResult)method.Invoke(foundPlugin, input);







Line 13:

Line 14: //make sure there are more than one item

Line 15: result = order.Items.Count > 0;

Line 16:

Line 17:



Gravatar
wpatterson - Thursday, April 02, 2009 - I've learnd about results-based management and am incorporating it into a new web site because the goverment agencys that might fund the project will require it.



I just found this article, Results-Based Interaction Design (http://net.educause.edu/ir/library/pdf/EQM0847.pdf) that talks about a new approch to web sites. It talks about education web sites, but it could be eCommerce sites. Once is selling an education, the other products.



I plan to develop an eCommerce site based upon Kona and I an interested in incorporating some of the suggestins in this article.



Thanks Rob!

Gravatar
Jesse Foster - Wednesday, April 01, 2009 - Sweet. I like the fact that you arent scared to do the "uncool" thing like app_code. BlogEngine really brought it back for me, and its cool to see it thrive here. In BlogEngine, they use custom events to trigger plugin actions, like the loading of a page or something, but that requires a startup mechanism for the plugin to attach to events in the system.



This is really good stuff.



Jesse Foster | jf26028

Gravatar
robconery - Wednesday, April 01, 2009 - The hooks we put in should be able to handle this. For instance the

"OrderReceived" hook will call "Plugins.Process("OrderReceived")" and you

should be able to chain in whatever you like - including posting to Twitter

:).
Gravatar
mike - Wednesday, April 01, 2009 - After a purchase, a web service should be called that will put an order into an ordersystem at the warehouse. All discount actions should be twittered/tweeted. I don't know, I've never run an ecommerce site, but that's the idea, all the stuff people can come up with, that wasn't anticipated.
Gravatar
robconery - Wednesday, April 01, 2009 - This is the way I'm rolling out Kona: investigating new ways of doing things

and taking you with me. I'm not here to write your apps for you, but if

you'd like to use what I've done to help - great.

Oxite is doing something a bit different than what I'm working on here.
Gravatar
Eker - Wednesday, April 01, 2009 - I can't locate several references. Could it be because I'm using windows 7?

Or do I need to install extra assemblies from somewhere?
Gravatar
Leonid Shirmanov - Wednesday, April 01, 2009 - It would be really nice to see how well MEF could handle plugins in ASP.NET MVC Thanks!
Gravatar
Geert van der Cruijsen - Wednesday, April 01, 2009 - I totally Agree with GJKatPlay



On Mix09 you asked us to just use the application instead of to marry it. Well its pretty hard to get used to the application if everything keeps changing that much every screencast. ofcourse F# and Azure is pretty cool but isn't it better to just have the thing ready for people to use.



Also a comment on the CMS part of Kona. Aren't you building the same thing as Oxite is trying to do? I haven't looked at Oxite that good, i only know it's also build as a test application for ASP.NET MVC like the mvc storefront was started from. Maybe join your projects so some people can focus on the CMS part and you can focus on the storefront instead of all the other things you are doing now.



Geert
Gravatar
robconery - Tuesday, March 31, 2009 - I'll get right on that...
Gravatar
GJKatPlay - Tuesday, March 31, 2009 - I love having the screencasts to learn from but, would it be possible to get it to a working e-commerce application first before you start branching off in so many different directions.



I would love to be able to use this as a base for my storefront application, but I can't wait for 6 months, a year, etc for it to be complete.



Thanks
Gravatar
hudo - Tuesday, March 31, 2009 - I would really like to see NH repository!

Writing SQL code (at least basic, simple queries), when you have all those cool ORMs tools that just works, it's at least waste of time imho. And it really look ugly and confusing.

This new "architecture" is really something new in .net OS world and it look interesting. I didn't see anything similar on codeplex. Kinda refreshing! It almost reminds me to my php/asp days and quick and dirty solutions.

Keep a good work!
Gravatar
arezkiStoreFront - Tuesday, March 31, 2009 - Rob,



I think we are on the same wave length, it was just me not explaining what I meant.



Thanks

Yaz
Gravatar
robconery - Tuesday, March 31, 2009 - I spose we can pound our chests all day and reference whatever books we want

to - but in general if you're testing a unit of functionality is should

isolate it and not fail because the connection to your DB failed.

Again - the tests you're talking about are integration tests, which means

"I've tested my logic and it works, now I want to be sure it works with this

system" and yes, the Rollback stuff works marvy. So does building the DB

from scratch every time.



Hopefully this makes some sense?
Gravatar
robconery - Tuesday, March 31, 2009 - Hey Paul - just double-click the player and you'll get fullscreen :). I

usually mention that and forgot to this time ;).

RE modules - it's just my messiness. Forgot to clean up that folder. And yes

- we're working on the contribution stuff now :)
Gravatar
Paul - Tuesday, March 31, 2009 - Rob, I watched this last night and had to sleep on it before responding...



Just... wow. Great work. I'm really looking forward to the future screen casts.



A couple of thoughts / questions.

1) Could you please make your video player able to blow out to full screen? Some of the cast was really hard to watch.



2) I was looking through the code and saw the stub for 'modules' and was wondering what the intended use of them was. It looked like a way to package up a set of widgets for rendering on a single page, but I wasn't sure.



3) Is there the possibility for community contribution on this in the future?



Thanks, and thanks again for the great work. I think the .Net community has such a small body of knowledge on the flexible /extendable / dynamic apps when compared to the PHP and Ruby guys, that this is like a breath of fresh air.



Paul
Gravatar
arezkiStoreFront - Monday, March 30, 2009 - This beats me, I have been doing Test First (in the last 9 years) as we used to call it or TDD and we always did both mock the data access layer but also unit tests our data access layer to see whether the inserts work or deletes work (using rollbacks). If you look in James NewKirk book on TDD he talks about that. He took part in writing NUNIT and he has written XUNIT. In NUNIT now there a is DataRollBack Attribute. MbUnit also includes a Rollback attribute.



[Test, DataRollBack]

public void TestDataRollBack()

{

....

}



Cheers

Yaz
Gravatar
PK - Monday, March 30, 2009 - @Rob: Any chance you could also do a screen cast to explain this further? I totally agree with unit tests NOT talking to the DB. But whatabout a FakeRepostiory (eg. in memory lists, etc)? Using DI to switch between the two .. and the unit tests fire against that?



When do u do intergration testing? Is that a SPIKE? Where does the Intergration Test go in the solution layout/heirachy?



And like it was mentioned about, go with VARBINARY(MAX) instead of IMAGE. U said u've changed it already ... just not sure if u've gone the (MAX) path.
Gravatar
robconery - Monday, March 30, 2009 - Went with binary due to size - XML can get out of control :)
Gravatar
david - Monday, March 30, 2009 - Also, the flexibility of the XML data type can't be over looked either. We are using the image data type to store a serialized NameValueCollection and finding access to the data impossible via SQL. Using varbinary might be good for hiding and/or making it difficult for unauthorized data changes but maybe not so good if trying to provide a flexible open design.
Gravatar
robconery - Monday, March 30, 2009 - No - you actually don't and moreover you shouldn't. These are integration

tests and should be done when integrating a system into your application. It

may sound nitpicky of me but it's super real-dealio important! You might

want to create a separate project for each system you integrate so that you

know it works and there are no issues.

I'm going to be a bit more "opinionated" on this one - unit tests need to be

isolated from as many systems as possible...
Gravatar
arezkiStoreFront - Monday, March 30, 2009 - Yep I agree with you in general we can use mock objects to test these type of scenarios. However, in real life projects you always need to test the dataAccess layer.

Gravatar
robconery - Monday, March 30, 2009 - Right - in general you don't want to hit the DB when unit testing :)
Gravatar
arezkiStoreFront - Monday, March 30, 2009 - Rob,



You are coorect, but I was trying to UNIT test create connection and it did not work because it was not finding the database. therefore any UNIT test that make a call to the database will not work



Cheers

Yaz
Gravatar
arezkiStoreFront - Monday, March 30, 2009 - I looked in there and there was only a CommerceDB.bak and when i tried to restore it did not work
Gravatar
robconery - Monday, March 30, 2009 - Why are you unit testing the DB? The issue you're seeing has to do with the

test harness trying to find the DB and not finding it...
Gravatar
robconery - Monday, March 30, 2009 - Only my ignorance :). I'll change it to varbinary :)
Gravatar
robconery - Monday, March 30, 2009 - It's in the App_Data folder...
Gravatar
Daniel - Monday, March 30, 2009 - I've tried that Object Store pattern before, and like it, but ran into versioning issues. Specifically, say you rename a property or decide a stored class needs to be structured differently. If you change it, then when code deserializes an "old" stored object, it can cause problems. DataContractSerializer has smarts to handle some of that, but it can be tricky, especially if you have an installed user base that already has objects serialized in the "old" schema.



In general, I'd love to see the end-user's upgrade story addressed - ways to handle database migrations (or "schema migrations" in the cloud ;), etc. That's an area that still trips me up often. Looking forward to this series.
Gravatar
Yazid - Monday, March 30, 2009 - Hello again,



Solved the problem by copying the Kona.mdf to C:\Downloads\MVC\mvcsamples-22681\trunk\Kona.Tests\bin\Debug\



Not a very good solution, but it works



Cheers

Yaz



Gravatar
Yazid - Monday, March 30, 2009 - Hello,



I tried to UNIT test the DbCommon and it throws an exception



Here is my code:



DbCommon dbCommon = new DbCommon("ObjectStore");



DbConnection dbConnection = dbCommon.CreateConnection();



Assert.IsNotNull(dbConnection);





An attempt to attach an auto-named database for file C:\Downloads\MVC\mvcsamples-22681\trunk\Kona.Tests\bin\Debug\Kona.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.



TIA

Yaz
Gravatar
david - Monday, March 30, 2009 - What is the reason for using the image data typein the object store? Since this is being depreciated wouldn't it be better to go with varbinary?
Gravatar
BearingPoint - Monday, March 30, 2009 - rob's style screencast back again!

I really enjoyed this screencast as well as the MIX09 presentation too



thank you for all you've done.
Gravatar
HDE - Sunday, March 29, 2009 - This is awesome. Hi Rob, I am working on something pretty similar but mine is commercial.
Gravatar
Yazid - Sunday, March 29, 2009 - Hello,



Great series, I went to codeplex and downloaded the code and cannot find the database. There is a bak one and i tried to restore it and it does not work. Has anybody got the database that would work with the previous series.



TIA

Yaz
Gravatar
PK - Sunday, March 29, 2009 - Hi Rob,



Can't wait to see how we can do some Azure stuff ... the db side of things gives me the scares -- i love having full access to the db with stored procs, etc.. so my little fail undestanding of azure makes me think we loose this and have to do things way differently?



Deployment issues are the _biggest_ problems for the ASP.NET product suite IMO. Especially if you have a web farm :( The new deployment stuff on the horizon looks like it will bring a tear to my eye.



Now .. to some requests for a fill-in / update screencast (yeah, I know i'm asking a lot here)

1) Explain why you're using IAggregateRoot and i think i saw an IEntity. Where did u get this idea from and how are you using it and why.

2) What happened to your 'Services' project? What happened to your Workflow project? (i'm not looked at the new code in detail, just browsed it online, @ codeplex).



Thanks Rob and keep up the positive work :)
Gravatar
Padgett - Sunday, March 29, 2009 - I'd like to contribute. How should I or anybody else go about doing so?
Gravatar
robconery - Sunday, March 29, 2009 - It's Silverlight - that's what it does and it's also the point of the post

:).
Gravatar
Kevin - Sunday, March 29, 2009 - Why load the video every time the page loads? What a was of bandwidth.
Gravatar
max - Sunday, March 29, 2009 - never mind - more like an idiot than crazy
Gravatar
max - Sunday, March 29, 2009 - Am I crazy or missing something? All I see at http://mvcsamples.codeplex.com is MVC Storefront Preview 1 and it is different from what I am seeing in the screen cast
Gravatar
wpatterson - Sunday, March 29, 2009 - I've had a chance to work with the system now and it looks really great! I especially like you philosophy of making it as simple to get going as possible.



This is the perfect basis for a system a friend needs that brings community resources together to help ex-prisoners and their families as well as highlight resources she sells that complment the programs. I could use some additional content times and am happy to work on doing it.



I've done a ltt of work in SharePoint and it has "zones" like you have on pages, but then you select from a list of WebParts to add to the zones. They are sort of like the pluggins you have, in that you can add new ones (including 3rd party) without rebuilding the system. You use VS to create WebParts. Thanks again!
Gravatar
Gokul - Saturday, March 28, 2009 - Rob

You just seem to amaze me with your screencasts all the time. Right from Subsonic to Kona!

This is a very interesting topic. Just keep it going.
Gravatar
kriswill - Saturday, March 28, 2009 - It would be great if you made your IoC a little more pluggable. Common Service Locator is one option:



http://www.codeplex.com/CommonServiceLocator



They have a variety of adapters which allow you to choose which IoC container implimentation you like. Then in your code when you resolve the types you use the Common interfaces to access them.
Gravatar
Damir - Saturday, March 28, 2009 - Thanks for this one Rob, good stuff as usual. I've just seen you've ditched tinymce from the source...

I think You should really (pretty please) consider plugging in the Wym editor (http://www.wymeditor.org/).

It's already got a nice dose of jQuery in it, and the code it produces is far better than any other free (and commercial for that matter) stuff.

It'll be a great pleasure watching this one develop in front of us...



Thanks again

Damir
Gravatar
wpatterson - Saturday, March 28, 2009 - Thanks Rob!

I had MVC Beta installed because I had successfully opened the MVC Storefront preview many months ago. I have also switched to the Team versions of VS 2008.



I uninstalled the beta version and installed MVC 1.0 and everything works great now!



Now I can look at how you have sone some things. I want to see what it would take to add more type of things to sections or zones on pages. I could use also use a product list that listed the products vertically, so I could have extensive HTML code in the center about programs, with appropriate products on the right hand side.



Do I post problems on the CodePlex site? For example, the Parent of a page doesn't seem to work.



Thanks for the temendous work you have done on this and it is only going to get better! Bill



Do I post inconsitencies or problems I find on the CodePlex site? For examp
Gravatar
Kevin Radcliffe - Saturday, March 28, 2009 - Rob, great job on Kona, as well as the screencast and MIX talk.

I think you've done very well keeping things simple, and easily admin extensible. I especially like the way your plugins work.



It would be amazing to see your plugin concept extracted/extended to allow admin composition of other elements of the system (views, reports come to mind). If it could be separated to work with other types of projects (WPF/Silverlight), that would be incredibly useful (think simple admin composed ruby based views/reports in Silverlight, wow!)



However, I also understand that part of what makes the current design work is its focus on simplicity and ease of use.



Great job, keep up the good work!
Gravatar
robconery - Saturday, March 28, 2009 - Do u have mvc installed?
Gravatar
wpatterson - Saturday, March 28, 2009 - Rob,



I want to start learning from how you have created your system, so I downloaded the most recent source today and opened it with VS Team 2008 SP1. After browsing around, I tried to open the detault.aspx module in a browser. I got 6 error messages about the follwoing namespaces not being found - ValidateInput, ValidateInputAttribute, KonaPluggin.



I must be doing something wrong. Can you please steer me in the right direction. I didn't see a list of software prerequisites. Is there something utilized that I need to install?



Thank you!



BIll
Gravatar
John - Saturday, March 28, 2009 - You're going to be in big trouble when Steve B learns that you named your storefront after a blend of coffee. He might suspect you of being a spy ;-)



I would have gone with IZ.
Gravatar
stevewillcock - Saturday, March 28, 2009 - Nice to see you back on this, the CMS aspect looks interesting!
Gravatar
robconery - Saturday, March 28, 2009 - Yes - I'm working with Hammet and Glenn B to see how we can use it with what

we're doing!
Gravatar
robconery - Saturday, March 28, 2009 - Yes - it's up at mvcsamples.codeplex.com.
Gravatar
robconery - Saturday, March 28, 2009 - Thanks :). No - no ORM plans for now but Karl Seguin did offer to pop in an

NHibernate repo for us. Maybe I'll get him to screencast it with me :)
Gravatar
robconery - Saturday, March 28, 2009 - I did get a question about that - yes. We're not using session for anything

so that's one thing - but the app stop/recompile is another. The major

question is - how often will this happen on a live site?

I don't have the answer - we'll see I spose.
Gravatar
robconery - Saturday, March 28, 2009 - http://mvcsamples.codeplex.com - oops should have put a link up! I'll add

it. The DB is in App_Data
Gravatar
wpatterson - Saturday, March 28, 2009 - I really enjoyed this screencast as well as the MIX09 presentation.



This open framework is exatcly what I need to bring up a new store front for a friend. She needs to mix HTML and products in a site that presents programs and services to help people and also list some products that are used by the programs or complment them.



I am interested in using the system, but you are still changing and enhancing it. How will I know when it is comlete enough to actually start using it? Also, where is the source code? Thanks so much! I have learned a lot and you have inspired me to use some of these techniques. Bill
Gravatar
Adam - Saturday, March 28, 2009 - Great cast!

Would you consider using MEF for you plugin framework??

Gravatar
aogan - Saturday, March 28, 2009 - Thanks for picking up this again. I have really enjoyed the MVC Sotrefront series. Will you make the new source code available at codeplex? By the way there is already a project called Kona (http://kona.codeplex.com/) there.
Gravatar
cowgaR - Saturday, March 28, 2009 - best screencast series on the net, 'nough said...



any plans to exchange O/RM? say for the (next version of) Entity Framework?

probably not, keep it simple is the rule here, I see...



welcome back, Mono topic is definitely a great news.
Gravatar
Esico - Friday, March 27, 2009 - Nice session at Mix. I hope you got a positive critic from that MS guy on the first row. Kona is going (or is allready) to be a positive starter kit for many starters.



Changing code in App_code will force a recompile and reload the app and will destroy all current session state data (it is not php or classic asp). Did you get arround that? You did mention something about that at Mix.



Gravatar
John - Friday, March 27, 2009 - hi rob, where can i download the database for this application?



Thanks
Gravatar
Brad - Friday, March 27, 2009 - awesome stuff rob!!! where can we download from?
Gravatar
Alan Westley - Friday, March 27, 2009 - Ditto what the others are saying here...It's because of you that I learned about TDD, the Repository pattern, IQueryable<>, and Dependency Injection. I had heard of most of these things before, but was always overwhelmed. Because of your work, I've been able to dive in deeper and get a feel for these things and start to incorporate them into my code. Thanks so much!!
Gravatar
mikekidder - Friday, March 27, 2009 - Yeah! CMS support... great video, good to you see this coming along, missed the regular updates on your blog.



Would like to hear your input on RIA Services
Gravatar
rgoytacaz - Friday, March 27, 2009 - Thank god, you are back! Welcome back! =)

I went to your show at mix! :) A W E S O M E !
Gravatar
Kevin Dente - Friday, March 27, 2009 - Wait, you're taking a dull, bland name and changing it into a cool code name? I don't think you understand how Microsoft operates. :P
Gravatar
Chewyq - Friday, March 27, 2009 - I learned a ton from watching you build out the store front last year. MVC. TDD. IoC. Just seeing how you used IQueryable would have been good enough to keep me coming back for more. I can't wait to see where you take Kona this year.



Thanks!!
Gravatar
Mike Murray - Friday, March 27, 2009 - [quote]

...it was a ton of fun and I don't want to stop now!



There are so many areas to cover that I think would be interesting - such as:



Cloud Computing and Azure

Analytics and this F# Thing

Deep dives into javascript and jQuery

Deployment issues

Mono and what it means to us as developers

[/quote]



Rob, I want to see it all! Bring it on please!



Thanks for all you do!

Gravatar
jeff - Friday, March 27, 2009 - great to see it back. I have learned alot by watching yougo through this whole process.
Gravatar
Chad Moran - Friday, March 27, 2009 - You da man! Great session on this at mix, one of the two sessions I walked away from where I actually learned something.



For anyone who hasn't seen Rob's MIX09 session about Kona (storefront) you might wanna go check it out...



http://videos.visitmix.com/MIX09/T62F
Gravatar
robconery - Tuesday, March 31, 2009 - This is MEF territory and is something I'm talking to them about. Can you

give me more of an example though?
Gravatar
Mike - Tuesday, March 31, 2009 - So the plugins so far are 'known' plugins, meaning that Kona knows when to call plugins at certain extension points (to calculate tax for instance). How about plugins that add functionality that Kona has no way of knowing about yet?
Gravatar
Mike - Tuesday, March 31, 2009 - How about a columns for each datatype, so value_string, value_int, value_datetime etc columns? That way you waste nothing. We have a piece of software that works that way for storing arbitrary metadata in an asset management system.
Gravatar
Amy Grossman - Thursday, September 10, 2009 - Your blog should come with a warning label! :D I read the unexpected Fat Bastard reference and laughed so hard that lukewarm coffee went up my nose!

Amy