VITA: Application Framework

VITA is a framework for creating .NET applications that work with databases. It is a powerful implementation of pure .NET ORM. Supports modular construction of complex applications, query and data caching. It supports data models distributed over multiple databases. Provides built-in Authorization framework.
Works with MS SQL Server 2008/2012, MS SQL Compact Edition, MySql, PostgreSQL.

Highlights

  • Entities are defined as .NET interfaces - minimum coding required. Just 'string Name {get;set;}' for a property - compact and clear.
  • Entities are self-tracking - they maintain original and modified property values, automatically register for update.
  • Database model is automatically created/updated from entity model. Existing data is preserved. Database schema follows c# code.
  • Database keys and indexes are defined through entity attributes in c# - you can define most of the database artifacts in c# code, including custom stored procedures using LINQ syntax.
  • Automatically generated CRUD stored procedures. Alternatively, application can use direct SQL queries.
  • Support for one-to-many and many-to-many relationships. Foreign keys are automatically inferred from c# entity references. Properties which are lists of related entities are automatically "filled-up" on first read.
  • Full LINQ support for database querying.
  • Create Stored Procedures in LINQ - you can define custom stored procedures for SELECT, INSERT, UPDATE, DELETE operations in pure c# code, using LINQ syntax. The code will be compiled into stored procedures in database.
  • Database-first approach is fully supported - VITA provides a code generator that produces the complete source code for the solution from the existing database schema.
  • Full-featured data cache - you can specify a set of entity types (database tables) that must be cached - VITA loads the data in memory, and all subsequent data queries (including dynamic LINQ queries) are served from this cache. Additional 'sparse' cache holds most recently used records/entities from tables that are too big to be cached entirely.
  • Compiled LINQ Query Cache - dynamic LINQ queries are compiled into SQL on the first use, and later served from the query cache, avoiding the overhead of SQL translation.
  • Built-in Role-based Authorization framework - access permissions are configured at table/row/field level at application startup. During application execution all read/write operations by the current user are checked automatically (and transparently, behind the scene) by VITA. More details here.
  • Component Packaging Technology - with VITA we have a way to pack a set of entities/tables with the surrounding code into a self-contained component - entity module. Entity modules can cover specific areas of functionality, can be independently developed, tested and distributed, just like Windows Control libraries. The application is then assembled from independent modules, each covering specific part of functionality. More details here.
  • Standard modules - VITA comes with a number of pre-built modules: ErrorLogging, UserLogin, ChangeTracking, etc. More modules to come soon.
  • Custom validation. You can define a custom validation method for an entity - it will be automatically invoked before submitting the changes to database.
  • Automatic sequencing of update operations to satisfy referential constraints.
  • Full support for identity columns and auto-generated GUIDs
  • Computed properties.
  • Entities support INotifyPropertyChanged interface - readily usable in data binding and MVVM solutions.

System Requirements

*.NET 4.5, Visual Studio 2012.
MS SQL Server 2008 R2 or 2012; MS SQL CE 4.0; MySql 5.5, PostgreSQL 9.2

Additional Links

Last edited Feb 6 at 5:57 AM by rivantsov, version 103