Thursday, November 28, 2013

SITECORE: Performance Tuning Guide

Note: Full-sized "CMS Performance Tuning Guide" document containing detailed instructions on how to implement most of the listed in this article items can be found here.
This article contains a list of items that you should investigate if your Sitecore installation is experiencing poor performance. You can also investigate these before putting your Sitecore website into production.
This is not a complete or detailed guide, but rather an outline of the most generic and efficient optimizations that you can perform based on the experience of Sitecore Support team members.
  1. Ensure that the IIS environment is up-to date
    • Windows Server 2008 R2 x64 is highly recommended. It contains a lot of valuable bug fixes and new features compared to Windows Server 2003.
    • 64 bit application pool mode is highly recommended. This allows you to allocate more memory to the application.
    • 4 or more processor cores are highly recommended.
    • For high volume Sitecore solutions (for example, more than 20k item versions), we recommend that a minimum of 4GB of RAM should be available for the w3wp.exe process. This enables Sitecore cache sizes to increase, improves performance, and decreases the load on SQL Server.
  2. Optimize Sitecore caches.
    • Increase and tune the size of the data, items, and prefetch caches. Bigger caches = better performance.
    • Always use HTML caching and make almost all the renderings on the site cacheable. Then tune the size of HTML caches.
    • Tune the sizes of other caches if they are reaching their threshold.
    • Tune or disable initial prefetching. Do not disable the actual prefetch caches — you should only increase their size. This can affect startup times.

      For more information about Sitecore caches, see the Cache Configuration Reference article.
  3. Optimize Sitecore databases
    • Make sure that all the connected SQL databases are on the same network. For example, going through the public firewall is a no-go for the database performance.
      For information about testing connection speeds, see the Testing Database Performance article.
    • Use the database cleanup tool to remove artifact data from the databases. Click Desktop, Sitecore, Control Panel, Database, Clean Up Databases to open the database cleanup tool.
    • Cleanup the following tables from the artifact data. It is safe to completely truncate them before publishing your website. All of these tables should be automatically cleaned up on a periodic basis:
      • History – cleaned up by Sitecore.Tasks.CleanupHistory agent
      • PublishQueue – cleaned up by Sitecore.Tasks.CleanupPublishQueue agent
      • EventQueue – cleaned up by Sitecore.Tasks.CleanupEventQueue
    • Rebuild all the database indexes and implement maintenance plans:
      http://www.theclientview.net/?p=40
    • Set up the database properties:
      http://www.theclientview.net/?p=162
    • Run DBCC CHECKDB to check for database consistency errors
    • Tune the Analytics database.
      For more information about improving the performance of the Analytics database, see the OMS Performance Tuning Guide.
  4. Sitecore Client specific optimizations
    • Make sure that content authors never use Full publish — they should only use Smart or Incremental publishing.
    • Enable content expiration in IIS. In that case the web browsers won't request all the static files from the server second time until their expiration date is passed. Sitecore Client uses a lot of static files.
    • Enable static HTTP content compression in IIS.
    • Enable dynamic HTTP content compression in IIS. This speeds up both the Sitecore client and the public web site and is especially beneficial in environments with a low bandwidth.
    • Set the ContentEditor.RenderCollapsedSections setting to False. This is a hidden setting that is set to True by default. Changing this setting can help a lot.
    • Set the ContentEditor.CheckHasChildrenOnTreeNodes and the ContentEditor.CheckSecurityOnTreeNodes settings to False. Changing these settings doesn’t normally help much, but you should still test whether or not this helps.
    • Check long running validators and disable any default validators that you don’t need. They are often the cause of bad performance.
    • Do not show Standard Fields in Content Editor.
    • Limit the number of items that share the same parent to 100 items per parent.
  5. Cleanup obsolete versions and ensure they do not grow unrestricted – we do recommend to have no more than 5-10 versions per item in Master database. Use the Version Manager shared source tool for this. http://marketplace.sitecore.net/en/Modules/Version_Manager.aspx
  6. Check this article: http://sdn.sitecore.net/Scrapbook/Delay%20while%20validating%20digital%20signatures.aspx
  7. Monitor Sitecore log files for any application restarts. If a new log file is generated, this often means that a restart has occured. Identify the reason for the restart and address it.
    • If the log file ends with a "Sitecore shutting down" message – this is a "soft crash" and for some reason the hosting environment has forced the process to recycle (for example, due to some scheduled recycling or some critical file changes).
    • If the log file does not end with a "Sitecore shutting down" message – this a “hard crash” due to for example a stack overflow error or some worker thread deadlocks. A good solution could be to collect a process crash dump and analyze it with WinDbg.
  8. Disable search indexes if you don't use them. Set Indexing.UpdateInterval to 00:00:00.
  9. Watch out for any scheduled operations that may be running in the background - especially any custom made operations that for example perform a complete rebuilding of the Lucene index.
  10. Perform load testing and profiling of your solution to find slow running pages and code paths. This is the most efficient way to identify any custom code and configuration issues.
    • Load test the solution for example using:
    • Profile your solution while stress testing (for example, by using the ANTS Performance profiler) to find bottlenecks in the code that may need to be optimized.
    • Valuable for understanding the health and performance of your application health and Windows performance counters:
      • % time in GC
      • # Induced GC
      • # Bytes in all Heaps
      • # Total committed bytes
      • # Total reserved bytes
      • Request/Sec
      • Request Execution Time
    • Valuable for understanding Sitecore caching state counters:
      • CacheHits
      • CacheMisses
      • CacheClearings
      • Data.PhysicalReads
      • Data.PhysicalWrites
       
       
       reference:http://sdn.sitecore.net/Articles/Administration/Sitecore%20Performance/Optimizing%20Sitecore%206%20and%20later/Optimizing%20Performance%20in%20Sitecore.aspx

SITECORE: Overview

Question #1: Why Should I Use Sitecore?

Entire conferences are devoted to answering this question; however, for the sake of brevity, just know that Sitecore is one of the most powerful CMS platforms available. It masters the functions of a traditional CMS while integrating a ton of powerful tools that have transformed it into a “one-stop-shop” solution.
With Sitecore, businesses can finally bridge the gap between marketing and IT in an effective manner.
A few benefits of Sitecore:
  • Integrates extremely well with existing Microsoft programs.
  • Right message, right channel, right time
  • Dynamic content personalization
  • Fully customizable
  • Top enterprise grade Security and Support
  • Has great Documentation
  • Multilingual
  • WYSIWYG
  • Works with databases (SQL)
  • Powerful Tools (DMS, Email Campaign Manager)

Question #2: Why Does Sitecore Cost So Much?

Let’s put it this way. Would you rather fly across the country in a private jet, or hitch a ride in a windowless van with a stranger you met on the “rideshare” section of Craigslist? Yes, both options will get you from point A to point B (hopefully), but the experience and quality of your trip will be entirely different.
Sitecore is the private jet of CMS platforms. It is an enterprise grade product that features some of the most innovative and powerful technology on the market. Many of the cheaper alternatives are not designed to handle the intricate facets of enterprise grade websites. The higher price tag ensures that the specific needs of enterprises are met.
Many of Sitecore’s enterprise grade competitors, similar to the windowless van, can still get you to where you need to go, but the ease of use, quality, and power of Sitecore will be absent. You get what you pay for.

Question #3: What do I get from Sitecore out of the box?

Out of the box, Sitecore comes with a Content Management System (CMS), Digital Marketing System, (DMS), and a Customer Engagement Platform (CEP). All of these tools are extremely innovative and have the potential to be very powerful. They are not, however, meant to be the “end all” solution directly out of the box. Initially, they are more of a springboard to build upon. Martin English, an Arke Sitecore developer, explains that “Sitecore gives you a solid foundation with countless tools which allows for robust customization. This ensures that Sitecore is the perfect fit for your business.” Sitecore is so powerful because it focuses on user customization and individual business needs, instead of “prebuilt” one size fits all solutions.

Question #4: Is my company ready for Sitecore?

We usually don’t recommend Sitecore for inexperienced or non-enterprise companies. While Sitecore’s user experience is relatively straightforward (the development side is a whole different story), many of the more advanced features, the ones that make Sitecore so expensive, will most likely go to waste if the user has had no prior CMS experience. It will basically be a very expensive learning tool. For smaller businesses–it’s overkill. The only reason a business should be investing in an enterprise grade solution is if they are indeed an enterprise.

Question #5: What is the implementation process like?

The implementation process is different for every business that tries to adopt Sitecore. Variables such as needs, experience, and practices can affect the time and difficulty that defines the entire process. There is one aspect, however, of implementation that reaches across all differentiating variables—data migration. Countless hours are spent finding, moving, testing, and updating content. Very few businesses have a complete web inventory which is why data migration issues tend to reach across business variables.
Finally, it is important to realize that no matter how large or difficult Sitecore adoption may be, you do not have to do it alone. Companies, like Arke, are here to help and guide you through the entire process. Arke, in particular, is great at developing detailed plans and ensuring that things run as smoothly as possible.

Question # 6: We have Sitecore already, but what tools am I not utilizing?

One of the most common features that Sitecore users neglect to utilize is DMS (Digital Marketing System). The engagement analytics, integrated email marketing, engagement automation, and sales automation features of DMS make it the ideal marketer’s “tool box.”  All of these powerful tools are easy to find in the “Marketing Center,” and are designed to improve conversion rates and generate more qualified leads through web, email, mobile and social channels. It allows businesses to target particular customers with predefined types of content. This in turn makes relevant content easier to access, and therefore increases conversion rates.  Despite these amazing benefits, many marketers still refuse to use the DMS. Marketers often fear learning a new system and are scared to part with the tools that they have grown accustom to.  Also, many people fear that they don’t have the technical knowledge or skill to use the DMS effectively. Unfortunately, fear makes it impossible for a company to experience the full potential and benefits of Sitecore. If fear is holding you back, take a look at “Top 6 Reasons Why Sitecore’s DMS Seems Scary, But Really Isn’t.”

reference:

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