
The cornerstone of all Nessos applications is not just an ordinary Object-Relational Mapper. It provides:

- Visual design of class hierarchies
- Automated generation of ER model from class hierarchies
- Automated generation of SQL and C# source code
- Visualization of ER model
- Automated reconstruction of class hierarchies of .NET assembly through Reflection

- Metadata-based persistence
- Application development independent of RDMBS in use
- Application development using object-oriented techniques and functional programming
- Native support of standard business objects
- Parameters model
- Security model
- Test-driven development through Unit Tests
- Support for Microsoft Visual Studio 2005, 2008

Vizualization of relational model

Automated generation of SQL of Database that corresponds to the Business Object Model
Detailed Technical Description of Nessos Object-Relational Mapper Features
- Mapping
- ActiveRecord based (1-1)
- Table - Class
- Property – Column
- Type of relations (1-1, 1-n, n-n)
- Single Table Inheritance
- Attribute based mapping – sensible default conventions
- Special support for mapping localizable columns
- Query
- (IQuery) Internal DSL for expressing statically typed queries
- Aggregate (SUM, AVG, MAX etc)
- Sub queries
- Functions (Trim, SubString, Abs etc)
- Support for joins (inner join, left outer join)
- Support for order by-group by clauses
- Support for Localization parameters in Select and Where clauses
- Polymorphic queries
- Flexibility in result types
- Strongly typed collections
- DataTable – for support in scenarios with flexible projections in reporting scenarios
- Custom parameterized SQL for not-supporting scenarios
- Base Type (BusinessObject) for one stop shop experience
- Object tracking management
- Transparent object Persistence
- Common retrieval methods
- Session Management
- Light-Weight Session Scope with transaction semantics similar to TransactionScope
- Support for implicit
- Lazy loading
- Transaction Management
- Caching
- Loading
- Lazy Loading
- Implicit - Automatic loading on member-Collection dereferences, plus caching inside session scopes
- Explicit loading with the use of Refresh methods
- Eager Loading (In order to avoid N+1 selects and the problem of multiple Left outer joins we use one select query for each depth level and at the end we reconstruct the object graph)
- Based On Depth
- Unidirectional deepening for scenarios that demand no circle references(like Xml Serialization)
- Based On Dereference Paths from Root
- Support n-Tier scenarios
- Self-tracking Business Objects
- Silverlight support – WCF
- Winforms support – ASMX
- Concurrency management
- Optimistic concurrency with the use of TimeStamp Columns
- Transaction Support
- Explicit API for begin-complete-rollback transactions
- Implicit support (inside Session Scopes) for begin-complete-rollback transactions
- Localization
- Flexible String Localization with the use of special container type
- Attribute decorated enums
- Validation
- Attribute based (Presence, RegEx etc)
- Per Business Object cascading Validation
- Flexible Rule set Validations
- Customization-Configuration
- IoC based configuration
- Multiple available Loggers for injection
- Multiple OS/Platforms
- Multiple Databases Support
- SQL Server 200x, Oracle, PostgreSQL