This post is just a container for the tasks related to creating the new low level API, which will be introduced in version 6.1.0.
The new low level API involves creating new Repositories, Factories, Unit of Work (Umbraco.Core.Persistence) and DTOs (Umbraco.Core.Models.Rdbms) for the current database schema.
POCO DTOs, which corresponds to a table in the database schema and decorated with PetaPoco attributes.
Repository Resolver, which will resolve a repository based on the entity and configuration in web.config.
MacroPropertyType resolver, which will resolve the MacroPropertyTypes that implement IMacroPropertyType (this is done in order to avoid a database lookup in the [cmsMacroPropertyType] table and treat the types as plugins instead).
''Note that we can't using caching on the repositories as long as we have to go through a Document when publishing''
Factory used by the ContentRepository to map to/from DTO
Factory used by the ContentTypeRepository to map to/from DTO
Factory used by the MediaTypeRepository to map to/from DTO
Factory used by the DataTypeDefinitionRepository to map to/from DTO
Factory used by the DictionaryRepository to map to/from DTO
Factory used by the LanguageRepository to map to/from DTO
Factory used by the MediaRepository to map to/from DTO
Factory used by the RelationRepository to map to/from DTO
Unit of Work
IUnitOfWork and IUnitOfWorkProvider implementation
PetaPoco specific implementation
File implementation (simple non-db impl. of UnitOfWork)
Port the serialization service from v5 to the codebase
Implement a simple query object that allows LINQ type queries and translates to SQL.
Implement a SqlTranslator for the query object.
Create custom PetaPoco mapper, which allows the Public API classes to be translated to Sql with the right column and table names.