Re-inventing the Object

I have spent some years now working as a software architect. There were couple of rather large projects, in both Java and .NET, that I was working on. Infrastructure vs real problems The thing with software architecture is that it tries to set up some basic rules, and solve some primary problems, so that rest of the team can carry ...

Read More »

How much architecture is enough?

Software architecture is hard. Creating a simple, consistent, flexible environment in which we can solve the customer’s ever-changing problems is no easy task. Keeping it that way is harder still. Striking the right balance between all the competing demands takes real skill – so what does it take to create a good architecture? How much architecture is enough? Software Architecture ...

Read More »

10 Free, Standalone and Easy to Use UML Editors

Below is a compilation of UML drawing & editing tools which are: Free (and most of them are open source), Standalone (not installed as plug-in or add-in), Easy to download and install, No-need to registration and activation keys, Fast to start and use. Note: Last 2 editors are text based web uml tools. 1. Violet 2. Argo UML 3. DIA ...

Read More »

Is TDD Evolving?

Something strange is going through TDD land these last couple of weeks. First it was Uncle Bob,with a new TDD theory – making tests pass in a certain order, actually helps incremental design, leading to a better solution. This is a very interesting post, and if he’s right, he might have discovered the cornerstone of ALM 2.0. Following that Mark ...

Read More »

The danger of deadlines

Deadlines are a good thing, right? Everyone needs deadlines. Don’t they?  There are three constants in life: death, taxes and software slipping. I’m doing my best to avoid the first two, but the latter seems here to stay. Software engineering, despite all its advances, has never solved the fundamental question: how long will it take? The advice I got from ...

Read More »

Posting JSON Data to an ASP.net MVC 3 Web Application

The trend in today’s web application development goes more and more in the direction of having rich, desktop-like applications. There are numerous examples on the web, just watch out while your navigating around (Google services are always a good place to look for such apps). But also Microsoft has noted that trend and aligns its products in order reduce the ...

Read More »

Smelly Code: Direct Object Instantiation as a Testability Killer

This Smelly Code post discusses mainly a testability issue without going into further detail on other things like readability which could be improved for sure as well. Original, smelly code public Account ReadCompleteAccountByADUsernameAndServiceUID(string adUsername, string serviceInstanceUID) { IList<Address>> addresses; IList<Contact> contacts; MasterDataBL masterDataBL = new MasterDataBL(); Account result = AccoDao.ReadCompleteAccountByADUsernameAndServiceUID(adUsername, serviceInstanceUID, ConnectionString.Master, out addresses, out contacts); result.PhoneNumber = contacts.Where(x => ...

Read More »

Aspect Oriented Programming with Action

Aspect Oriented Programming (AOP) is a pretty great concept. It is a little difficult to implement though. To be honest, I don’t think I’ve ever really seen it successfully implemented. I mean sure, I’ve seen examples of how you could use it for “cross-cutting” concerns like logging. The problem is it is usually pretty difficult to use, and the only real ...

Read More »

Explaining What Action And Func Are

In C#, Action<> and Func<> are extremely useful tools for reducing duplication in code and decreasing coupling. It is a shame that many developers shy away from them, because they don’t really understand them. Adding Action<> and Func<> to your toolbox is a very important step in improving your C# code. It’s not really that hard to understand what they ...

Read More »