Thursday, November 28, 2013

SITECORE: Interview Questions & Answeres Part 3

Q-1 What are the top 8 Concept  of the Sitecore ?

Answer:-We have divided top 8 concept of Sitecore into two subset first is Data and second is presentation. Sitecore is based on MVP patterns and here we separate Data Concepts and Presentation concepts clearly which give advantage of Re-use and better control over the content. This way of programing is contradiction to traditional ASP.NET based programming.

DataPresentation
Data BaseLayout
Data TemplateSubLayout
FieldsRendering
ItemPlaceHolder
In following question we discussed the Data Part only.

Q-2 What is Database?
Answer:- Sitecore store its all content / information in relational database available in market. By default Sitecore comes with Microsoft SQL based data base in form of .mdf and .ldf files which you may attach with you MS-SQL Instance. Sitecore also supports Oracle, MySQL, IBM DB2.
By default Sitecore have three database Core, Master and Web. Each have its own purpose and role to play.

Q-3 What is Data Template / Template? Why we need to create Data template ?
Answer:-  Data Template in Sitecore have two purpose, first is they define the Data Structure for an Item. Second they also define how data is going to be edited and shown to business users in Sitecore Shell / Sitecore Content editor.
To do comparative study Data Template in Sitecore are similar to SQL Table in traditional programming world of programing where we create SQL Table Structure to store information. So it also means that as many information(Business Entities) we need to store we generally create those many SQL tables in traditional world. So same logic applies in case of Sitecore where we need to create those many data templates as many information we want to store and use in Siecore.
Generally in Sitecore we don't create SQL Tables.

Q-4 What is Fields ?

Answer:- Fields are equivalent to the Columns\Tuples we create in SQL tables in traditional programming world. So collection of Fields are called Data Templates. Field is the smallest entity which define type of single value stored within the data template.

Q-5 What is Field Types ?
Answer:- When we create / add fields in the Data Template then we need to select the field type which basically define the type of value going to store in that particular field. In case of Sitecore we don't primitive data types like var char, int, float etc., But here we have field type like 'Single Line TextBox', 'Rich Text Box', 'Image', 'DropDownList' etc.,
As you notice these field types not only define what kind of data is allowed in field but how that field is going to render on the content editor.

Q-6 Can you have custom field types ?

Answer:- For most of the general requirement sitecore has already provided enough field types. Still you for your own custom requirement you may create your own field types also.

Q-7 What are the types of Data Template is available ?
Answer:- Sitecore users create items using one of three template types: data templates, branch
templates, and command templates.
Data Templates form the framework around which items are built. They define fields used to control how data is entered and can inherit from other templates to enable reuse. 
Branch templates—allow you to create a set of items rather than a single item at a time.
Command Templates—allow you to insert of items according to logic rather than predefined structures.

Q-8 In Sitecore Multiple Inheritance of Data Template is possible, can you explain with example ?

Answer:- A data template inherits the sections and fields defined on its base templates. You can see the base templates associated with a data template in the Inheritance tab in the Template Manager or Content Editor.
A data template can be based on any number of data templates, not just one. Occasionally more than one inherited template will contain the same field or field section. In this case, the UI will merge these fields or field sections to prevent duplication.

Q-9 What is Standard Values in Sitecore ?
Answer:- Standard values are a way of having default or fallback values for fields in Sitecore, meaning that when items are created, you can specify a field value that should be used by default. This does not only account for custom fields you build, but also standard fields in Sitecore such as presentations and insert options. This means that you can specify a value on the standard values, and when you create a new item which inherits from this template, it will by default use the values specified on the standard values.
To read more about standard Value or why masters are discontinued from Sitecore 6.0 onwards please read this great article by Jens Mikkelsen  
I personally recommend to go through his complete blog as that is my one of the corner for reading about Sitecore.

Q-10 How Data / means Items or other information related to it is exposed by Sitecore to you as Develoepr?
Answer:- Sitecore use good things from two different world of Data Sources. Sitecore end of the day store all its information in relational world which is MS-SQL, oracle etc., But at time of exposing the same data it exposes and represent in Sitecore Shell as Hierarchical Data Source. Because of this Developer can use XSL to render the same data or use other XML based technology to navigate the data. Developer can also use the .net based InMemory Object collection of Data which is based on generics in .NET, which you may write normal foreach loop also or modern Linq to get you data.
  
To Read and able to answer all possible questions related to Data Template or in other words Data Deifintion you need to go through online PDF from Sitecore itself.


references:
http://insitecore.blogspot.com/2013/05/sitecore-interview-questions-part-2.html

SITECORE: Interview Questions & Answeres Part 2

Is there compulsory to put the new picture in a certain place?
No there is no designed place for new pictures in the media library, so we may choose our own folder for this, but we must be aware to use a common place because the folder numbers is quite big. Also we must know the purpose of the folder before doing anything.

When editing a page and publishing it, the modifications are not visible, why?
When the user clicks publish, the program may tell you that the publishing was successful even if the version published is not the same with the version we have worked at. For this to not happen we must unlock the page version prior to publishing.

After we upload a picture on a Sitecore page, even if it may look good in the media library, when we are in the content editor the image looks bad, why?
Recent uploaded images may appear bad in the content editor if we don’t hit the save button. It is not always but it happens often, so we have to click save and then Sitecore will understand better that the new picture is the right one that needs to be showed.

Would it be possible to avoid anchor link anchors to be transformed into links by Sitecore?
In Sitecore, text lines don’t have to be transformed into links, but there is another way to make an anchor. We must put the cursor above the thing that is out anchor’s destination, with no text highlighting. After that we should click the hyperlink button to make the anchor and then go on with the rest. This is the right procedure to avoid text transforming into an undesired link.

What is the best place for our Word and PDF documents?
Word, PDF, Excel, Power Point documents will have their place where the images are, in the media library, so they don’t have a particular folder, they must be placed wherever we place the pictures.

Why we are unable to make new folders in media library?
The method in the editing window with the “Insert Sitecore Media” button (the one that looks like landscape) that appears to us in a dialog box doesn’t work. We must do something else instead. After we save what we have done until now we will terminate the editing window and click on “Media Library” which we will find in the top right corner of the display and looks like a little blue bar with a white arrow. From here we will create a new folder; we must also publish it prior to inserting pictures on it. To return to our page we must hit “Content Editor” from the blue bar, the new folder will be visible on the next use of “Insert Sitecore Media”.

What is the meaning of the sea watchtower image that appears at Sitecore log in?
This image appears because you are not logged in to the Content Editor, but to the developer tool to the Desktop. The button from the bottom left corner of the display must be pushed (it has the “Sitecore” label on it), then we must hot the “Log off” button for returning to the login part. From here the login procedure will be normal: we must hit “Content Editor”, insert the user and password then “Login”.

When a page is verified with the Page Editor button on the intranet, a picture that we didn’t really put there could appear, why does it appear?
We don’t have to change this. It is a standard for the size and placement of pictures given by the Sitecore Intranet Portal and the place where a standardized picture should be found is showed.

When we make cloned items in Sitecore 6.4, modify the template to an edited copy is it true that the parent of the clone’s inheritance will be damaged?
Since we can think that clones are not fully fledged items so modifying a template is not damaging the contruction of the clone.

How can we access pages in the way that they behave like folders?
First we must make sure that add AspxExtension is set to false in LinkManager and then we have to map the wildcard extension into ISS. According to what version of IIS we do have there are many ways of doing this.

In what way is the use of XSL better than C# in Sitecore?
XSLT has advantages over other languages in the way that it gives you the possibility to customize or reuse a large variety of pages or various structures for source documents or other structure. For doing this a rule-based processing model will be used, a thing not liked by most people because of the apparent difficulty that is has on first use. Even if this seems hard at first, it can be viewed like a long term investment. XLST has no performance issues, if a website appears to have performance problems, it must be from other reason.

What is the purpose to use a CMS?
This is not a hard question, but we don’t have to focus on managing web content as the strength of a CMS because this is not the entire picture. Content Management Systems give us much more than content management, like giving us the possibility to get the content ownership outside of the subject matter experts. This thing is known to have impact on all CSM platforms like Sitecore, Umbraco, Interwoven, Drupal, Ektron, WordPress or others.

How do we implement Sitecore?
Sitecore CMS uses the .NET technology, so if our company is a Microsoft shop, Sitecore will fit great. Sitecore is better than many other platforms based on .NET like Sharepoint or Opentext.

Pre-implementation
Before we choose Sitecore or any CMS we have to consider our processes and workflows. We must to see where we will put our content and how will we publish it, what strategy and what architecture do we have, what needs to be changed etc. After we get answers to these questions (which were not really easy) we can employ a consultant if we have the required money to help us further.

Implementation
After pre-implementation we have to implement our Sitecore CMS platform. The first phase is gathering our staff and makes some training to become certified. Being more than a simple paper, the certification helps our team to be more in the know of the Sitecore terminology. If this phase is skipped we will have to do it anyway later at a higher cost so it’s better to save money now.

What do we know about these three parts of CMS implementation: Development, content and training?
Development: Is the same as other .NET development, it is not hard but we must focus on the platform architecture, the IT infrastructure
Content: Now that we have a Content Management System we can begin the content architecture implementation and putting content in the Sitecore tree. This job has to be done by one content team and not by the content owners.
Training: Not only that we have to make the website, content and applications, but we must also begin the introduction of the Sitecore CMS the users of the company. This implies having a lot of meetings, training and talking about the purpose and the advantages of CMS. We also have to see end-user training as very important.

What is the meaning of Sitecore?
Sitecore is a software platform that is good for making and updating full featured and dynamic websites of every possible type. It has the advantages of scalability, flexibility and can very well integrate in systems, marketing organizations and investments giving the visitors a very dynamic experience.

What is the difference between these Content Management Systems: Sitecore, Umbraco and Episerver?
A: Episerver has a lot of positive feedback. Sitecore has the enterprise level and the price is also at the enterprise level. Sitecore is developer friendly, extensible and has a big community is case we look for support, it has a content structure as a tree of nodes, it is known to lead the content management market and is highly rated by many companies. Umbraco has many similarities with Sitecore being constructed on ASP.NET but is a little cheaper. It also has a great community. Actually we will choose one of these depending on taste, money and the style that we have when working.

How is the deployment of an already made Sitecore 6.2 site to a new environment?
If we want to move a Sitecore installation it is not hard at all. Usually we should follow these steps:
a)    We must set the new environment: SQL server, IIS, security etc.
b)    We have to take out the local databases and stop IIS.
c)    In the new environment we must move the root solution folder and every other stuff.
d)    The databases must be out in the new SQL server.
e)    The IIS website has to be made the website folder pointed.
f)    The file ConnectionStrings.config has to be changed.
g)    Also the final path to the data folder has to be changed
h)    We must click go!
Sitecore Installer is optional; we don’t have to use it if we don’t want. When Installing, we should consider these things also: We have to move the data folder out of the webroot because otherwise people can download our license file with the simple command: website/data/license.xml; we have to make a .config include file for the settings of our machine; we must deploy our updates through packages to the new environment; we must assure to maintain the Sitecore version.

How do we manage errors in the case we us multiple Sitecore websites?
When we make a multiple-site project in Sitecore we have to use webconfig’ error ErrorPage, LayoutNotFoundUrl, LinkItemNotFoundUrl, ItemNotFoundUrl, this is for a single site. If we want to show a different error page for every site we can store the error page URL’s of every site like attributes for the elements of /configuration/sitecore/sites/site from web.config with the extending of the Sitecore.Sites.SiteContext class. For ItemNotFoundUrl we can use a file or item as a 404 page.
When 404 is managed with items we can add a processor for the pipeline httpRequestBegin and the context item will become th 404 item if we have a null context item.In the case of files overriding Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleItemNotFound(), also Sitecore.Resources.Media.MediaRequestHandler.DoProcessRequest(), after that we will update the references of the file web.config.
For ErrorPage we sould do the overriding of Sitecore.Pipelines.RenderLayout.SecurityCheck.Process and after that update the web.config reference. For LayoutNotFoundUrl the overriding must be done to Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleLayoutNotFound and update the web.config reference.For LinkItemNotFoundUrl we can add a processor for the piepeline renderField to replace the initial value of the setting with the corresponding value of the context site.

What is the purpose of the “shared” checkbox that we find if we add a field to the template?
When checking this box, the field has a single value regardless of the parent item version. When setting the shared property, if we modify the value of the field it would be seen also in all the versions or languages. Using shared fields is not a recommended option because they don’t relate to workflow.

How can create only one form for many pages in Sitecore?
Usually Sitecore makes one new form for every new page. For doing one form for multiple pages we must access “Presentation/Layout” where we will hit “Form Interpreter”. Now everything depends on the WFFM versions use (1 or 2). If we use 2 we can find the “FormID” field for our selected form. We have to add the same rendering for each page in which we want to see the form. When using version 1 there is this “FormID” parameter along with Sitecore ID, this ID has to be copied along with the similar renderings for the other pages.

Which is the usual maintenance process that we must make on a Sitecore server?
The phases of maintenance for a Sitecore server are:
a) The IIS, the System logs and Sitecore must be checked for errors.
b) We must test the response times regarding the capacity problems within ISS logs.
There are other procedures that have to be done monthly to assure that Sitecore functions properly. Here are some of them:
a)    The links database has to be reconstructed if we update the content constantly.
b)    The search indexes have to be reconstructed in the case we use Lucene search and update content constantly.
c)    When moving or deleting much content we must be aware of the fragmentation.
These measures are for the case in which we are always changing content, in rest Sitecore can manage the things alone, and usually we only need to clean the unnecessary files. Other common things that we must consider are:
a)    The logging can be changed to fit our needs for example the initial value is Warn but this level can be increased.
b)    We must assure about the installation of the performance counters.
c)    The cache of Sitecore can be modified to fit the memory installed on the server.
d)    People using version 6.0 should upgrade to 6.1 at least because version 6 makes a lot if useless traffic and it affects the performance very much.

Can we copy fields if we make new version in Sitecore?
The Shared and Unversioned checkboxes from Sitecore permit us to spread the value of fileds to languages or versions. But can we copy the fields from the initial language into a new one if we put a new version of the language? By default, no but there are some methods:
a)    If we use “Translate” we can obtain the view of two item versions in two sides, being able to makes changes between them, we can’t do the copying automatically but there is the advantage of not having to modify the versions all the time.
b)    There is another method like writing some event handlers to communicate with the Sitecore API. Then the old version values have to be copied to the new version.

What is the way to get in the settings of Sitecore programmatically?
There is a good way by accessing the code. We can find the settings that we look for in the data folder. We also may see the Sitecore Configuration Settings class with the property of static DataFolder: string dataFloder=Sitecore.Configuration.Settings.DataFloder.

How can we move, delete or select several items in the content editor of Sitecore 6?
Normally it is impossible, but there are some indirect ways to do this, for batch copying we can copy the Presentation Configuration to several different page links (with the aid of “copy to”) but for many people that doesn’t really work. We are lucky that something new came out:Sitecore Rocks that is available for download. With it we can process several items by hildin Ctrland then use the operations from the context menu.

In Sitecore 6.4 fast query, is it possible to have relative path beginning with the item that the query is running from?
There isn’t any way of operating fast query from the item context.

Elaborate on the different ways in which you can support a multi lingual site within Sitecore
  • You expect the candidate to illustrate how important the setup of the content tree is pre-development.
  • You expect them to mention the “Multisite” approach (one site per domain)
  • Using Sitecore’s built in language versioning.
How can you grab the specific version of an item programmatically?
  • Sitecore.Context.Database.GetItem(id/path, language);
How do you publish an item programmatically?
  • You will need to referent the parent database and the target databse, e.g
  • You will need a reference to the target/fall back language
  • Use Sitecore.Publishing.PublishManager.PublishIncremental or any appropriate publishing type within the Publishing manager class
What are workflows, how do you set an instance up within Sitecore
  • The allow you to attach a sequence of events and states to a Sitecore item.
  • They can be setup within the Sitecore system folder
How do you pass parameters to a workflow action and how can you call a type within your code once a workflow state has been triggered.
  • Use an auto publish action template for the state
  • Pass in the Parameters as key/value pairs in the parameters field.
  • To call a type, provide the fully qualified path of the type in the type string field eg. CompanyName.TS.BusinessLogic.Workflow.Actions.CustomAutoPublishAction, CompanyName.TS
What are Aliases and how can they be useful?
  • Mostly used by the marketing department, it is useful when you are required to point to an item nested deeply within the content tree, i.e. point “/sitename/News/2013/In Brief/Man on the moon” to www.sitename.com/manonmoon. The newly setup alias acts as a proxy to the real item.
  • Very experienced Sitecore developers would touch base on how you can extend the functionality for multiple sites
  • Discuss inheritance within Sitecore and state how you have used it in a previous instance of Sitecore
  • Creating common templates, such as a page Meta Data template that will be inherited by all presentation templates.
  • What are the new features of the recommended version of Sitecore that you have used or read about
  • Expect some discussion about DMS, Multi variant targeting, adaptive print studio etc.
  • I have a business requirement that requires an email to be sent when a specific item type is published, how can I accomplish this task
  • Expect the candidate to suggest hooking up into the Pipelines, adapting a type that inherits from the PublishItemProcessor class and manipulating the PublishItemContext context
I need to perform an operation of an Item within code, I am running into some security issues, and how can I potentially fix this.
  • Wrap the code around the Sitecore.SecurityModel.SecurityDisabler() context.  




References:
http://insitecore.blogspot.com/2013/03/sitecore-interview-questions-part-1.html 
 

SITECORE: Interview Questions & Answeres Part 1

Questins and Answers

What are the Sitecore Support hours?
The Sitecore Support hours are: Tuesdays (Morten), Wednesdays (Tina) and Fridays (Tina) at 9-12 in 2B09.
During support hours Morten or Tina will answer mails sent to sitecore@itu.dk since last support session and answer questions posed during support hours face-to-face, if people show up in 2B09, or on the phone.
Why am I getting a pretty picture of a watchtower by the sea when I log into Sitecore?
It is because you are logged into the Desktop (the developer tool) instead of the Content Editor (the editor tool). Please click the button with the label “Sitecore” in the lower left corner of the screen and click “Log Off”. This will return you to the Sitecore login screen. Now you can login as usual: Click the “Content Editor” button, write your user name and password and click the “Login” button to login to the Content Editor.
How can I stop Sitecore from turning the anchor in an anchorlink into a link?
You are not supposed to turn a line of text into an anchor in Sitecore. Instead you should make the anchor by placing your curser without highlighting any text on the line just above where you want the anchorlink to lead to. Then press the hyperlink button, create the anchor and proceed as usual. This way no text will turn into an unwanted link.
I have edited a page on itu.dk and published it. Why don’t my changes appear on itu.dk?
This is probably because you forgot to unlock your version of the page before you published.
Sitecore will always publish the latest UNLOCKED version of a page when someone clicks publish and the publishing dialogue will say that everything went well even though it did not publish the version that you had just been workning on.
When I test my page on the intranet using Page Editor button there is an image that I did not insert. It is only there when I am testing. Why?
You do not need to do anything about it. It is there because Sitecore Intranet Portal gives organisations the opportunity to standardise image size and placement, and the landscape image shows that a standardised image would be located there if we were using standardised images. However the university has decided that we do not want that kind of strict standardisation. Therefore we have disabled that function in Sitecore. Unfortunately the Page Editor button insists on showing the landscape image anyway. It will not be there on the live intranet when you unlock your version of the page.
I have uploaded and inserted an image on a page in sitecore and it looked fine in the media library. But in the content editor the picture looks broken?
Try pressing SAVE. Sometimes Sitecore will show a broken picture in Content Editor if the picture has been inserted recently. When pressing save Sitecore discoveres that the picture has been uploaded and shows the correct picture.
Where should I place my new picture?
Currently there is no official policy on where in the media library to place images. Therefore you can place your picture in the folder of your choice in the media library. As we do have a lot of folders please use common sense when deciding where to put your image and check if there is a folder that might fit your purpose before you create a new folder.
Where should I put my PDF or Word document?
All documents - PDF’s, Word documents, Excel sheets, Power Points etc., are placed in the media library along with images. There are no special folders for documents. Read the explanation for placing pictures for details about which folder to choose.
Why can’t I  create a new folder in the media library?
You cannot create new folders in the media library using the dialogue box that appears when editing in the editing window and clicking the “Insert Sitecore Media” button with an icon looking like a picture of a landscape. To create a new folder in the media library you need to close the editing window (remember to insert and save any changes), click the very small blue bar with a white arrow at the upper right corner of your screen and choose “Media Library”. This will move you to the media library, and here you can make a new folder by clicking the folder, you want your new folder to be in, and click “New folder” in the content area of your screen (to the right). If you are working on the website (not the intranet) then you need to publish your new folder before you start putting images in it. You can go back to your page by clicking the blue bar with the white arrow in the upper right corner and clicking “Content Editor”. You will see your new folder next time you use “Insert Sitecore Media”.
References: