SiteCore Technical Interview Questions

I was asked these questions in a technical interview (tech check) for a SiteCore developer position. I thought I would jot them down for future reference. Maybe they will help someone else! :)

1. How many databases are in SiteCore?
Master - authoring database
Core - all of SiteCore's settings
Web - only the latest published version of content driving the web site.
http://stackoverflow.com/questions/13342755/what-is-the-difference-between-sitecores-core-master-and-web-databases

2. What is SiteCore? What framework is it based on?
SiteCore is an enterprise level web content management system (CMS) based on the .NET (Microsoft) framework and C#. www.sitecore.com

3. What is a strongly-typed language? Why is C# considered a strongly-typed language? 

4. (C#) What is the difference between a reference type and a value type?
Technically, this is a C# question but it is definitely a relevant SiteCore question since most of the logic in SiteCore is programmed in C#. This is one of the main differences from Java or VB languages, C# provides two types, a class and a struct. A struct is a value type. A class is a reference type. One difference is how memory is allocated. When a value type instance is created, a single space in memory is allocated to store the value. Primitive types such as int, float, bool, and char are also value types. When the runtime encounters a value type, it accesses its data directly. This is very efficient and effective use of memory. 

With reference types, an object is created in memory, a placeholder, if you will, that allocates an empty space in memory and reserves it for the object's data. When an instance is created of that object and stored in a reference variable, it can be referenced by all the methods available to the class, depending on if it's public or private method. So functions and methods can change the data in a reference variable, whereas a value has to be returned to the value variable in order to be changed.

int AddTen(int number)  // parameter is passed by value
{
    return number + 10;
}
void AddTen(ref int number)  // parameter is passed by reference
{
    number += 10;
}

See also, Value and Reference Types

5. What is A/B testing in terms of web development?

Add comment

Loading