This blog post may seem a bit unnecessary, especially to anyone who’s already worked a fair amount with Sitecore. Yet I’m rather surprised by the number of clients we’ve worked with who have already purchased Sitecore and made the decision to go with it but aren’t sure how to realize its full potential because of a lack of understanding the technical foundation that is Sitecore. Sure, they know the software is a Content Management System, and they certainly know about the Digital Marketing Suite – but ask them what Sitecore really is, and you’re likely to get no answer or the standard “it’s some technical magic, voodoo thing”.
Now, a lot of the users of Sitecore are marketers or regular business people, and so we have to give them a fair break about not knowing every single detail of the software they’ve decided to spend money on. Certainly, Sitecore has been designed so that these non-technical people can run their implemented site without needing to know all the gory technical details. However, there comes a point at which not understanding what your software consists of can cost you because you’re unaware of all that it can do or how it operates. After reading this post, I hope that even those readers who are non-technical will better understand what Sitecore really is, and thus will be able to utilize the software to its full potential.
Before I start getting into what could be considered fairly technical to a marketer / business person, let me reiterate that it is not a requirement for any marketer or business user to understand the technical side of Sitecore in order to utilize it. The point of this post is to increase the understanding of non-technical Sitecore users so that the communication between them and their technical implementation partner can go more smooth, and both sides are able to speak at least a little of the same language with each other. My hope is that this piece is not only helpful to those non-technical users of Sitecore, but is also valuable to the designers who work on the fringe of Sitecore without ever really being exposed to the actual software itself. My experience with some designers is that they sometimes have a hard time conceptualizing a new site or portion of a site because of a lack of awareness as to what Sitecore is – which I again hope to reduce through this post.
At its core, Sitecore can basically be thought of as three separate technical pieces. The first piece, the “foundation”, so to speak is the database. This is where Sitecore stores all the content management data that marketers input into it, as well as storing all the analytical data associated with DMS, and any workflows, security, etc. If you want to get very specific in your details, Sitecore is actually a number of databases, which is what allows the preview / publish functionality, along with other functions. There is no real visual component to the database, but it is critical to Sitecore. Typically we’ve installed the database portion of Sitecore into SQL Server, but there’s no constraint that says you have to do so. This means that if an organization already has Oracle as its database server they can just as easily integrate Sitecore. Earlier I referred to the database portion of Sitecore as the “foundation” of the software – I think that’s the best non-technical analogy I can come up with. Foundations are often unseen, but obviously without them, an entire structure becomes unstable and eventually collapses.
The second technical piece of the Sitecore software is the GUI (Graphical User Interface). If we continue our above analogy, this piece comprises the doorways (or gateways) of our structure. It is probably the piece that users are most familiar with, as it’s really the only piece of the software that is “seen”. Even if you’ve only gone through an initial demo of Sitecore – this is what you saw. So, I won’t spend a lot of time on this other than to say that it is the piece of the software that allows you to enter your content, and view your reports. I will say that the GUI is built using standard ASP.NET as its framework, and thus can be manipulated as almost any other ASP.NET site can be.
The third piece of the software is the API (Application Programming Interface). This is what allows developers such as myself to interact with the data that users have stored in the database by entering the data through the GUI. It also allows us to integrate external data with Sitecore data. For non-technical users, think of the API as the plumbing and utility lines of our software, running data and information from one spot to another (including outside our structure), and maybe even transforming it along the way. Like the GUI, these pipelines (coincidentally an official term, not just used to further my analogy) are built on ASP.NET. This is an important point because it means that whatever can be done with ASP.NET can be done with Sitecore – and as a .NET developer for nearly the last 10 years, let me tell you, there’s a lot that can be done!
So those are the three pieces that comprise the Sitecore software when you think about it on a technical level. If you’ve been following along, you probably have a question or two about my analogy. After all, we have a foundation, some piping into and out of as well as throughout our structure, and a few doorways…but there’s a lot more to a physical structure than that right? Where’s all the rest? Well, that’s up to users to build. If you think of our structure as a custom house, the builder will often times dictate the foundation, and the type of utilities being put in, and while the doors may be user-customized, there will certainly always be doors. After that, the buyer of the house is free to make a lot of decisions about their house. Sitecore is very similar in this regard – the software itself has given you a framework that allows you to enter your data, but it’s left the details of that data entirely up to you. Hiring a capable, experienced firm (like Perficient) to build your frame (IE: Site Architecture) is crucial, but after that, you can paint the walls any color you’d like and add your own furniture and decorations.