Project complexity, for its own sake, bites back.

Tom Chizek
9 min readAug 3, 2020
Photo by Markus Spiske from Pexels

Introduction and Background

I was going to write a follow up of my article “Setting up Entity Framework in an MVC .Net Core project,” showing how easy it is to connect the MVC controllers and pages to the Entity Framework database and classes. If I were satisfied with showing code that worked but had ugly hidden bugs and traps embedded in the structure, I could have had that written and published Friday. But no, I have to be ethical and work out what my bugs are before I give examples. So, I can’t show you how easy it is to do, because there were some subtle problems with the underlying framework I had built.

Interestingly enough, it has little to do with the Entity Framework classes I talked about in that last article. There are some subtle missing parts of the project. The first mistakes I made were in initially configuring the Entity Framework model and the structure of the NuGet Packages. Going back to my article “Private NuGet Packages,” the article wasn’t wrong, but I wasn’t clear enough on the implications. I am going to correct that mistake, along with talking about some of the limits of even what appears to be a well-written Test set for complex data-driven user-interactive projects.

Setting the background just a bit, I have my star system database with a simple web front-end that shows Razor views that show each element in a list. So the top page shows the Star Charts I have loaded. Select a Star Chart. The view changes to the details of that chart, which includes a list of all of its star systems. If you select a star system, the view changes to the details of that system, which provides a list of its planets.

The data structure reflects this. There are Models for each of these objects with their relationships defined in the Entity Framework model. The star systems and planets have location, motion, size, and mass as part of the object. For size, mass, and the underlying components of location and motion, I have modified an open-source library UnitsNet that supports unitized values, but not in the units or scale needed for astronomical distances and velocities. I am planning on offering my contributions eventually. Still, honestly, I am unsure how useful these units are too normal users since scale I use to be, parsecs, petatons, and…