This is the presentation handout for a presentation I gave at the bbv Techday 2013. Special thanks to Jeffrey Palermo for supporting me. Chopping onions usually makes you cry. This is not the case in software architecture. In contrary! The onion architecture, introduced by Jeffrey Palermo, puts the widely known layered architecture onto its head. Get to know the onion architecture and its merits with simple and practical examples. Combined with code structuring by feature your software is easy...
Structure your code by feature
cross-post from bbv blog
When software projects grow both in age and size the developers often struggle with the structure of the code. It gets more and more difficult to find the class you have to change for a new requirement. In this post, I’ll show you how we organize our code and how we derive our structure directly from the requirements.
Presentation: Agile Code Design – how to keep your code flexible
These are the slides along with some comments from a presentation I gave lately in the bbv .Net System boot camp – the yearly education week of my division in my company. Once upon a time, Agile Software development came to our software development country. Like a monster, Agile software methodologies scared the hell out of us. Suddenly, we had to find ways how to build software so that we could keep up with the high rate of change, just-in-time requirements and a sacrificial offering – a...
Clean Code and Clean TDD Cheat Sheets
Updated: new version here! I have compiled two cheat sheets about clean code (the ones mentioned in my post about Code Quality!). The first covers clean code – code that is easy readable and keeps changeable. The second is about Test Driven Development. Both cheat sheets list principles, patterns, practices and smells. You can download them here – Clean Code Cheat Sheet V1.3, Clean TDD Cheat Sheet V1.2. Take a look! I’d like to read your feedback in the comments section… (just an...
From User Stories To Architecture (long version)
This is the slide deck of my LAS 2010 presentation: From user stories to architecture.
Speaking at LAS 2010 in Zurich (Lean Agile and Scrum Conference)
I’m glad to announce that I’ll speak at the Lean Agile and Scrum Conference in Zurich on September 7th 2010 about Agile Architecture: From User Stories to Architecture (in german).
There will be great speakers present like Mary Poppendieck and Henrik Kniberg!
Join the conference at .
Looking forward to see you there…
From User Stories to Architecture
This is the slide deck of a presentation I gave for bbv Software Services AG at two events in 2009 along with some comments .
If you are interested in seeing this presentation live (either in German or English) then please contact me.
In an agile project, the architecture has to evolve together with the requirements and the code. In this presentation, I’ll show you our agile architecture lifecycle.
Agile UI Development in .NET: Nested Views
Updated: Something went wrong with the code snippets. Now it’s okay.
Today, we”l have a look at nested views in my series on agile UI development in .NET using an extended MVVM pattern (table of contents).
There are two kinds of nested views:
contextually nested views and
hierarchically nested views (master-detail scenarios)
Agile UI Development in .NET: Model Commands
In my series on agile UI development in .NET, we have seen quite a lot so far (table of contents). But up to now, we never made a call to the model (business logic, services and so on). This is the topic of this post: Model Commands.
A Model Command encapsulates a single action hat is execute against the model. This can be a query to request data, an action that modifies data, communication with a completely different part of the system or anything else your application has to do on the model.
Agile UI Development in .NET: Presenter
Next in my series (table of contents) on agile UI development in .NET is the presenter. The presenter is responsible to drive the UI workflow. This means that the presenter is the control center to react to:
events from the model. For example that data has changed.
events from embedded presenters
calls from parent presenter
calls from UI commands