Category Archives: Architecture

Software development architecture issues and solutions

Mocking Entity Framework to unit test your data services

It’s not easy to write unit tests for services that use DbContext and DbSet<T> classes from Entity Framework (or Entity Framework Core), and there are complex solutions to approach this, like separating the data access layer completely, as I propose in my UnitOfWork-EntityFramework implementation. … Continue reading

Posted in Architecture, C# | Tagged , , , , , , | Leave a comment

Stop over-abstracting

Because developers are usually highly intelligent, they are very good when it comes to abstracting things, be this: 1) generating base or generic classes to inherit from or reuse; 2) generic or overloaded functions called with arguments instead of standalone ones; or 3) reusing code … Continue reading

Posted in Architecture | Tagged , , , , , , | Leave a comment

Bridging

When you, a Microsoft technology-oriented developer, write software today you have to select the target platforms you would like to support. The platforms are then used to select the tools, technologies, and programming languages you can use for coding the different layers of … Continue reading

Posted in .NET, Architecture, C#, Development, JavaScript, Unity | Tagged , , , , | Leave a comment

Architect vs. developer

A software developer knows how to (and will be eager to) generalize things – for example using a list instead of a single item or a generic type or method instead of a specific one – enabling more scenarios with supposedly minimal amount of initial … Continue reading

Posted in Architecture, Miscellaneous | Tagged , , , , , | Leave a comment

Too much dependency injection?

I’m sure you use dependency injection in many of your projects. And usually, it’s a very good thing to do. However, I found out that many people use it somehow blindly: every time they need to extract a new class just … Continue reading

Posted in Architecture | Tagged , , | 1 Comment

Component development decision: low level or high level techologies?

If you want to develop software components targeting other developers and their projects, you should carefully decide what technologies would you develop for and support: Low level technologies, e.g. C++ or JavaScript (HTML5); High level technologies, e.g. .NET (WPF/Windows Forms/ASP .NET) or … Continue reading

Posted in Architecture | Tagged , , , , | Leave a comment

About TDD

In my opinion test driven design (TDD) is trading too much agility for quality, at least on projects that have ever changing requirements (like there are most of them, at least in my experience). And agility is very, very important nowadays. If you don’t get … Continue reading

Posted in Architecture, Miscellaneous | Tagged , , , | Leave a comment