Agile Domain Driven Design
Armand and myself will start a few online Agile tutorials and discussions soon - keep your eyes on SADeveloper.net for details. We plan on having an online, guided Agile project, for members that are keen on learning the Agile processes, to participate in.
The most important concept to understand regarding DDD is that everything in your solution is driven by the business domain. Everything in your application can be seen as services to the Business Layer, which is where the real intelligence of a solution resides. The data-layer (fallacy or not!) is a service to the BL, as is the UI.
The UI is a service that captures external events (from a user) and relays that to the BL for usefull, intelligent processing. It also (visually) represents *only* the intelligence contained in the BL to the (external) user. The DAL is another service to the BL that enables the BL to persist certain facts. I like keeping as little business logic as possible in the database - business logic in stored procedures should be avoided just as much as business logic in the UI. It's all about the domain baby!