Dependency inversion is a common software engineering concept. It is the D in SOLID. With DI we are intentionally not programming against a particular implementation. Often this manifests itself by passing the implementation into a service through its constructor. This is called constructor injection. Angular uses constructor injection within its architecture. Services are injected into…
Read more…
When all of us think of .NET development, we think Visual Studio. I’ve been a user of Visual Studio (VS) for years, and it is probably my favorite Microsoft product. If you compare VS to almost any other IDE, you will likely be left wanting. I have tried other editors over the years, but nothing…
Read more…
UI development can be a significant risk for a project. UIs are what users interact with, and waiting for the UI to be done at the end can endanger your project’s timeline or negatively impact a user’s experience with it. Building software in the most efficient way often starts by building from the bottom up….
Read more…
At Don’t Panic Labs, we have a pretty well thought out philosophy of software development. Philosophy is the combination of two Greek words philo (or “lover”) and sophia (or “wisdom”). So philosophy could be considered “love of wisdom.” Software development is what we do every day. We want to be wise software developers. We didn’t…
Read more…
Fingers on the keyboard is the fastest way to get a project off track. When writing software, jumping straight into code is almost always the wrong decision. Sometimes we architect-types think we need to start whiteboarding solutions. Starting there is also the wrong decision. What’s more important than either of those is requirements? We have…
Read more…
Unit testing is a valuable part of any development process. It isn’t as useful as many developers make it out to be; there are many things developers should be focused on more than unit tests. Code review is one such thing. But just because it isn’t the most important thing, doesn’t mean we shouldn’t be…
Read more…
In my previous post, we focused on binding some data in the UI to data being returned from our ContactsService. In this post, we are going to make this a little more real and modify that service to call an ASP.NET Core backend. For starters, let’s write a quick ASP.NET Core backend that will handle…
Read more…
Software is pretty amazing. Without software, a lot of problems could never be solved. Without software, we couldn’t do a lot of things on massive scales. But software has its problems. As a whole, we as an industry don’t have a great track record of preventing these problems. One type of software we would all…
Read more…
In my previous post, we took a quick look at Angular’s routing. In this post, we are taking a quick look at Angular’s data binding. One thing that’s pretty lame about our previous example is all the data is just backed into the page. With this blog post, we are going to pull static data…
Read more…
One of the great things about Angular is that it provides everything pretty much out of the box. You don’t have to string together a bunch of tools, you can just focus on solving problems. In this blog post, we are going to focus on the Angular Router. Since Angular is a single page application…
Read more…