Step into ByteAether, where cutting-edge technology fuels intellectual discovery. This platform is dedicated to providing robust content on .NET and C# development, advanced software engineering principles, and the latest advancements from our open-source initiatives. ByteAether offers practical tools, discerning insights, and collaborative discussions, empowering developers from novice to expert.
Our content spans NuGet package releases, strategic approaches to complex technical challenges, and refined techniques to streamline your development workflow. To learn more about the expertise driving ByteAether, please visit the About section. We appreciate your visit and encourage you to explore, learn, and elevate your coding proficiency.
Several years ago at Microsoft, I worked on a back-end service responsible for routing high volumes of traffic. The service functioned as a traffic dispatcher: we received an incoming request, determined the most appropriate downstream destination, and forwarded the payload.
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 Linq2Db.
Welcome to the sixth post in our series on building a feature-rich, automated enterprise Data Access Layer (DAL) using C# and Linq2Db. 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.
We are excited to announce the release of ByteAether.Ulid version 1.3.2, which is now available on NuGet. This release introduces official support and dedicated binaries for the new .NET 10 platform, continuing our mission to provide the most performant, secure, and specification-compliant ULID (Universally Unique Lexicographically Sortable Identifier) implementation for the .NET ecosystem.
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 Linq2Db, 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 ...
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.
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 Linq2Db, 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.
Welcome back to our series on building a robust, enterprise-grade Data Access Layer (DAL) with C# and Linq2Db. 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.