Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Synthesis is a development framework for Sitecore CMS that enables developing more reliable and maintainable sites in less time than traditional Sitecore development. It is a strongly typed template object generator that’s easily understandable for developers with either a Sitecore or traditional .NET background.
Some key features:
- Synthesis is designed with the developer's user experience in mind. Strong typing, IntelliSense support, and a simple but powerful configuration model allow you to start out easily but customize as deep as you need without resorting to hacks.
- Synthesis thinks like Sitecore. It uses the same conventions and terms you're already used to, and implements all standard Sitecore functionality such as Page Edit/Design mode, DMS, and rendering data sources.
- Full support for Sitecore 7 LINQ querying against Lucene or SOLR indexes, including transparent conversion of index-backed items to database-backed items. Use one unified object model for index queries AND database queries!
- The architecture behind Synthesis has been proved over five years of active development on more than ten major sites.
- Using a site architecture based on template composition? You'll love Synthesis. It generates an interface hierarchy to represent template inheritance hierarchies, allowing you to easily interrogate an item to see if it has a certain set of fields or hide a rendering if the data source doesn't contain the template it expects.
- Simple, extensible field API makes it easy to read or write all template field types in an efficient, strongly-typed manner. Never have to deal with boilerplate LinkManager or media item code again.
- Lightning fast. Synthesis can turn 1000 Sitecore items into their strongly typed equivalents in less than 1 millisecond.
Table of Contents
- How Synthesis Generates Objects from Templates
- Getting Started: Installation
- Getting Started: Configuration
- Working with Template Objects
- Using Sitecore 7 LINQ with Synthesis
- Keeping your Template Objects Synchronized with Sitecore
- Using Synthesis with Blade
- Unit Testing with Synthesis
- Best Practices
- Upgrading to Synthesis 7
- Synthesis was designed and written by Kam Figy
- Thanks to the whole ISITE Design tech team for invaluable design conversations, commentary, patches, and real-world testing
- The Sitecore 7 dev team, especially Tim Ward, Martin Hyldahl, Stephen Pope, and Alex Shyba for their help leading me down the right paths and fixing bugs in Sitecore 7 so I could make the mapping work right in Synthesis
- Thanks to Robin Hermanussen's Compiled Domain Model for the idea of checking if the model is in sync with Sitecore