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…
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…
#10 – “It’s not really the best, but…” This is often heard when developers don’t come up with the best solution and have to compromise to something that isn’t quite wonderful. #9 – “What do the logs say?” When problems occur, the first place to look is usually the logs. This actually might be…
Read more…
Delivering applications for mobile devices is essential for many business applications. For much of the business software we write at Don’t Panic Labs, some sort of mobile experience is necessary and can be done in many ways. This post will walk through many of the options available today. There really isn’t an “always do it…
Read more…
This afternoon, Doug Durham presented the afternoon keynote at the 2018 Heartland Developers Conference. In his presentation, entitled “Be the Hero – Stop Being the Development Villain”, talks about the ways we as developers can sometimes be the villain and contribute to why software often breaks. But there are other villains in this story, ones…
Read more…