Logo ByteAether
Skip to main content

Series “Enterprise DAL”

Building an Enterprise Data Access Layer: Automated User Auditing and Series Wrap-up

Welcome to the seventh and final article in our series on building an enterprise-grade Data Access Layer (DAL) in C#. Over the last six posts, we have methodically built a robust, automated, and secure DAL using a database-first philosophy with C# and LinqToDB.

Building an Enterprise Data Access Layer: Composable Row-Level Security

Welcome to the sixth post in our series on building a feature-rich, automated enterprise Data Access Layer (DAL) using C# and LinqToDB. In our previous articles, we established a powerful architectural pattern: a composable global query filter system. This system allows us to define cross-cutting concerns as simple interfaces, automatically combining and applying them to every relevant query.

Building an Enterprise Data Access Layer: Composable Multi-Tenancy Filtering

In our previous articles, we established a robust foundation for our enterprise Data Access Layer (DAL). We began with a database-first approach using C# and LinqToDB, then implemented automated auditing for CreatedAt and ModifiedAt timestamps. Most recently, we engineered a powerful, composable global query filter system to handle soft-deletes transparently. This architecture was designed for extensibility, and in this post, we will leverage that investment to tackle one of the most critical...

Building an Enterprise Data Access Layer: Automated Soft-Delete

Welcome to the fourth installment of our series on building a robust, enterprise-grade Data Access Layer (DAL) in C#. In our previous post, we established a powerful automated auditing system to track entity creation and modification times (CreatedAt/ModifiedAt). Now, we will tackle another critical enterprise requirement: soft-delete.

Building an Enterprise Data Access Layer: Automated Auditing

In our previous posts, we laid the foundation for our enterprise Data Access Layer (DAL). We established our core principles: a database-first philosophy, the use of C# and LinqToDB, and a commitment to automating cross-cutting concerns to enhance security and data integrity. We also structured our project, set up a scaffolding interceptor to enrich our auto-generated entities, and chose ULIDs as our primary keys for their performance benefits.

Building an Enterprise Data Access Layer: Database and Code Structure

Welcome back to our series on building a robust, enterprise-grade Data Access Layer (DAL) with C# and LinqToDB. In our previous post, we established the core principles and non-negotiable capabilities our DAL must possess, including automatic multi-tenancy filtering, soft-delete, and auditing. Now, we'll begin laying the foundation for this powerful system by defining the database schema and the initial code structure.

Building an Enterprise Data Access Layer: The Foundation

In enterprise software development, the Data Access Layer (DAL) serves as the critical interface between an application's business logic and its underlying data store. Beyond basic CRUD operations, a robust DAL is fundamental for ensuring data integrity, security, and operational consistency. It proactively addresses cross-cutting concerns, preventing inconsistencies, defects, and potential security vulnerabilities that arise when these responsibilities are left to the business logic.

See all series.