﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Nazareno commented on Application review: Northwind Starter Kit</title><description>NSK is not an easy project. I start to “read” it some years ago and I found really difficult to understand it, but I never think that it was a problem of the project (or of its developers). My feeling was that I was not ready for it. 
Some years after I have the possibility (and the luck) to study better the underling architectures and I start to understand how to “use it”. At the moment this is not a sample app that you can reuse “ready, steady, go” on you projects. I use it to search suggestion about design or implementation, knowing that I have to write my own code to use it in my solution. 
It, also, try to investigate new topics (like CQRS) when there is no so much implementation reference project around. I think this is another good thing.
Even if I do not think that you can measure a solution using the number of project, the large number of project is due to the fact that this solution tries to embrace the most common frameworks/tools.
A real and complete implementation of a MES project (layered and with test project) made using lot of pattern inspired by this project count “only” 11 projects (obviously we have chosen only one ORM and one presentation design pattern).
</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment47</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment47</guid><pubDate>Tue, 10 Jan 2012 21:28:46 GMT</pubDate></item><item><title>Pavel commented on Application review: Northwind Starter Kit</title><description>Yeah, it's very sad that people spend time writing these useless samples. It's possible to show proper usage of architecture patterns with Online Store project. First of all, prices of goods do change, so each item is represented by multiple rows in database, at least it's (id, date_effective) or up to three columns with dates. So you hide this price-changing logic in some wrapper to make basic searching easier. There goes repository etc.

Slamming repositories and units of work on top of ORM which already implements these patterns is stupid and shouldn't be teached. A person who can recite GoF book is not a good architect, the one who knows when to use patterns to make code better is.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment46</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment46</guid><pubDate>Sun, 08 Jan 2012 14:25:34 GMT</pubDate></item><item><title>Karep commented on Application review: Northwind Starter Kit</title><description>Another application same as all other apllications these days. Maybe you could look at https://github.com/Lokad/lokad-cqrs/tree/lean. This is something from guy that blogs here http://bliki.abdullin.com/ and here http://abdullin.com/about-me. He looks very clever to me but I don't know much about event sourcing.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment45</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment45</guid><pubDate>Thu, 05 Jan 2012 19:34:46 GMT</pubDate></item><item><title>Zsolt commented on Application review: Northwind Starter Kit</title><description>I don't really understand the reason behind these posts. 
In my opinion NSK is a _sample_ and meant to show how to implement various design patterns using the MS stack. Creating samples is not an easy task. If You go for a complex problem (where the design patterns make more sense) the complexity might make the sample too difficult to understand. However if You go with simple stuff many patterns feel unnatural since those will look as an overkill for such simple problems. 
I do not want to say that NSK is perfect since no software is, but at least it gives people some ideas and they can decide on their own if these ideas match their requirements or not.
If You have improvement ideas You could have used the time taken to write this post to contribute them instead.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment44</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment44</guid><pubDate>Thu, 05 Jan 2012 08:27:51 GMT</pubDate></item><item><title>oliver facup commented on Application review: Northwind Starter Kit</title><description>btw, your comments also suck. hope you get a good bashing over that too</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment43</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment43</guid><pubDate>Wed, 04 Jan 2012 18:22:44 GMT</pubDate></item><item><title>oliver facup commented on Application review: Northwind Starter Kit</title><description>Totally agree with Alexandre. Lets see some real examples of what's wrong, with some why's and how's to solve them. you make me really scared to release code into the wild, why take the risk of getting shat on so you can all congratulate yourselves on being so clever. you don't see nearly so much bashing outside of the ms world</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment42</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment42</guid><pubDate>Wed, 04 Jan 2012 18:21:21 GMT</pubDate></item><item><title>oliver facup commented on Application review: Northwind Starter Kit</title><description>Totally agree with Alexandre. Lets see some real examples of what's wrong, with some why's and how's to solve them. you make me really scared to release code into the wild, why take the risk of getting shat on so you can all congratulate yourselves on being so clever. you don't see nearly so much bashing outside of the ms world</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment41</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment41</guid><pubDate>Wed, 04 Jan 2012 18:20:32 GMT</pubDate></item><item><title>Alexandre Jobin commented on Application review: Northwind Starter Kit</title><description>I don't understand why you are bashing on this code project. Of course the project is overkill for the Northwind database but this is a starting point. For my projects, i have analysed a few open source code and i have taken the ideas that i liked from them: SharpArchitecture, NSK to name a few.

For those of you that say that NSK is crap, that the repository implementation is wrong, why don't you fork the code and propose a solution for that? It's very easy to bash on things but i didnt see anyone explaining the Why and the How to solve the problem or how to do it better.

I'm not a guru programmer so i can't argue with you guys on all the architecture stuff and good programming. This is why i'm really desapointed by this thread since that i didn't learn anything by reading you except that you are making fun on this guy very easily.

If you think that you are so good at coding frameworks, why can't we see any code and learn from you?

alex</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment40</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment40</guid><pubDate>Wed, 04 Jan 2012 16:13:55 GMT</pubDate></item><item><title>Another Steve commented on Application review: Northwind Starter Kit</title><description>Ah, I see some of the Spaniards are back that were so angry about Ayende's DDDD Sample Project reviews from mid 2011.

The reality is, over complicating a simple problem to prove a point is never a good idea, especially in the .NET world where "cut and paste from MSDN" could be listed as a skill on most developer's resumes.  Stuff like this only ends badly. </description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment39</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment39</guid><pubDate>Wed, 04 Jan 2012 14:53:59 GMT</pubDate></item><item><title>Ayende Rahien commented on Application review: Northwind Starter Kit</title><description>Raciel,
Yes, I want to make this go forward. Will probably do something about that in a few weeks.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment38</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment38</guid><pubDate>Wed, 04 Jan 2012 11:18:25 GMT</pubDate></item><item><title>Valerio commented on Application review: Northwind Starter Kit</title><description>I would like to know what's wrong in details too, especially about repository implementation, with ORM best practice (repository injection into domain model vs not), layered ddd architecture [dont look at 22 projects, the base ddd solution has 3 projects + UI (Domain, Repository implementation, application services) plus some infrastructure like InversionOfControl/Deploy. Off course you can put the first tree things in the same project and a sub folder, patterns are what matter :D</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment37</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment37</guid><pubDate>Wed, 04 Jan 2012 07:34:52 GMT</pubDate></item><item><title>Raciel commented on Application review: Northwind Starter Kit</title><description>@Ayende have you considered continuing with your Macto series as a Best Practices example? Count me in if you need volunteers; I see that as a more constructive way to illustrate the proper use of best practices. Thanks!</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment36</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment36</guid><pubDate>Wed, 04 Jan 2012 07:04:45 GMT</pubDate></item><item><title>throwspoop commented on Application review: Northwind Starter Kit</title><description>This review is a travesty, a sham, and a mockery...it's a travishamockery!</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment35</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment35</guid><pubDate>Wed, 04 Jan 2012 05:53:02 GMT</pubDate></item><item><title>Bob commented on Application review: Northwind Starter Kit</title><description>Wow.  How many times are you guys gonna let Ayende troll you?  What suckers.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment34</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment34</guid><pubDate>Wed, 04 Jan 2012 04:08:29 GMT</pubDate></item><item><title>alwin commented on Application review: Northwind Starter Kit</title><description>Pardon my ignorance, but I can't think of a single online store that needs something as complicated as this?</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment33</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment33</guid><pubDate>Wed, 04 Jan 2012 02:02:51 GMT</pubDate></item><item><title>Mauro Servienti commented on Application review: Northwind Starter Kit</title><description>@Daniel Lang:

Just my curiosity: where is the Select N+1 and why the repository implementation is wrong?

.m</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment32</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment32</guid><pubDate>Tue, 03 Jan 2012 21:48:48 GMT</pubDate></item><item><title>Abdu commented on Application review: Northwind Starter Kit</title><description>When I read posts like this, I start to wonder if the author produces just perfect code all the time.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment31</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment31</guid><pubDate>Tue, 03 Jan 2012 20:43:39 GMT</pubDate></item><item><title>Andrew commented on Application review: Northwind Starter Kit</title><description>NSK was developed to show the concepts expressed in this book.
http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-Pro-Developer/dp/073562609X
Ayende, I am surprise that you would be so slating in your assessment of a project written by another respected author in the dot Net community.  It's easy to forget that we as software developers are all somewhere on a learning curve.  The book and the NSK project are a few years old now, but in my opinion together they do a good job in describing some of the concepts and ideas needed to put together a maintainable layered enterprise architecture.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment30</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment30</guid><pubDate>Tue, 03 Jan 2012 19:35:46 GMT</pubDate></item><item><title>Tonio commented on Application review: Northwind Starter Kit</title><description>I a gree with Daniel Lang

&lt;there's no excuse for Select N+1, no excuse for wrong implementations of the Repository pattern, methods just return null or the unvalueable seperation between projects.

It's generally ok to have a repository patter, but then it should be implemented right, especially in demonstration app. It's also ok to have 22 projects, but the seperation should make sense and be valuable for the codebase.&gt;</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment29</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment29</guid><pubDate>Tue, 03 Jan 2012 19:02:40 GMT</pubDate></item><item><title>Steve Sheldon commented on Application review: Northwind Starter Kit</title><description>I'd have to spend more time looking at it, but I actually didn't think it was that bad as a starting point.  It appears to be a project created by a group of developers who work at a consulting firm as a place to learn new technology ideas.  This isn't some guidance out of Microsoft to which I'd hold a higher standard.

In fact this project appears to track along with the same lessons I encountered in the last year on a project I worked on, even seems to have hit some of the same stumbling blocks.  So I can empathize.  

Yes there are a number of things that I would do differently and that comes from trying something and learning from it.

Oren's tone isn't justified.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment28</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment28</guid><pubDate>Tue, 03 Jan 2012 18:06:56 GMT</pubDate></item><item><title>Daniel Lang commented on Application review: Northwind Starter Kit</title><description>To all the critics above, I agree with you that it's not fair to judge the usage of patterns and the raw number of projects in this application, since the purpose if NSK is to demonstrate those.

BUT, there's no excuse for Select N+1, no excuse for wrong implementations of the Repository pattern, methods just return null or the unvalueable seperation between projects.

It's generally ok to have a repository patter, but then it should be implemented right, especially in demonstration app. It's also ok to have 22 projects, but the seperation should make sense and be valuable for the codebase.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment27</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment27</guid><pubDate>Tue, 03 Jan 2012 18:01:20 GMT</pubDate></item><item><title>Dmitry commented on Application review: Northwind Starter Kit</title><description>The domain model looks pretty anemic to me. The repository abstraction does not add much value either.

The problem with such examples is they do not show WHY you would want to use those patterns.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment26</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment26</guid><pubDate>Tue, 03 Jan 2012 17:50:42 GMT</pubDate></item><item><title>Mickaël commented on Application review: Northwind Starter Kit</title><description>+1 for Mauro
I also would state that architect's main goal should be to remove useless complexity and useless code as much as possible</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment25</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment25</guid><pubDate>Tue, 03 Jan 2012 17:40:02 GMT</pubDate></item><item><title>Paul Davies commented on Application review: Northwind Starter Kit</title><description>@Mauro, of course over-designing is a bad thing, and if an application like this was a real world project and put in to production then it would be a bad solution. But it is not, it is an application to demonstrate how to use design patterns. This seems to have been missed.

However, I must add that I think the Domain Model pattern does not add significant overhead to a project, and is always worth considering, even for very simple projects _because you never know how complicated it will become in the future_.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment24</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment24</guid><pubDate>Tue, 03 Jan 2012 16:30:05 GMT</pubDate></item><item><title>Mauro commented on Application review: Northwind Starter Kit</title><description>@Paul, I see your point. Nevertheless, Ayende's post carries a valuable message: I've seen too many software projects, especially in the "enterprise" world, horribly doomed by "architects" over-designing systems.

In my opinion, learning to avoid those bad practices is at least as important as learning design patterns.

</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment23</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment23</guid><pubDate>Tue, 03 Jan 2012 16:04:01 GMT</pubDate></item><item><title>plusplus commented on Application review: Northwind Starter Kit</title><description>+1 for Ayende</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment22</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment22</guid><pubDate>Tue, 03 Jan 2012 15:54:47 GMT</pubDate></item><item><title>Paul Davies commented on Application review: Northwind Starter Kit</title><description>Design patterns, domain models, multiple layers, services, application logic, DALs, repositories... These are all concepts developers will need to understand if they are going to successfully develop even slightly complex applications. 

One of the best ways to help developers understand these concepts is with sample applications. The initial sample applications developers should study should be simple stripped down ones, just to get them used to the concepts. It would not be productive to dazzle them with a full production quality mega application. We need all the concepts, but not too much functionality.

Therefore, some of these 'beginners' sample applications may not accurately reflect real world applications. Yes, they may utilise more concepts and paradigms than is needed for the functionality, but that is the nature of these applications - they're not supposed to be practical solutions!

As experienced developers, it becomes very difficult to place ourselves in the position of someone starting out, but everyone has to start somewhere.

</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment21</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment21</guid><pubDate>Tue, 03 Jan 2012 15:30:48 GMT</pubDate></item><item><title>Rafal commented on Application review: Northwind Starter Kit</title><description>What's the problem with technology demo applications? All of them are crap or you are concentrating only on the bad ones?</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment20</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment20</guid><pubDate>Tue, 03 Jan 2012 15:12:10 GMT</pubDate></item><item><title>Diego Guidi commented on Application review: Northwind Starter Kit</title><description>@felice if you download a nhibernate sample applications that contains also the entire source code of nhibernate, with all unit tests and so on, you can easily have a 22-projects solution, I think.
Maybe not, but the point is that NSK is not a sample app, so what are we talking about? this is NOT a "sample application for Northwind"</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment19</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment19</guid><pubDate>Tue, 03 Jan 2012 15:02:59 GMT</pubDate></item><item><title>Felice Pollano commented on Application review: Northwind Starter Kit</title><description>For sure Ayende hit the point that an example with 22 projects is enrmous "per se" whatever is the scope.</description><link>http://ayende.com/152706/application-review-northwind-starter-kit#comment18</link><guid>http://ayende.com/152706/application-review-northwind-starter-kit#comment18</guid><pubDate>Tue, 03 Jan 2012 14:52:32 GMT</pubDate></item></channel></rss>