Blog

by in .NET Core, C#, Entity Framework Core

Query Filters and Automated Audit Columns

I wanted to write a quick post about using query filters and automatically populating audit columns in Entity Framework Core since I see a lot of people doing this manually still. A common scenario in most applications is to do soft deletes on everything, typically with a column like “IsDeleted”. Another common scenario that is […]

by in .NET Core, ASP.NET Core, C#, Dapper, Entity Framework Core

Maximizing Entity Framework Core Query Performance

Entity Framework Core query performance is something that comes up often when working on projects that rely on it heavily. I have often heard that Entity Framework is not performant enough which then leads to everything being written as a stored procedure. Usually this happens for two main reasons: developers aren’t familiar with how to […]

by in .NET Core, Angular, ASP.NET Core, IdentityServer4, Security

IdentityServer4 in ASP.NET Core Part 2

In part one we set up our IdentityServer4 project and our data and core projects. If you haven’t read part one, you can do so here. In part two we’re going to add in an Angular web application using the implicit flow and an API that the web app will interact with. You can see […]

by in .NET Core, ASP.NET Core, C#, IdentityServer4, Security

IdentityServer4 in ASP.NET Core Part 1

If you’ve worked with APIs at all in .NET Core then you have probably had the need to work with tokens for security. You could roll your own set up just using the underlying functionality in ASP.NET Identity, or you could enable easy mode and use something like IdentityServer4. There are other options out there […]

by in Angular

Using an Angular Shared Service

An Angular shared service is a powerful tool to allow cross component communication. If you’ve used other Javascript frameworks like Backbone or Vue then you are already probably familiar with the concept of a service bus. In Angular, a shared service is what provides what is essentially a pub/sub messaging pattern. Before Typescript and the […]

by in Angular, Aspect Oriented Programming

Angular Interceptors

One of the great things that the new Javascript frameworks have introduced are practices that would normally be found on the server. Personally I am holding out hope for WASM and Blazor to save us from Javascript once and for all. That doesn’t mean we can’t improve our quality of life though by using what […]

by in .NET Core, ASP.NET Core, Domain Driven Design, Entity Framework Core, Patterns

Think Before You Use The DTO Pattern

Let me preface this blog post by saying that there are still times when a DTO makes sense. Also, this post is written from a .NET perspective, so some things may be different on your platform. What I want to address though is the tendency of many developers to just automatically create a set of […]

by in .NET Core, ASP.NET Core, C#, Entity Framework Core, Patterns

The Repository Pattern is Dead If You Use Entity Framework

That is, it’s dead if you are using Entity Framework Core. If you’re still using straight ADO.NET, or even just dapper, then the repository pattern still probably makes sense for you. If you’re using Entity Framework, then you really aren’t gaining much from doing so anymore. Five years ago, you could reasonably argue that it […]

by in ASP.NET Core, C#

ASP.NET Core Request Post Processing

If you’ve worked with Asp.Net Core to create APIs then you have more than likely run into situations where you needed to return different sets of data for the same model. One way to accomplish this is request post processing using an ActionFilter. Lets start with a common scenario. We have an internal enterprise application […]

by in ASP.NET Core, Domain Driven Design

Dealing with Validation – Domain vs Contextual

I’ve always found validation to be one of the most difficult and tedious aspects of writing enterprise software. No matter how you organize your rules, you are going to usually end up with duplication. To make matters worse, the rules aren’t written by developers, they are created by the business. This causes a disconnect between […]

    • This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.