I’m finally working on a new “application framework” course. I’d like your feedback on what content to include. Please read on to find out how to contribute!
I released Build Your Own Application Framework with ASP.NET MVC 5 back in 2014. I never expected that course to take off the way it did, and it remains my most popular Pluralsight course to date.
Unfortunately, a lot has changed in four years, and a lot of the content in the course has not aged well. I’m constantly asked, “Are you going to make an updated application framework course??” After a couple of false-starts, I can finally answer that question with “Yes!”
But this course is going to be different.
First, I’m going to be self-publishing this course. That does not mean I’m finished making courses for Pluralsight! I just wanted to try an alternate publishing medium this time.
Second, my goal is to cover only what I consider absolutely essential, and only for ASP.NET Core. That means no Angular, no Aurelia, just server-side .NET code. Assuming there is sufficient interest, I’d like to do an app framework course that covers topics for Angular at a later date.
Third, I want to create this course out in the open. I want feedback from the community early and often.
To that end, here are the major topics I’m planning on covering in this course. Please drop me a note either in the comments below or via twitter (@matthoneycutt) and let me know what you think. Are there things I’m not covering that you would like to see? Things I’m covering that you don’t care about? I want to hear from you!
Overview
The course will cover several tools and techniques, including:
- Lamar
- AutoMapper
- MediatR
- Entity Framework Core
Turbo-Charging ASP.NET Core IoC with Lamar
Learn about the benefits of Lamar over the built-in Microsoft DI container. You’ll see how to add Lamar to an existing project, how to organize things into registries, and how to leverage type scanning and conventions to make your code easier to maintain while opening up new patterns that can help you solve problems more efficiently.
Streamlining Your Controllers
Out of the box, ASP.NET Core controllers can quickly become a mess of attributes, magic strings, validation, data access, and business logic. See how a few simple changes can help you organize your code better, eliminate attribute soup, tame magic strings, and eliminate tedious property assignments.
Tame Your Data Access and Business Logic
Continuing on, you’ll see how to reduce down the amount of code that lives in your controllers to something more manageable, how to eliminate architecture layers that aren’t providing value, and how to push cross-cutting concerns out of your controllers.
Your Feedback Is Important!
So what do you think? If this “Essentials” course is something you are interested in, please let me know what you think of the outline.
Any chance of considering using a simpler ORM like dapper instead?
Hi Matt.
If i may suggest some topics, it´ll be:
How to deal with multi-tenant (give a subdomain to each tenant)
How to deal with localization
How to deal with timezones.
My motivation is: i´m starting a new web app, multitenant, localizable, with Asp Net Core + .net core and RavenDB.
It´s my first web first app, and don´t know the best way to deal with these topics, and some others.
Other topics will be:
Messaging
CQRS
Hexagonal Architecture
DDD
Hi Matt:
Just finished your new course on Ensuring Configurability – and really enjoyed it!
Regarding your new course, I have somewhat painfully made the transition to using Razor Pages (as well as Controllers and Views where needed). I’d appreciate learning your thoughts on how your application framework would apply to razor pages and where using Razor Pages would help simplify code and where you should use separate views and controllers
Hi Roger, thanks for the kind words!
I do plan to cover Razor Pages as part of my app framework course. I’m shifting it more towards an “Application Framework Cookbook” course, and I do plan to have sections that focus on Razor Pages.