About ARX.SDK
Design Philosophy
Consistency without sacrificing developer control.
These principles guide ARX.SDK's architecture and development. They come from the experience described in The Story Behind ARX.SDK.
Consistency Without Forcing Uniformity
Common operations should have a familiar programming model, but provider-specific capabilities should not be hidden or unnecessarily restricted.
ARX.SDK aims to make working with different data providers consistent without pretending that all databases work the same way.
Developer Control
The SDK should not dictate how an entire application must be designed or structured.
Developers should retain control over their application architecture, data structures, queries, and database interactions.
In practice Each table's id column is declared by the developer, once, at startup; ARX never guesses it:
ArxSchemaCatalog.Create().Table("account", ArxIdColumn.Generated<long>("id")).Build()Metadata-Driven Interaction
Entities and their attributes provide a structured way to represent and manipulate data.
This approach provides a familiar programming experience while allowing applications to work with data in a consistent manner.
In practice A record is an entity named after its table, and its data is a set of named attributes:
var account = new ArxEntity("account"); account["name"] = "Northwind Traders";Provider Awareness
Each database has its own characteristics, capabilities, and limitations.
The abstraction should respect those differences rather than hide them behind an artificial universal model.
Practical Engineering
The SDK should be useful in real applications, not just theoretically elegant.
Its design should be guided by actual development experience, maintainability, performance considerations, and practical use cases.
ARX.SDK is an evolving project. Its architecture and provider implementations will continue to grow as more database technologies and real-world use cases are supported.
The objective is not to create another restrictive framework, but to give developers a practical and consistent foundation for working with different data providers.