Thursday, November 28, 2013

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 
 

No comments:

Post a Comment