Microservices. The good, the bad and the ugly

Posted 4 CommentsPosted in Application Migration, Client /server, Domain driven design, Enterprise architecture, Frameworks, Hibernate / nHibernate, Java, microservices, Service oriented architecture, Software architecture, Unit testing, Value objects

Back in 1988, when I was first employed by a company for writing software, the world was fairly simple. The development environment we had was character-based, the database was integrated and traversed with cursors, and we built a whole new administrative system covering everything but the kitchen sink. It took us five years to complete the project, basically because the […]

Validating sending mail messages in smart use case unit tests

Posted Posted in .Net, Adf.Net, C#, Frameworks, Smart use cases, Unit testing

When building applications with the Adf framework, smart use cases are implemented in task classes. Quite regularly mail messages are sent from tasks. To do so we use the MailManager class. Using this class mail messages are usually build up as in the following code example. To send mail messages, the MailManager plugs in an implementation of the IMailProvider interface. […]

Reaching post-conditions in tasks

Posted Posted in .Net, Adf.Net, C#, Design patterns, Frameworks, Smart use cases

Implementing use cases in Adf.Net is covered by the task pattern. Each smart use case in the model is implemented as a descendant of the Task class in Adf.Net. The task pattern consists of three major parts: Starting the task, either using a parameterized Init() method, or the default Start() method. After a task calls another task, and this second […]

A short notice about object relational mapping framework generated queries…

Posted Posted in .Net, Anti-patterns, C#, Domain driven design, Entity Framework, Frameworks, Hibernate / nHibernate

I guess object relational mapping is an accepted paradigm for exchanging data between an object oriented domain layer and underlying databases. For most applications object relational mapping is more than sufficient. And if not, perhaps command query responsibility segregation might contribute well to your solution. Being a more than frequent user, this very short blog post is not meant to […]

How Smart Use Cases Can Drive Web Development. Video for session at DevDays 2011 [in Dutch]

Posted Posted in .Net, Agile, ASP.NET, C#, Design patterns, Extension methods, Frameworks, Smart use cases, Software architecture, Use cases, Video

as the Channel 9 website says: using real-life code examples Sander will demonstrate how to model, generate and build smart use cases and introduce the positive impact smart use cases have on your layered software architecture. Anyway, here’s the video for my DevDays 2011 session:

A book on pragmatic software architecture, patterns and frameworks?

Posted 9 CommentsPosted in .Net, .NET RIA Services, ASP.NET, ASP.NET MVC, C#, Client /server, Domain driven design, Entity Framework, Extension methods, Frameworks, Hibernate / nHibernate, Model driven development, Modeling, Service oriented architecture, Silverlight, Smart use cases, Smells of bad code, UML

One of the major items on my wish list – that is on the professional half of it – is to write a book that displays my ideas on software architecture, patterns and frameworks. Yes I know, there are many books on software architecture, and there are many books that explain patterns, and yes there also are a lot of […]

Please vote for my Microsoft Mix 2011 proposals!

Posted 1 CommentPosted in .Net, .NET RIA Services, Anti-patterns, ASP.NET, ASP.NET MVC, C#, Frameworks, Hibernate / nHibernate, Smart use case points (SUCP), Smart use cases, Smells of bad code, Software architecture

From April 12-14 the next edition of Microsoft’s MIX Conference will take place in Las Vegas. I’ve sent in two proposals for the Open Call. Today heard that both proposals made it through the first cut, which means they’re open for public voting (you don’t have to be registered). It would be great if you would cast your vote for […]

November 12, 2010 – Microsoft TechEd Europe. How smart use cases can drive web development

Posted Posted in .Net, Anti-patterns, ASP.NET, C#, Design patterns, Domain driven design, Extension methods, Frameworks, Service oriented architecture, Smart use cases, Software architecture, Talks, Testing, Unit testing, User stories

[Session ARC205 at Microsoft TechEd Europe 2010 in Berlin] Use cases have been around for many years describing the requirements of software development projects. From a developer’s point of view, use cases are often seen as too abstract and too complex to develop code from. Until now, that is. During this interactive talk, speaker Sander Hoogendoorn will demonstrate how to […]

November 9, 2010 – Microsoft TechEd Europe. How frameworks can kill your projects.

Posted 1 CommentPosted in .NET RIA Services, Anti-patterns, ASP.NET, ASP.NET MVC, C#, Design patterns, Domain driven design, Entity Framework, Extension methods, Frameworks, Hibernate / nHibernate, Talks

[Session ARC203 at Microsoft TechEd Europe 2010 in Berlin] When it comes to Microsoft .NET-connected development, more and more frameworks are entering the market, both from Microsoft and from open source. Think of ASP.NET MVC, Castle, Windows Workflow Foundation (WF), Entity Framework, Unity, Linq2SQL, ADO.NET Data Services, Windows Communication Foundation (WCF), nHibernate, Spring.NET, CSLA, NUnit, Enterprise Library, MEF or ADF. […]

Being Smart in enterprise agile

Posted Posted in Agile, Agile SAP, Enterprise architecture, Frameworks, iteration, Model driven development, Project management, Service oriented architecture, Smart use case points (SUCP), Smart use cases, Software architecture, Software estimation, sprint, Testing, UML, User stories

As agile is becoming more and more mainstream, organization are starting to do enterprise software development project using well-known but fairly basic lightweight agile processes.   In many projects this has lead to surprisingly bad result, baffling the agile Certified Pokémon Trainers who are coaching these projects. The presentation below shows a number of accelerators or technique that projects can […]

Simple little things. The 42 extension method anti-pattern

Posted 2 CommentsPosted in .Net, Anti-patterns, C#, Extension methods, Frameworks, Simple little things

Extension methods are a powerful feature in .NET, and have been increasingly adopted by the developer community. Also, LINQ and other framework features rely heavily on extension methods. In fact, extension methods were originally invented to be able to implement LINQ without having to change a lot of .NET framework base classes. Basically, an extension method is implemented as a […]

Spring 2010 speaking engagements

Posted Posted in .Net, Agile, Agile SAP, C#, Frameworks, Model driven development, Presentations, Scrum, Smart, Talks, Testing, UML, Waterfall, XP

Again doing a lot of talks this spring on a wide range of subjects, from new technology, via enterprise agile to model driven development, but also about smart use cases, domain driven design, UML, and software architectures, design patterns, frameworks and .NET. This season’s highlights? Not a difficult choice: doing talks both at Microsoft DevDays and TechEd North America is […]

October 19. Talk. “Do’s and don’t in implementing and applying extension methods”

Posted Posted in .Net, Extension methods, Frameworks, Talks

SDC Conference, Papendal, Arnhem (www.sdc.nl) Next week the annual SDC conference will take place at Papendal, Arnhem. As usual the organising SDN community has put together a long list of international appraised speakers, and challenging subjects on the matter of software development and software architecture. A bit to my surprise, this year I was invited to do 3 talks, with […]

Writing better software faster

Posted Posted in .Net, ASP.NET, C#, Domain driven design, DSL, Frameworks, Hibernate / nHibernate, Model driven development, Publications, Smart use cases, Software architecture, UML

Published in my Interesting Things column in SDN Magazine, November 2009. Looking back on twenty years of software development, I must have spent most of that time trying to improve the quality and productivity of software development. Ever since I started to write small applications in Turbo Pascal in 1988 I got infected with the writing-better-software-faster virus. Right after I […]

Building better software faster (Utrecht, The Netherlands. September 2009. Keynote)

Posted Posted in .Net, Conferences, Frameworks, Talks

Customer event Capgemini, at Capgemini Papendorp. Together with a large customer Capgemini organizes a number of (non-public, sorry) knowledge sessions on Microsoft technology – aimed at developers, architects and project management. September 10 will be the first of those knowledge sessions, with talks on Microsoft Duet, Surface and Cloud / Azure. Preceeding those interesting stories I will do an opening […]

Extension methods. The overlooked language feature

Posted Posted in ASP.NET MVC, C#, Design patterns, Extension methods, Frameworks, Publications

This post was published in .NET Magazine. I recently did a talk at the SDC Conference at Papendal, Arnhem, discussing this topic. As you’re probably have been made aware of in abundance, in .Net 3.5 Microsoft introduced a little language feature called LINQ. Although LINQ has been demonstrated at all major and minor conferences, the way LINQ executes queries on […]

June 2009

Posted Posted in .Net, Agile, Anti-patterns, C#, Frameworks, Model driven development, Talks

My talks in June 2009. June 3. Agile software development in everyday practice. Full-day seminar on doing agile projects for IT Works, Hotel Pullman, Diegem, Belgium. With guest speaker Stefaan van Royen, Mediamine. See www.itworks.be. June 9. Pragmatic .Net development. Full-day seminar on software architectures and patterns for .Net software development for Array Seminars, .NBC Nieuwegein. See www.arrayseminars.nl. June 15 […]

May 2009

Posted Posted in Frameworks, Service oriented architecture, Smart use cases, Software estimation, Talks

The months May and June are notorious for the number of talks – as Rick van der Lans describes: May and June are speaker’s season. Just to remind me not to forget any of my upcoming talks, here’s a list: May 12. Project estimation with smart use cases. At Capgemini, Utrecht. Presentation at internal software estimation seminar for Community of […]

SDN software architecture event 25 juni [in Dutch]

Posted Posted in Frameworks, Software architecture

Speciaal voor Software Architects organiseert het SDN op donderdagavond 25 juni een SDN Event met twee hoogstaande sessies die architectects zeker zullen aanspreken. Het event vindt plaats in Hotel Houten (in Houten). Sander Hoogendoorn doet zijn sessie: Navigeren door een woud van frameworks. Edward Bakker en Clemens Reijnen presenteren: Architectural Inspections with VSTA2010 and Application Architecture Guidance V2. Deze avond […]

Survey. Which frameworks do you use in .Net projects?

Posted Posted in C#, DevDays, Entity Framework, Frameworks, Hibernate / nHibernate, Uncategorized

Later this week I will be doing a talk at the Microsoft DevDays conference at the Congrescentrum in Den Haag. This talk is titled Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash. Read more about it at www.devdays.nl. Please fill in the little survey I’m conducting at Survey: Which frameworks do you use […]

Implementing smart use cases. Guest lecture at Hogeschool Arnhem Nijmegen

Posted Posted in .Net, ASP.NET, C#, Design patterns, Frameworks, Scrum, Smart, Smart estimation, Smart use cases, Software architecture, Tobago MDA, XP

In the second half of last year, I did a guest lecture at the Hogeschool Arnhem Nijmegen (HAN) in Arnhem on an invitation by lecturer Rody Middelkoop. I’m sorry but I can’t remember the exact date – only that I had an upcoming flue. Although if was a Friday afternoon, the audience was good, about 60-70 lecturers and students. I […]

Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash – this year’s DevDays talk.

Posted Posted in .Net, Anti-patterns, C#, Design patterns, DevDays, Entity Framework, Frameworks, Smells of bad code, Software architecture

Good to hear that I’ve made the program of this year’s Microsoft DevDays. Will be a challenging talk on software architecture and patterns, titled just like this blog post. Here’s the description. Hope you like it. Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash When it comes to .Net software development, more and […]

Client/service architecture. Domain driven development in the distributed era. Episode IV

Posted 2 CommentsPosted in .Net, Anti-patterns, C#, Client /server, Design patterns, Domain driven design, Frameworks, Microsoft CRM, Service oriented architecture, SharePoint, Software architecture, web part

Go to episode three. Go to episode two. Go to episode one. In case you’re wondering why doesn’t this dude come to his point, you’ve probably missed it. I’ve made it already. The point is: you should always have a single point of truth, and at most have it reproduced on the server side. Which in most cases you don’t […]

Pragmatic model driven development in Java with smart use cases and domain driven design

Posted Posted in .Net, Frameworks, Hibernate / nHibernate, Java, Model driven development, Software architecture, Tobago MDA

In our Accelerated Delivery Platform we generate code from our standardized smart use cases and the domain model, using our Tobago MDA tooling. See www.accelerateddeliveryplatform.com for more details. In our daily practice we generate for a variety of architectures in the .Net space. For instance, we apply our own frameworks, or combine these with open source frameworks such as nHibernate, […]

Single point of truth. Domain driven development in the distributed era. Episode III

Posted Posted in .Net, Anti-patterns, C#, Client /server, Design patterns, Frameworks, Java, Service oriented architecture, Software architecture

Go to episode two Go to episode one Client / server could have been a much more successful era in software development, if it wasn’t for this copy-and-paste programming, leading to applications that slowly became unmanageable. I have seen this anti-pattern occur in any of the popular client / server technologies. Without exception, whether it was Visual Basic, PowerBuilder or […]

The merits of two-tier architecture. Domain driven development in the distributed era. Episode II

Posted Posted in .Net, Anti-patterns, C#, Client /server, Design patterns, Domain driven design, Frameworks, Java, Service oriented architecture, Smells of bad code, Software architecture

Go to episode one. So now you’re stuck with this two-tier architecture. Is this a problem. Well, not yet. However, it can become a huge problem, and it has become a huge problem in many, many client / server applications, in a vide variety of technologies, including several types of (legacy) web application technologies. The truth is out there The […]

Back in the days of client/server. Domain driven development in the distributed era. Episode I

Posted 2 CommentsPosted in .Net, Anti-patterns, C#, Design patterns, Domain driven design, Frameworks, Java, Service oriented architecture, Software architecture

At this point in time, where we slowly shift from service orientation to cloud computing, building business software is more complicated then it has ever been. There are many platform that your software needs to target, and there are even more ways of writing the software. Beyond choosing technology Choosing a technology goes way beyond stating that you are doing […]

So much to write, so little time

Posted 3 CommentsPosted in .Net, Agile, Anti-patterns, ASP.NET MVC, Blogging, C#, Crisis, Design patterns, Frameworks, Java, Model driven development, Project management, Service oriented architecture, Smart estimation, Smart use cases, Smells of bad code, Software architecture, Software estimation, Waterfall

It’s too bad there’s only 24 hours in a day. There are so many ideas in my head that I still have to write down, that I have to make a (short) list now to keep my head from exploding. So here it is: White paper on how to do agile SAP projects using smart use cases. Article on applying […]

Javapolis (Antwerp, Belgium. November 2007)

Posted 2 CommentsPosted in Agile, Anti-patterns, Conferences, Design patterns, Frameworks, Java, Model driven development, Software architecture, Testing, Video, Waterfall

This is the video from Parlays.com that presents the talk I gave at the last JavaPolis conference in Antwerp, Belgium. During the talk I ask myself the question how everybody in their own role can attribute to making our project fail, as it is far too complicated to make your projects succeed. The talk presents popular anti-patterns I’ve gathered over […]

Guest lecture Hogeschool Utrecht on implementing smart use cases in agile projects

Posted Posted in .Net, Agile, C#, Frameworks, Model driven development, Smart use cases, Testing

On January 13 from 14:30 – 16:00 the Hogeschool Utrecht organizes a guest lecture by Sander Hoogendoorn, Principal Technology Officer at Capgemini. When asked who to invite for presenting a guest lecture, the students of the Hogeschool specifically requested for Sander. His lecture will be titled Implementing smart use cases in agile projects. Process, techniques, architecture and patterns. During this […]

Why do we need software architecture?

Posted 4 CommentsPosted in .Net, ASP.NET MVC, Entity Framework, Frameworks, Smells of bad code, Software architecture

Over the past twenty or so years I have been involved in many software development projects, code reviews, and software factory implementations. Although I had stretched the virtues of good software architecture for decades, it wasn’t until a series of recent event, that I really started re-valuing of having a sound software architecture in place. And to me a well-defined […]

Implementing value objects

Posted 2 CommentsPosted in C#, Design patterns, Frameworks, Software architecture

When reasoning about business domains in projects with customers, domain objects and their services are always discussed. But if you listen more closely you might hear additional requirements on the domain. “Off course, customers can also find a book by typing in their ISBN” or “we also register the customer’s web site, by adding the URL.” When to use value […]

Increasing the productivity of software development

Posted Posted in Agile, Anti-patterns, Frameworks, Model driven development, Project management, Service oriented architecture, Software architecture

Earlier this week I presented a talk at the inspiring Software Developers Conference 2008 in Noordwijkerhout, the Netherlands. My talk had an inspiring, or at least intriguing title: How to keep our jobs. Why? Well, let me share some thoughts on the productivity of software development projects. A 100-fold Recent research by Gartner shows that the productivity of software development […]

Sander Hoogendoorn at the DevDays 2008

Posted Posted in .Net, Agile, C#, Design patterns, Frameworks, Smart use cases, Software architecture

Finally, after some experimenting we’ve got it. My team managed to put out the broadcast of my talk on everything and the kitchen sink on YouTube, and moreover, link from that. See the results here. Introduction The introduction part with some jokes in it. Software architecture, design patterns and smart use cases in code A brief introduction into software architecture […]

Core [in Dutch]

Posted Posted in .Net, Design patterns, Frameworks, Smells of bad code, Software architecture

Het is maandagmorgen. Er schijnt een waterig zonnetje over Ede. Ik parkeer mijn auto op het parkeerterrein van de Reehorst dat verlaten oogt bij de start van de nieuwe werkweek. Ook vandaag is de Reehorst het toneel voor een Software Developers Event. Één sessie in het bijzonder heeft mijn interesse: Addressing non-functional requirements with aspects. Waarom nu juist deze sessie? […]