Learn about the benefits of good software application architecture.
- [Instructor] To understand what good software architecture is, we first have to discuss what good software is. Software is rarely the end goal, but rather a tool in the process. This means that it needs to stay out of the way and facilitate a process, rather than being the process for someone to deal with. For example, I don't want to use a word processing program, I want to compose a document. I don't want to use a weather app, I want to know something about the upcoming weather. Good architecture is the difference between a well-made tool, and a poorly made one.
The poorly made tool might work for a little while, and it might break the first time that it's used. Good tools can be repaired, or even upgraded. Poor tools are thrown away. Good tools are designed with certain parts in mind that are easy to replace, like filters or blades on a lawnmower. Good architecture helps you build good tools. Good architecture changes constantly in implementation, but very rarely in principles. The difference between well built software and average or poorly built software is substantial.
Smart architecture can make software easier to write, maintain and pass on. It isn't just about fast, clean and concise code, but also about the full life cycle of the software being written. The goal of this course is not to define a perfect architecture to use within any framework, but rather to gather a set of practical tools that will make it easier to make smart choices for your particular situation. While using Entity Framework can really simplify how you access data, if not well encapsulated, it can find its way into every part of your application.
This can easily snowball into not knowing when and where the application is hitting the database. When performance issues and bugs begin to occur, they become much harder to find and fix. Entity Framework allows a lot of options when choosing a given application's architecture. Some of which can cause a lot of problems as you move from examples into the real world. Other features are only useful in very narrow scenarios. This course should allow you to move from software that just works to software that's good.
Good software is understandable, extensible and maintainable. These lead to low bug rates, confidence in modification, as well as happy developers, product owners and consumers. First we'll briefly discuss good architecture in general, then focus in on how Entity Framework is a part of that architecture and the specific constructs that make using Entity Framework better. The examples in projects will all use Entity Framework Core. But almost all of the concepts will apply to earlier versions of Entity Framework.
Some concepts will even apply to data access in general, without any framework.
- What is good application architecture?
- Real-world software and the SDLC
- Common knowledge and maintenance
- Choosing an architecture
- Design patterns with EF
- Debugging and error handling
- Architecture for the web with ASP.NET
- Designing for unit testing
- Strategies for dealing with common performance issues