Telerik Sitefinity OpenAccess and its Integration in Sitefinity Alon Rotem Introductions Alon Rotem Senior Developer @ Telerik Sitefinity SDK & Documentation Team Telerik Academy A proud member of the Telerockers rock band Contact Email: alon.rotem@telerik.com Google+: http://gplus.to/alrotem Sitefinity’s blogs: http://www.sitefinity.com/blogs Personal blog: http://www.alonintheworld.com Ivailo Ivanov Telerik ORM Team Lead Telerik’s OpenAccess blogs: http://blogs.telerik.com/openaccessteam/ Webinar Overview The basics: OpenAccess ORM Quick intro NuGet packages OpenAccess Samples Kit Integration with Sitefinity Fluent-mapping of persistent classes (i.e. code-first) Next level: Artificial Types OA Samples Kit Artificial API Demo Methods.cs methods wrapper Updating the DB schema Really Really Advanced Topics / Sitefinity specific: AgregateMetaDataSource Multi-Table Entities Fetch-Plans The Heavy Webinar Disclaimer (..and The Game of Thrones is coming!..) The Basics: OpenAccess ORM & Static Mapping OpenAccess ORM in a Nutshell-Scripting Object-Relational Mapper. Objects Database. A tool that supports development of data-oriented software applications. Supports a fluent API for mapping existing classes. Supports construction of a relational model to map to classes ("model first"). Integrated into Sitefinity and has features which were explicitly developed for this integration. Telerik’s OpenAccess team is now an integral part of the Sitefinity team. OpenAccess is used by many small-medium projects. In Sitefinity used to the extreme with heavy scenarios. Bookmark: Fluent Mapping Documentation http://www.telerik.com/help/openaccess-orm/fluent-mapping-overview.html Bookmark: OpenAccess Samples-Kit http://www.telerik.com/products/orm/features/samples-kit.aspx Demo Showing-Off x2: Object’s fluent mapping demos of (2 for the price of 1): In Sitefinity (Products sample) Kickstart from scratch with the NuGet sample package Level Complete! Next Level: Artificial Types Artificial Types Dynamically create persisted types. Create/extend your data layer in runtime: Add new types. Add new fields to existing types Refresh the data model on the fly. Bookmark: http://www.telerik.com/help/openaccess-orm/fluent-mapping-artificial-types-overview.html Demo Artificial Types Sample Really Really Advanced Topics AgregateMetaDataSource Multi-Table Entities Fetch-Plans AgregateMetaDataSource Bookmark: http://www.telerik.com/help/openaccess-orm/fluent-mapping-mergingmodels-aggregate-metadata-source.html Combines two or more metadata definitions to work with one context. Sitefinity-wise: When extending the static model with dynamic modules, this feature allows replacing the metadata at runtime and continuing to work with the extended context. Multi-Table Entities Bookmark: http://www.telerik.com/help/openaccess-orm/fluent-mapping-mapping-clradvanced-multi-table-entities.html Spans persisted objects on multiple database tables. The objects are implicitly broken-down. Sitefinity-wise: Feature developed for Sitefinty’s multilingul support. Fetch Strategies Bookmark: http://www.telerik.com/help/openaccess-orm/getting-started-root-gettingstarted-with-fetchplans.html Fetch strategies (i.e. fetch plans, i.e. eager loading) allow loading persisted objects related to other fetched objects. Sitefinity-wise: Used for retrieving only specific properties of persisted objects. The Sitefinity Connection Sitefinity defines mappings and metadata dynamically at runtime and replaces its existing context as needed. Sitefinity’s multilingual modules utilize multi-table entities in order to store strings in different cultures in dedicated tables. In multilingual multi-site mode, where different sites are associated exclusively with specific content-cultures, specific fetch-strategies are used for retrieving only strings in the specific desired cultures (stored in multiple tables per persisted content item) on any given query. Sitefinity around the world NORTH AMERICA +1-888-365-2779 BULGARIA +359-2-8099850 UNITED KINGDOM +44-20-7291-0580 GERMANY +49-89-2441642-70 AUSTRALIA +61-2-8090-1465 Winnipeg Houston San Diego London Boston Austin Munich Sofia Delhi Sydney