Best Practices for Sitecore
|
|
|
- Abner Reeves
- 10 years ago
- Views:
Transcription
1 008 Best Practices for Sitecore Nonlinear Digital is the full-service digital agency division of non-linear creations, with extensive knowledge and technical expertise in various CMS and marketing/analytics solutions, particularly the Sitecore platform. Our teams, working with you, use an agile methodology to create unique website and digital experiences that drive business results in a measurable way. For more information on our services or to get in touch, please visit: Performance and scalability tips for an optimal online experience Author: Glen McInnis
2 Nonlinear Digital is the full-service digital agency division of non-linear creations, with extensive knowledge and technical expertise in various CMS and marketing/analytics solutions, particularly the Sitecore platform. Our teams, working with you, use an agile methodology to create unique website and digital experiences that drive business results in a measurable way. For more information on our services or to get in touch, please visit:
3 Contents Tables 4 Figures 4 Introduction 5 For the speed reader Sitecore terminology 7 How fast is fast enough? Defining performance requirements 8 Infastructure and setup 9 What you need to know Hardware and network topology Configuration tasks Storage locations Caching Prefetch Development considerations for performance in Sitecore 14 What you need to know Content structures Sorting Related content Sitecore and.net coding practices XSL Sitecore debugger, code profilers and stress testing Caching specifics Static publication Maintenance and operational procedures 24 What you need to know Clearing old versions of content Monitoring and adjusting The sky is falling Conclusion 27 About Nonlinear 28 Appendix A: Lucene Example 29
4 4 BEST PRACTICES FOR SITECORE Tables This whitepaper organizes important information about Sitecore settings and infrastructure into a number of tables: Table 1: Measuring performance of Sitecore authoring tools 7 Table 2: Measuring performance of the website 8 Table 3: Site cache settings 12 Table 4: VaryBy cache parameters 24 Table 5: Threshold settings 27 Table 6: Error-handler settings 28 Figures We ve also included a number of figures and screenshots: Figure 1: Deployment diagram 10 Figure 2: Prefetch configuration 14 Figure 3: Content organization: wide vs. deep trees 15 Figure 4: Sorting options dialog 17 Figure 5: Sitecore Debugger Hot Spots 21 Figure 6: Typical Sitecore caching model 22 Figure 7: Sitecore Debugger profile section 22 Figure 8: Rendering statistics (stats.aspx) 23 Figure 9: Cache settings for presentation objects 24
5 BEST PRACTICES FOR SITECORE 5 Introduction All content management systems (CMS) offer promises of reduced IT expenditures, a streamlined content lifecycle, and a return of content control to the subject matter experts. Sitecore, an incredibly flexible CMS that fits well in the mid-market, can deliver on those promises, whether you re using version 5.3 or the newest incarnation of Sitecore version 6.0. Our previous whitepaper shared lessons learned during Nonlinear s real-world implementations of Sitecore, but it did not cover two very important considerations in a Sitecore build: performance and scalability. As a CMS that dynamically serves content from a database, users and potential purchasers of Sitecore are often concerned with how to create a best-of-breed implementation that accounts for both performance and scalability. In this whitepaper, we offer you the steps that your implementation and operations teams will need to take to ensure a high-performing and reliable web presence within the Sitecore CMS. If you only have a few minutes to take in the key points of this document, I suggest reviewing the following diagram, which speaks to the overarching process required to ensure a responsive and scalable solution: Monitor & Maintain Define Develop & Test Configure First, define the performance criteria for your Sitecore deployment. Second, purchase and configure a server & network environment that can deliver on these requirements. Third, the development team designs, implements and (most importantly!) tests the Sitecore solution to ensure it performs well in your technical environment. Fourth, the operational team monitors and proactively responds to any changing conditions, perhaps revisiting the original requirements and making some tweaks. Now, if you still have some time and are interested in learning more, read on!
6 6 BEST PRACTICES FOR SITECORE For the speed reader Each section in this document begins with a short summary of its key points. If you are short on time, read these first and then dig deeper when it seems relevant. We sincerely hope you take advantage of Nonlinear s whitepaper series to give you a more complete view of the online environment. Nonlinear s other whitepapers are available here:
7 BEST PRACTICES FOR SITECORE 7 Sitecore terminology This document assumes a familiarity with the Sitecore content management system. If you are comfortable with Sitecore concepts and web programming terminology, feel free to skip this section. If, on the other hand, you have little or no experience with the Sitecore CMS, then this brief overview of Sitecore concepts should render the rest of the document much more readable. Branch Template (Version 6) Used by content authors to create new content items Branch templates have the ability to also create children (descendants) of the new item at the same time the parent item is created. Command Template (Version 6) Used by content authors to create a new content item through the use of a custom wizard or dialog box. Content Authors Users of the Sitecore CMS, who are responsible for the input and approval of content. All content authors have a username and password to access the Sitecore CMS. Content Item A piece of content that has been created using a template and assigned to a location in the content tree. A content item can exist in one or more languages and may also be controlled by a workflow process. Content Tree (Hierarchy) The content tree is the method of organizing content items in Sitecore, using a folder-like structure. Device Like many CMS products, Sitecore allows you to separate content from its presentation layer. In addition, Sitecore allows you to define multiple presentation schemes for your content. These schemes are defined using a Device. In Sitecore version 5.3.1, there are two default devices. The first is the standard HTML device, and the second is the printfriendly device. It is the responsibility of the Sitecore developer to create and assign the required presentation objects, which allow the devices to render content appropriately. Layout This is the base presentation object in Sitecore, which defines the general look-and-feel of a web page. Masters (Version 5.3) What content authors use to create content items. Masters include additional security information, which creates default settings for the content items. Page Editor (Version 6) This authoring interface is similar to the Web Edit mode of version 5.3 but includes improved functionality, such as inline editing and content author control over presentation items. Rendering / Sub-layout A presentation object assigned to areas of a layout, which renders specific content. Renderings are created using XSLT; sub-layouts using.net code. Templates Templates define the structure and fields of content items. In Version 5.3, they are used by administrators to create content, but, normally, content authors make use of masters. In Version 6, templates are also used by content authors to create content. Web Edit (Version 5.3) The most common authoring interface used by content authors to browse the site and edit content. Making use of green dots and a floating menu, content authors are able to create and edit content.
8 8 BEST PRACTICES FOR SITECORE How fast is fast enough? Defining performance requirements In order to ensure your organization is getting what it needs from the CMS and website, you need to first define the level of performance you require. Performance can be separated into two areas: (i) performance of the website and (ii) performance of the content authoring interfaces. In both cases, the performance of the system will be greatly influenced by the estimated number of users. To define your performance requirements for each system, simply complete the following tables. We have added some sample information for you, as well as a description of what each metric means: Table 1: Measuring performance of Sitecore authoring tools BACKGROUND INFORMATION How many users will have accounts in the Sitecore CMS? 50 Of the above users, how many of them will be logged in and working at the same time? 20 How many web pages does your site contain? 2, 000 How many images, documents and other files will be used in your site? 500 What is the approximate size of your site (in MB or GB)? PERFORMANCE METRICS What is the system s maximum allowable time for publishing a single page? What is the system s maximum allowable time for publishing the entire site? What is the system s maximum allowable time for locking an item for editing? What is the system s maximum allowable time for rendering a page in Page Editor? 3gb 5 minutes 10 minutes 5 seconds 30 seconds Table 2: Measuring performance of the website What is the average number of simultaneous visitors to your website? 10, 000 What is the maximum number of simultaneous visitors that you need to support? 30, 000 What is an acceptable average time to load a page that is 10KB? What is an acceptable maximum time to load a page that is 10KB? 5 seconds 10 seconds Filling in the above table will provide you with a baseline when developing test procedures for your CMS and website. Note that the above criteria are offered as a guide only; you may want to develop additional criteria for your project to account for your most important pages, major entry or landing pages or functionally-complex areas of the site.
9 BEST PRACTICES FOR SITECORE 9 Infrastructure and setup Like any software application, Sitecore s performance is reliant on the following: Proper installation and configuration of the product Appropriate hardware A suitable network topology Final choices on hardware and networks will depend on the size of your site, the level of functionality it requires and the number of visitors you need to support. What you need to know For optimal performance: 1. The content authoring server and content delivery installations should reside on separate servers this is best for both security and performance 2. The database should not reside on the same server as Sitecore 3. Media and other large files should never be stored in the database Hardware and network topology In this section, we describe the ideal deployment topology of a productive Sitecore system. Not all organizations will require this level of complexity and performance. Consider the network diagram on the next page to see how it all functions.
10 10 BEST PRACTICES FOR SITECORE Figure One: Deployment Diagram In the above diagram, you can see that the Sitecore CMS authoring environment is separate from the actual website delivery nodes. This allows for the separation of performance requirements for content authors and site visitors. This configuration also increases security by removing the authoring environment from the public site. This deployment architecture includes multiple, load-balanced web nodes for added performance and fault tolerance. The diagram also shows that all instances of Microsoft SQL Server (MS SQL) have been separated from the both the authoring servers and the web nodes. We strongly recommend the separation of the database from Sitecore, for a few different reasons: 1. MS SQL server does not perform well in most virtualized environments, whereas Sitecore can perform quite well. Virtualizing the Sitecore web nodes allows for the rapid deployment of additional capacity, if required. 2. The hardware requirements of MS SQL, when compared to Sitecore, are typically greater. By separating these specialized applications, you can make appropriate hardware choices for each. 3. When the database is isolated from Sitecore, it is much easier to diagnose performance issues.
11 BEST PRACTICES FOR SITECORE 11 Configuration tasks Once Sitecore is installed, there are a number of configuration settings that can be adjusted, which tend to impact performance. The first category of settings defines storage location. The second category controls the caching behavior of the CMS. Storage locations There are a number of directory locations in the web.config file. The following excerpt from a Sitecore 6 web.config file shows the most relevant entries: <sc.variable name= datafolder value= C:\Inetpub\uoa\data\ /> <sc.variable name= mediafolder value= /upload /> <sc.variable name= tempfolder value= /temp /> <setting name= Media.CacheFolder value= /App_Data/MediaCache /> The web.config file references the above entries to control the majority of file location settings. These are the two major elements of file system configuration: The datafolder is responsible for logs, viewstates, diagnostic counters, debug traces and packages making this location a high-write situation for both the CMS and the web nodes. Ensuring the datafolder is located on a disk that can handle the write requirements aids in performance. You will want to consider this set-up for the tempfolder, as well, which is used as a temporary processing location. The Media.CacheFolder, which is used to store media that has been extracted from the database, is most relevant for the published site. Writes to disk are generally infrequent for this folder, making high-speed reading a greater priority. Caching As you probably already know, caching is one of the most complex topics related to performance. The impact of caching is subject to available hardware resources, the caching algorithm of Sitecore, the configuration approach you have taken and the behavior of your users. The only way you can know with 100% certainty what will happen is to try it. This makes planning and realistic prelaunch testing critical. In this section, we outline the major types of caching in Sitecore and where the settings are configured. In the development section, we cover tech specifics for developers. Our intention here is not to dive into the nitty-gritty detail, but instead give you a solid overview of your options so that you are able to test the performance of your chosen strategy. There are three levels of caching in Sitecore: the browser-level cache, the site-level cache and the database-level cache.
12 12 BEST PRACTICES FOR SITECORE Site-level caching Site-level caching is enabled by settings on sublayouts and renderings inside the Sitecore CMS. We recommend that you maintain the cache settings for renderings and sublayouts using the standard values for your template layout settings. This ensures that you do not mistakenly cache sublayouts and renderings that require dynamic generation on each load. These settings can be adjusted to suit the needs of the particular control, in terms of desired rendering, functionality and usage. The importance of this in relation to end usage is that the more of these variations you use, potentially the more cache space each rendering or sublayout will use, as a separate copy of the rendered version will be stored for each specific variation. The site nodes have a number of settings that control caching, which are listed in the following table: Table 3: Site cache settings PARAMETER filteritems filtereditemscachesize cachehtml htmlcachesize cachemedia mediacachepath filteritems filtereditemscachesize cachehtml htmlcachesize DESCRIPTION If set to true, the site will always show the current version of an item (without publishing it). Refers to the size of the cache used to store filtered items. The value should be specified in bytes, KB, MB or GB. If set to true, HTML caching will be enabled. If set to false, no HTML will be cached for any rendering. The default value for this is false. Refers to the size of the html cache. Specify the value in bytes or append the value with KB, MB or GB. If set to true, media caching will be enabled. If set to false, no media will be cached. The default value for this is true. Refers to the path to the folder where media data will be cached. The default value for this is: {temp folder}/{site name}/mediacache. If set to true, the site will always show the current version of an item (without publishing it). Refers to the size of the cache used to store filtered items. The value should be specified in bytes, KB, MB or GB. If set to true, HTML caching will be enabled. If set to false, no HTML will be cached for any rendering. The default value for this is false. Refers to the size of the html cache. Specify the value in bytes, KB, MB or GB. Note that Sitecore differentiates a cache size for HTML vs. XSLT controls, allowing you increased granularity for tuning the performance needs of your particular site, but this is dependent on usage of pages heavy in sublayouts (HTML) or renderings (XSLT). Sitecore also allows for a Media cache, which holds media files extracted from the database in a flat file format on the web server. This allows for faster response times than accessing the associated database blob. We don t recommend that you store media in the database. For each of these groups it is important to spell out their mandate and responsibilities. The key group in this model is the ECM Governance Board; we provide some insight into how it is frequently structured.
13 BEST PRACTICES FOR SITECORE 13 Database-level caching Each database has its own caching parameters. These parameters define the allowable cache size for data, items, paths and standard values. The following extract from the web.config entries of Sitecore 6 show an example of possible settings: <cachesizes hint= setting > <data>20mb</data> <items>10mb</items> <paths>500kb</paths> <standardvalues>500kb</standardvalues> </cachesizes> This review of cache settings will be further expanded in the Development section of this whitepaper. Prefetch In version 5, Sitecore introduced a new feature called Prefetch. Prefetch allows you to configure Sitecore to pre-load the item cache upon start-up. The benefit is a smoother experience for users, as they do not have to endure the waiting time of the initial noncached request. The trade-off here is a longer start-up time. In Sitecore, prefetch options are configured for each database. There is also a single, shared configuration. The common configuration file and the.config files for each database are located in the App_Config/Prefetch directory. For optimal site performance, adjust the prefetch entries of the web database (App_Config/Prefetch/web.config). The following is a slightly modified listing of the web database default entries found in Sitecore 6. The additional inline comments explain what each entry does. Figure 2: Prefetch configuration <configuration> <! Size of the cache --> <cachesize>10mb</cachesize> <! --> Loads all items based on system template: /sitecore/content/templates/system/alias <template desc= alias >{<alias-guid>}</template> <! Loads all items based on system template: /sitecore/content/templates/system/layout/layout --> <template desc= layout >{<layout-guid>}</template> <! Loads all items based on system template: /sitecore/content/templates/system/layout/renderings/xsl Rendering --> <template desc= xsl rendering >{<xsl-guid>}</template> <! Loads the home node --> <item desc= home >{<home-guid>}</item> <! Loads all children of the home node --> <children desc= main items >{<home-guid>}</children> </configuration>
14 14 BEST PRACTICES FOR SITECORE Development considerations for performance in Sitecore The performance of any software application is most significantly affected by the quality of its configuration and coding. Sitecore has a few specific areas where the development team needs to take performance into careful consideration. In this section, we discuss these areas and what your implementation team needs to do in order to ensure a robust and stable solution. What you need to know 1. In Sitecore, the way content is structured and organized is very important, so watch out for shallow or broad content trees 2. Relationships between content can cause unexpected looping (and the related challenges). Using a Lucene index can prove a more efficient means of determining content relationships 3. Caching is an art form. Watch your site s performance and tweak settings as required 4. Make full use of the Sitecore Debugger, and be sure to stress-test your implementation before going live 5. Profile your code. This can show you how it is interacting with Sitecore 6. Rely on Sitecore sorting rather than customized.net sorting code to sort on the published site 7. If all else fails, static publication is an option Content structures Content in Sitecore is organized using the Content Hierarchy. There are a few basic considerations to take into account when designing your content tree. When the tree is too broad, the authoring interfaces are often required to load a large number of items at once. This can also create performance problems in the rendering of the website. If possible, structure the content so that no node in the tree has more than 100 siblings. To go deeper into this concept, let s consider a simple example: news releases. How do we best structure this content? One option is to organize all news releases into single folder. The second option is to organize the releases into subfolders by year.
15 BEST PRACTICES FOR SITECORE 15 NEWS IN ONE FOLDER NEWS ORGANIZED BY YEAR Consider the news release page for When the news releases are organized into a single folder, the page must load all news articles and then filtre out the news releases that are not for This forces Sitecore to make a lot of unnecessary calls to either the database or the cache, and then perform extra processing to eliminate the unneeded data. When news releases are stored by year, Sitecore can simply load all the releases from a single folder and display them. We can see how this choice can significantly impact site performance. If we consider how product pages relate to news items, we can also see how the choice of content structure can also impact the performance of the authoring environment. Using the single folder option, the amount of information that Sitecore needs to load is much greater. While it s not an issue with only six news items, 6000 news items would be quite problematic. Organizing news releases by year would alleviate the problem. In short, be careful of the way content is organized in the Sitecore tree, and remember that content organizing strategies have implications for both the published site and the content authoring environment. Sorting Organizations often require their published sites to sort content items based on a field value. Common examples would be alphabetical sorts based on title, or chronological sorts based on a date or time value. Understanding how Sitecore performs this sorting of content items is an important part of developing the most efficient code. Basically, Sitecore sorts children of any given item using the SortOrder field. If this field is not filled or the values are all equal, then Sitecore sorts according to the Subitems Sorting field of the parent item. This can be seen clearly in the following sorting dialog screenshot.
16 16 BEST PRACTICES FOR SITECORE Figure 4: Sorting options dialog Note that it is also possible to create your own sorting behaviors and register them with Sitecore by implementing a customized class based on the Comparer abstract class. If you look to the Core database, then/sitecore/content/settings/subitems Sorting you will find the registration of the existing sorting methods. Once you have created your own sorter class, simply register it in this location by creating a new item. At Nonlinear, we prefer this method of sorting, as it provides explicit sorting control for the content authors and performance benefits for the published site (which no longer needs to run the sorting code). The sorting code option inside Sitecore only runs in two circumstances: (a) When interacting with the content-editing interfaces, and, (b) During the publication of content items. Once content items have been published to the live site, the order is explicitly set. This means that there is no sorting code or logic executed in the published website.
17 BEST PRACTICES FOR SITECORE 17 Related content Many of our clients at Nonlinear request that content authors be able to tag content during the publishing process. Using these tags, the content is automatically pulled into related positions on the website. If we continue with our news release example from before, that would mean that news releases could be tagged according to related products. By tagging content in this way, the related news items would automatically appear on each product page without the intervention of the content author. There is no problem with this, so long as the right approach is employed. To maximize performance, at Nonlinear we make use of customized Lucene indexes on the tag fields. This allows us to create efficient Lucene queries to quickly retrieve content with particular tags as opposed to scanning large numbers of content items. The first step in this process is to set up the appropriate Lucene index: <index id= relatedlinks singleinstance= true type= Sitecore.Data.Indexing.Index, Sitecore.Kernel > <param desc= name >$(id)</param> <!--<templates hint= list:addtemplate > <template>section Search</template> </templates>--> <fields hint= raw:addfield > <field target= id storage= unstored <field target= tags >tags</field> <field target= includeinsearchresults >include in search results</field> </fields> </index> In this example, a Single-Line Text field called Tags is being used to populate a Lucene index call relatedlinks. The sample.net code that would be used to query this index has been included in Appendix A. Sitecore and.net coding practices We won t bore you to death by exploring all the ins and outs of optimal coding in.net if you need this kind of information, there is excellent content available from Microsoft, and the web at-large. What we want to focus on instead is a discussion of the problem areas we often encounter when auditing existing Sitecore implementations: 1. NET string manipulation capabilities (like string concatenation, String.Format and StringBuilder) need to be used correctly. Though, what is correct for your situation depends on the performance characteristics you are trying to achieve. Lower memory use? Faster execution? Both? 2. Sitecore does cache, but don t forget you can still access the Cache features of the.net framework. This can be especially helpful if you want to explicitly control the caching of complex queries to Sitecore or other systems. Complex navigational systems (such as sites using faceted navigation) will often utilize such an approach. 3. Creating new hooks or pipeline additions in Sitecore is a common means to extend functionality; however, before deciding on this approach, be sure you understand when this new code fires. If you are unsure, create a simple stub and have it log out, or trace it through your debugger.
18 18 BEST PRACTICES FOR SITECORE 1. Data providers are an excellent way to integrate external data into Sitecore; however, when they re chained into the Master database (the way it s described in articles on the Sitecore Developers Network, or SDN), you will add significant overhead to each item request, burdening the master database. Instead, consider using the Sharepoint Connector, which has been architected with its own database and cross-proxy. We have found this to be much more efficient. 2. Make use of automated tools to test your.net code. At Nonlinear, we really like the Red Gate suite of products for profiling our.net code and locating potential problem points. The free FxCop scanner from Microsoft can also help you to find problematic code. XSL The XSL vs..net debate is always a lively one on the SDN forums. All being equal, at Nonlinear we take the approach that XSL is more than acceptable for content that has no complex rendering logic, such as conditionals or advanced queries. In our experience, the performance improvement gained by going to.net in such cases is minimal and, sometimes undetectable. We prefer XSL in these instances, as renderings are much easier to update and do not require a recompile of the solution. One quick tip: the Rendering Wizard in Sitecore automatically inserts a $home variable. Remove it unless you need it. If you are concerned about the performance of a rendering, use the Sitecore Debugger to determine the bottleneck. If required, you can always convert it to.net. Sitecore debugger, code profilers and stress testing In previous sections, we talked about writing good code, which is fundamentally based on testing and validation. There are three steps required of any Sitecore developer when validating code for performance: 1. Use the Sitecore Debugger as a means of identifying any underperforming code early on 2. Make use of.net profilers to find.net issues 3. Stress-test your code with realistic volumes of data and users make the test scenario as close as you can to the reality of your eventual implementation environment Now, let s look at the Sitecore Debugger. The first thing that needs your attention, on any given page, is the Hot Spots sections of the trace:
19 BEST PRACTICES FOR SITECORE 19 There are two main pieces of information to take notice of here. First, the time taken to display various renderings and sublayouts. Second, the most items read info. If a rendering is taking a long time but there are few item reads for that rendering, this often points to an algorithmic problem in the code. If, however, the item reads are high, this can point to excess Sitecore queries, unnecessary loading of items or a poorly-designed content tree. As part of Sitecore s profile section, the Debugger provides counts of cache hits, cache misses and physical reads. If we look at the detailed profile information, we can see the performance information for sample rendering.xslt: This information tells us that 12 items were read and 21 cache hits were made in order to output this rendering. Examination of the logic in this rendering may give you leads for potential performance improvements. I am not going to dive into.net profiling and stress-testing here, but I would suggest you take a serious look at the RedGate products for.net profiling. They have been invaluable for us at Nonlinear in diagnosing underperforming.net code during audits of existing implementations, as well as during our own development projects. If you don t have the budget for commercial stress-testing tools, there are also a number of free and open source tools. OpenSTA ( is probably our favorite. Microsoft also offers a number of tools for website stress-testing, including the free Web Application Stress Tool. Caching specifics I have already discussed some of the basics of Sitecore caching. Now, I would like to delve into some of the greater detail Namely, what level of caching is appropriate for your circumstances? At its most basic, caching in Sitecore relies on caching the presentation objects themselves. From there, you simply need to decide how many additional layers of caching to add. See below for a figure that outlines a typical caching structure for Sitecore.
20 20 BEST PRACTICES FOR SITECORE Figure 6: Typical Sitecore caching model Client Caching HTML Output Content Items Presentation Items Sitecore is configured, by default, to cache items; however, what you will need to consider is how large the cache should be for each database/site. As your site grows, more content items will be used within the same timeframe. In order to properly maintain all items in the cache, you will need to increase the allocated cache size. There are a number of tools that you can use to monitor cache-hit performance. The first is the Sitecore Debugger. Part of Sitecore s profile section, the Debugger provides counts of cache hits, cache misses and physical reads. Figure 7: Sitecore Debugger profile section Ideally, item are always read from cache. As the Debugger is simply a snapshot in time, it does not give you a complete picture of your development environment. If you are looking for a more complete summary of rendering statistics, the stats.aspx page, which is part of Sitecore s admin tools (/Sitecore/admin/stats.aspx), provides an excellent summary of presentation objects for each site. Using this tool, you can easily see average and maximum rendering times as well as the number of times the rendering was drawn from cache as opposed to being regenerated. See next page.
21 BEST PRACTICES FOR SITECORE 21 Figure 8: Rendering statistics (stats.aspx) The most important thing a developer can learn is how to structure rendering and sub-layouts to maximize the benefits of caching. There are no hard-and-fast rules for this because the choices you make will depend on the size of your available cache and the design of your site. That said, here are some good rules of thumb: 1. Building a site with a higher number of small renderings and sublayouts gives you greater flexibility to control the caching of HTML 2. Navigational controls tend to use the VaryByData option unless content is personalized. 3. Portions of the header and footer often require no variation. Structuring renderings to allow for a single cached instance of such segments will greatly reduce requirements for cache size and make for better site performance. 4. Over-riding cache settings at an item level often makes sense for high-traffic pages, such as main section pages or campaign landing pages. But watch your analytics and use your own judgment. 5. If you have a high number of content items based on a single template, carefully consider how you will set up the caching. If caching is applied to all items, you may consume a large portion of the cache especially if the traffic is distributed amongst the items (such as with news releases). Instead, you may consider removing the caching from the news renderings altogether. Or, if there are some high-hit releases, consider an item-by-item approach.
22 22 BEST PRACTICES FOR SITECORE Now we come to the caching of the rendered HTML. As discussed earlier, Sitecore developers can control this in the standard values of the presentation objects, in the presentation configuration of templates or in an item-by-item configuration. In Sitecore, HTML caching must first be enabled for each site. This is done by setting the cachehtml attribute to true. In the following screenshot, we can see the available Sitecore 6 caching options: Figure 9: Cache settings for presentation objects To enable caching for any rendering or sub-layout, the Cacheable option must be selected. Then, optionally select from the six other VaryBy cache behaviors. If none of the VaryBy parameters are selected, the rendering will present the same content in all circumstances. Table 4: VaryBy cache parameters VARY DESCRIPTION MOST USEFUL WHEN Data Sitecore caches the output based on the item accessed. When the same item is accessed for the Content is highly consistent, such as headers and footers. second time, the HTML will be loaded from the cache. Device Sitecore caches copies of the output for each Device A Device has been created to serve smart phones. being used. Login Sitecore caches two copies of the output. One is for authenticated Extranet users and one is for Sites require registration but present the same content to all users once registered. unauthenticated Extranet users. Param Sitecore caches the output for each parameter You are making use of rendering parameters. accepted by the rendering. QueryString Sitecore caches the output for each unique combination of query string parameters. Most commonly needed when forms or other functionality have been embedded into the site. User Sitecore caches the output for each authenticated user. Personalized sites that deliver unique experiences to each user. That should provide you with enough information to get started on caching. Next, we discuss what to do when caching isn t enough.
23 BEST PRACTICES FOR SITECORE 23 Static publication Sitecore is designed to serve and render database content. However, there are circumstances in which you may want to consider static publication of HTML files from Sitecore. While uncommon, we do see this in cases where a new promotion or event landing page is being set up and heavily promoted. Instead of loading the CMS with this (hopefully) overwhelming traffic, a static snapshot of the content is taken and stored on the web nodes. At Nonlinear, we prefer to automate static publication as much as possible. By hooking into the publication process, it is possible to capture the results of the page and then store the resulting HTML and media to a specialized location for static serving of the content. This process involves two major complications. Both are related to managing the mixture of content which is to say, content that s dynamically served by Sitecore and content that is statically served by IIS from a disk. In order to allow IIS to serve the static files, it is easiest to place those files in a specialized location. This allows for an optimal configuration of IIS, removing all Sitecore handlers from the execution. There is also the issue of managing URLs in content. If a dynamically-served page links to a page that is static, the dynamic page must be aware of the alternate URL (to modify it) or URL redirects need to be put in place. Personally, I prefer the redirect imposed by the IIS service; however, this does require that Sitecore publish redirect rules to IIS. While not a complex task, this requires a hook into the Sitecore publication, or whatever program is being used, to grab the static HTML.
24 24 BEST PRACTICES FOR SITECORE Maintenance and operational procedures It may be routine and boring, but maintenance tasks and operational procedures keep everything running smoothly. Once you get these set, automate them as much as possible. Below, I ve listed a few key tips: What you need to know 1. Remove unneeded content, including old or unneeded versions. 2. Monitor the logs. Watch for warning signs of poor cache utilization and long render times. 3. Be prepared for the worst case. Have appropriate error messages and a fall-back site. Clearing old versions of content Large volumes of content place added stress on the database. In the authoring environment, this is particularly evident when content items have a significant number of versions. We generally prune old versions of content using a scheduled task and recommend that no content item have more than 15 versions. But the question is, do you simply delete the old versions of content, or do you move them to an archival location? You ll have to weigh the benefits of having the instant availability of old versions probably most critical if you have a requirement for e-discovery against the options of delayed retrieval or outright deletion. With the exception of our clients in the financial sector, most will opt to archive old content in a separate location, accepting a slightly increased retrieval time in the unlikely event that the content is required. Monitoring and adjusting Sitecore and Windows server logs can provide a wealth of information and allow you to catch a potential issue before it becomes a real problem. If you examine the web.config file, you will find a number of threshold settings. Defining appropriate thresholds allows you to look for slow performance before it becomes critical. In httprequestend, you will find: <TimingThreshold desc= Milliseconds >1000</TimingThreshold> <ItemThreshold desc= Item count >1000</ItemThreshold> <MemoryThreshold desc= KB >10000</MemoryThreshold>
25 BEST PRACTICES FOR SITECORE 25 In Settings you will find: <setting name= Profiling.RenderFieldThreshold value= 100 /> <setting name= Profiling.SheerUIWarningThreshold value= 800 /> These threshold settings dictate under what conditions Sitecore will create a log entry for page execution. The complete list of options can be found in the table on the following page. Table 5: Threshold settings SETTING TimingThreshold ItemThreshold MemoryThreshold Profiling.RenderFieldThreshold Profiling.SheerUIWarningThreshold TimingThreshold PURPOSE Defines the threshold value in milliseconds for logging long executing pages. Defines the threshold for logging page executions attempting to read more than the specified number of items. Defines the threshold for logging page executions attempting to use more than the specified amount of memory. Defines the threshold value in milliseconds for logging long field render operations. Defines the number of milliseconds before logging a long Sheer UI request. Requires that Profiling.SheerUI = "true". Defines the threshold value in milliseconds for logging long executing pages. Ideally, your log-monitoring programs will be watching the Sitecore logs and can notify you when required. The sky is falling You ve done your best but, for some unknown reason, everything has gone offline. Blame it on the gremlins if you like, but I always advocate for worst-case-scenario preparation. First, make sure that you have configured Sitecore and IIS to return friendly error messages. If your site is going down for performance reasons, IIS is likely to return a HTTP error in the 500 range. If you look into the web.config file, you will find a number of settings that are relevant to error-handling. You will want to ensure the designated handlers are displaying appropriate messaging and performing any required notifications. The following example shows the generic error handler in Sitecore: <!-- ERROR HANDLER Url of page handling generic errors --> <setting name= ErrorPage value= /sitecore/service/error.aspx />
26 26 BEST PRACTICES FOR SITECORE The complete list of error settings can be found in the table below: Table 6: Error-handler settings NAME DEFAULT VALUE DESCRIPTION RequestErrors.UseServerSideRedirect False If set to True, Sitecore will use Server. Transfer redirect requests to service pages when an error occurs. If False Response, Redirect is used. ErrorPage /sitecore/service/error.aspx URL of generic page-handling errors LayoutNotFoundUrl /sitecore/nolayout.aspx URL of 'Layout not found' page-handling errors ItemNotFoundUrl /sitecore/service/notfound.aspx URL of 'Item not found' page-handling errors LinkItemNotFoundUrl /sitecore/service/notfound.aspx URL of 'Link item not found' pagehandling errors NoAccessUrl /sitecore/service/noaccess.aspx URL of 'Access denied' page-handling errors Even better than well-configured error messages, though, is having a hot standby site, which allows you to maintain your online presence no matter what. This standby site does not have to be a copy of the whole site, but it should provide enough information so your visitors know what options are available to them such as contacting a call center or returning to the site once it is restored in a few hours. You get the idea. There are two ways of going about standby sites. The first option is to have a separate Sitecore installation (preferably, in a separate datacenter in a different part of the country or world). This kind of installation typically involves only the web nodes but may also include the authoring environment. This environment is a (perhaps delayed) mirror of the actual site. In the event of catastrophic failure in your primary installation and datacenter, you switch over to this secondary system. Obviously, the cost of the first approach is relatively high. A more moderate approach that also works well is to make use of the static publication described earlier to create snapshots of the site. This way, you can deploy limited, flat versions of the site. As very few sites are static, we would recommend that you also publish a simple message to indicate that site functionality is temporarily reduced.
27 BEST PRACTICES FOR SITECORE 27 Conclusion Performance and scalability issues relating to any large-scale website are almost always complex. Luckily, Sitecore provides straightforward tools that deliver a high-performance and robust web presence. If you follow the general guidelines in this whitepaper, you should be well on your way to a successful implementation. As always, additional information on Sitecore is available on the Sitecore Developer Network ( and the Nonlinear Blog ( If you find that you need further assistance in your Sitecore upgrade or implementation, you can reach us by at info@ nonlinear.ca
28 28 BEST PRACTICES FOR SITECORE About Nonlinear Who is Nonlinear Digital? Nonlinear Digital is the full-service digital agency division of non-linear creations. With offices across Canada, the USA and Brazil, Nonlinear has a track record of successfully planning, executing and measuring the effectiveness of digital marketing and outreach solutions for a range of clients. What does Nonlinear Digital do? We write digital strategy. We build eye-catching websites and we do it with a technical proficiency that is second to none. We help organize your digital team and educate your stakeholders. We help you extract meaning from data so you know if you re really driving business value from your investment. We are a full-service digital agency with extensive knowledge and technical expertise in various CMS and marketing/analytics solutions. Our teams, working with you, use an agile methodology to create unique website and digital experiences that drive business results in a measurable way. What makes Nonlinear different? We put business first. After almost 20 years in the game, we have seen technologies and trends come and go. What has remained constant, however, is the need to drive tangible business outcomes from your digital spend. Today our focus is on creating an engaging online presence that: ~ ~ serves your customers needs by being memorable, relevant and increasingly personalized and accessible on any device serves your business needs by generating meaningful data from which you can extract real insights and metrics tied to your business goals Contact us today [email protected]
29 BEST PRACTICES FOR SITECORE 29 APPENDIX A Lucene Example private void SearchInternal(string search) { //Get index for the database by index name Database db = currentdatabase; Index index = db.indexes[indexname]; //If index doesn t exist for the database then index == null Sitecore.Diagnostics.Error.AssertNotNull(index, There is no + indexname + index on the current database ( + db.name + ) ); //IndexSearcher is the object which performs search through the index IndexSearcher searcher = index.getsearcher(db); try { /* *An Analyzer builds TokenStreams to analyze the text. *The analyzer represents a policy for extracting index terms from the text. *A common implementation is to build a Tokenizer, which breaks the stream *of characters from the Reader into raw Tokens. *One or more TokenFilters may then be applied to the output of the Tokenizer. *spurious (stop) words using English dictionary */ Analyzer analyzer = new StandardAnalyzer(); /* * QueryParser obtains token stream using the Analizer and creates the Query * baseing on internal rules. * QueryParser need to know content field in index to be able to parse queries like * Search or Example. These queries will be transformed into * [content_field]:search and [content_field]:example */ QueryParser qp = new QueryParser(Index.ContentFieldName, analyzer); /* * In default mode (OR_OPERATOR) terms without any modifiers are considered optional: * for example Test search is equal to Test OR search. * In AND_OPERATOR mode terms are considered to be in conjuction: the above mentioned * query is parsed as Test AND search */ qp.setdefaultoperator(queryparser.or_operator);
30 30 BEST PRACTICES FOR SITECORE /* * This method converts string query to object Query that can be used in searching */ Query query = qp.parse(search); TermQuery includeinsearch = new TermQuery(new Lucene.Net.Index.Term( includeinsearchresults, 1 )); BooleanQuery fullquery = new BooleanQuery(); includeinsearch.setboost(0); fullquery.add(query, BooleanClause.Occur.SHOULD); fullquery.add(includeinsearch, BooleanClause.Occur.MUST); /* * Execute search using query and search objects * This method returns Hits object. It contains documents (search results) collection * and some additional result information. */ //Hits hits = searcher.search(query); Hits hits = searcher.search(fullquery); int docscount = 0; //Hits.Length contains overall number of documents found for (int i = 0; i < hits.length(); i++) { /*Hits.Doc(i) returns one Document (search result) by index * *Sitecore.Data.Indexing.Index has static method that can return Item * based on Document (search result) and database. *Be aware that it can be done only because during the indexing * indexer writes to the field _docid item ID. So if you want to override * default indexer class do not forget to put this info. */ Item item = Index.GetItem(hits.Doc(i), db); if (item!= null) { /* * The easiest way to put search result on the page is creating * Literal, filling it with propper value and adding it to the * result placeholder */ Literal lable = new Literal(); lable.text = string.format( <b>{0}</b><br/><a href=\ {1}{2}\ >Link</a><br/>, item. Name, item.paths.ismediaitem? item.fields[ Path ].Value : Sitecore.Links.LinkManager. GetItemUrl(item),?sc_database= + db.name); SearchResults.Controls.Add(lable); docscount++;
31 BEST PRACTICES FOR SITECORE 31 } } } //Add some overall search inforamtion SetResultsSummary(search, docscount); } catch { //If search is failed for some reason it s necessary to inform user about it string errortext = Translate.Text( Error executing search request ) +. ; errortext += Translate.Text( Please input a valid search string ) +. ; LiteralControl errorcontrol = new LiteralControl( <span style=\ color:red; SearchResults.Controls.Add(errorControl); } finally { // DO NOT forget to close searcher. Because it may lock index. // Be careful not to call this method while you are still using objects like Hits. searcher.close(); }
Building A Very Simple Web Site
Sitecore CMS 6.2 Building A Very Simple Web Site Rev 100601 Sitecore CMS 6. 2 Building A Very Simple Web Site A Self-Study Guide for Developers Table of Contents Chapter 1 Introduction... 3 Chapter 2 Building
Terms and Definitions for CMS Administrators, Architects, and Developers
Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page
Cache Configuration Reference
Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...
E-Commerce Installation and Configuration Guide
E-Commerce Installation and Configuration Guide Rev: 2012-02-17 Sitecore E-Commerce Services 1.2 E-Commerce Installation and Configuration Guide A developer's guide to installing and configuring Sitecore
Sitecore Health. Christopher Wojciech. netzkern AG. [email protected]. Sitecore User Group Conference 2015
Sitecore Health Christopher Wojciech netzkern AG [email protected] Sitecore User Group Conference 2015 1 Hi, % Increase in Page Abondonment 40% 30% 20% 10% 0% 2 sec to 4 2 sec to 6 2 sec
SharePoint Integration Framework Developers Cookbook
Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook Rev: 2013-11-28 Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook A Guide
EPiServer Operator's Guide
EPiServer Operator's Guide Abstract This document is mainly intended for administrators and developers that operate EPiServer or want to learn more about EPiServer's operating environment. The document
Building A Very Simple Website
Sitecore CMS 6.5 Building A Very Simple Web Site Rev 110715 Sitecore CMS 6.5 Building A Very Simple Website A Self-Study Guide for Developers Table of Contents Chapter 1 Introduction... 3 Chapter 2 Creating
Microsoft Dynamics CRM Security Provider Module
Microsoft Dynamics CRM Security Provider Module for Sitecore 6.6-8.0 CRM Security Provider Rev: 2015-04-15 Microsoft Dynamics CRM Security Provider Module for Sitecore 6.6-8.0 Developer's Guide A developer's
CMS Performance Tuning Guide
CMS Performance Tuning Guide Rev: 12 February 2013 Sitecore CMS 6.0-6.5 CMS Performance Tuning Guide A developer's guide to optimizing the performance of Sitecore CMS Table of Contents Chapter 1 Introduction...
Scaling Sitecore for Load
Scaling Sitecore for Load introduction In 2012, SolutionSet rebuilt the California Lottery website from the ground up and learned a great deal about building a Sitecore infrastructure to withstand targeted
Sitecore InDesign Connector 1.1
Sitecore Adaptive Print Studio Sitecore InDesign Connector 1.1 - User Manual, October 2, 2012 Sitecore InDesign Connector 1.1 User Manual Creating InDesign Documents with Sitecore CMS User Manual Page
New Relic & JMeter - Perfect Performance Testing
TUTORIAL New Relic & JMeter - Perfect Performance Testing by David Sale Contents Introduction 3 Demo Application 4 Hooking Into New Relic 4 What Is JMeter? 6 Installation and Usage 6 Analysis In New Relic
Jim2 ebusiness Framework Installation Notes
Jim2 ebusiness Framework Installation Notes Summary These notes provide details on installing the Happen Business Jim2 ebusiness Framework. This includes ebusiness Service and emeter Reads. Jim2 ebusiness
ORACLE SERVICE CLOUD GUIDE: HOW TO IMPROVE REPORTING PERFORMANCE
ORACLE SERVICE CLOUD GUIDE: HOW TO IMPROVE REPORTING PERFORMANCE Best Practices to Scale Oracle Service Cloud Analytics for High Performance ORACLE WHITE PAPER MARCH 2015 Table of Contents Target Audience
Sitecore Performance. Technical Deep Dive. Steve Green, Solution Architect [email protected]
Sitecore Performance Technical Deep Dive Steve Green, Solution Architect [email protected] Webinar Agenda Technical Introduction Divide and conquer Starting on a solid footing General improvements Sitecore
Getting Started with Sitecore Azure
Sitecore Azure 3.1 Getting Started with Sitecore Azure Rev: 2015-09-09 Sitecore Azure 3.1 Getting Started with Sitecore Azure An Overview for Sitecore Administrators Table of Contents Chapter 1 Getting
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform Technical Discussion David Churchill CEO DraftPoint Inc. The information contained in this document represents the current
Metalogix SharePoint Backup. Advanced Installation Guide. Publication Date: August 24, 2015
Metalogix SharePoint Backup Publication Date: August 24, 2015 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this
How To Build An Intranet In Sensesnet.Com
Sense/Net 6 Evaluation Guide How to build a simple list-based Intranet? Contents 1 Basic principles... 4 1.1 Workspaces... 4 1.2 Lists... 4 1.3 Check-out/Check-in... 5 1.4 Version control... 5 1.5 Simple
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see
AxCMS.net on Network Load Balancing (NLB) Environment
AxCMS.net on Network Load Balancing (NLB) Environment This article contains step-by-step instructions on how to install AxCMS.net PremiumSample on a demo NLB cluster using IIS7. For installing on older
Administrator s and Developer s Guide
E-Mail Campaign Manager Administrator s and Developer s Guide Rev: 2013-11-22 E-Mail Campaign Manager for Sitecore CMS 6.5 Administrator s and Developer s Guide A Quick Start Guide and Configuration Reference
Content Author's Reference and Cookbook
Sitecore CMS 6.2 Content Author's Reference and Cookbook Rev. 091019 Sitecore CMS 6.2 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents
multiple placeholders bound to one definition, 158 page approval not match author/editor rights, 157 problems with, 156 troubleshooting, 156 158
Index A Active Directory Active Directory nested groups, 96 creating user accounts, 67 custom authentication, 66 group members cannot log on, 153 mapping certificates, 65 mapping user to Active Directory
SharePoint Server 2010 Capacity Management: Software Boundaries and Limits
SharePoint Server 2010 Capacity Management: Software Boundaries and s This document is provided as-is. Information and views expressed in this document, including URL and other Internet Web site references,
Analytics Configuration Reference
Sitecore Online Marketing Suite 1 Analytics Configuration Reference Rev: 2009-10-26 Sitecore Online Marketing Suite 1 Analytics Configuration Reference A Conceptual Overview for Developers and Administrators
Content Management System
Content Management System XT-CMS INSTALL GUIDE Requirements The cms runs on PHP so the host/server it is intended to be run on should ideally be linux based with PHP 4.3 or above. A fresh install requires
BillQuick Agent 2010 Getting Started Guide
Time Billing and Project Management Software Built With Your Industry Knowledge BillQuick Agent 2010 Getting Started Guide BQE Software, Inc. 2601 Airport Drive Suite 380 Torrance CA 90505 Support: (310)
Administrator's Guide
Active Directory Module AD Module Administrator's Guide Rev. 090923 Active Directory Module Administrator's Guide Installation, configuration and usage of the AD module Table of Contents Chapter 1 Introduction...
Configuring and Testing Caching and Other Performance Options in Microsoft SharePoint Technologies
Configuring and Testing Caching and Other Performance Options in Microsoft SharePoint Technologies Module Overview The Out of the Box Experience Resources and Tools for Testing IIS Compression Output Caching
Page Editor Recommended Practices for Developers
Page Editor Recommended Practices for Developers Rev: 7 July 2014 Sitecore CMS 7 and later Page Editor Recommended Practices for Developers A Guide to Building for the Page Editor and Improving the Editor
Kentico CMS 7.0 Intranet Administrator's Guide
Kentico CMS 7.0 Intranet Administrator's Guide 2 Kentico CMS 7.0 Intranet Administrator's Guide Table of Contents Introduction 5... 5 About this guide Getting started 7... 7 Installation... 11 Accessing
This document is provided "as-is". Information and views expressed in this document, including URLs and other Internet Web site references, may
This document is provided "as-is". Information and views expressed in this document, including URLs and other Internet Web site references, may change without notice. Some examples depicted herein are
Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia
Simple Tips to Improve Drupal Performance: No Coding Required By Erik Webb, Senior Technical Consultant, Acquia Table of Contents Introduction................................................ 3 Types of
E-Commerce Installation and Configuration Guide
E-Commerce Installation and Configuration Guide Rev: 2011-05-19 Sitecore E-Commerce Fundamental Edition 1.1 E-Commerce Installation and Configuration Guide A developer's guide to installing and configuring
Best Practices for Log File Management (Compliance, Security, Troubleshooting)
Log Management: Best Practices for Security and Compliance The Essentials Series Best Practices for Log File Management (Compliance, Security, Troubleshooting) sponsored by Introduction to Realtime Publishers
In the same spirit, our QuickBooks 2008 Software Installation Guide has been completely revised as well.
QuickBooks 2008 Software Installation Guide Welcome 3/25/09; Ver. IMD-2.1 This guide is designed to support users installing QuickBooks: Pro or Premier 2008 financial accounting software, especially in
Creating and Managing Shared Folders
Creating and Managing Shared Folders Microsoft threw all sorts of new services, features, and functions into Windows 2000 Server, but at the heart of it all was still the requirement to be a good file
NETWRIX FILE SERVER CHANGE REPORTER
NETWRIX FILE SERVER CHANGE REPORTER ADMINISTRATOR S GUIDE Product Version: 3.3 April/2012. Legal Notice The information in this publication is furnished for information use only, and does not constitute
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Monitoring PostgreSQL database with Verax NMS
Monitoring PostgreSQL database with Verax NMS Table of contents Abstract... 3 1. Adding PostgreSQL database to device inventory... 4 2. Adding sensors for PostgreSQL database... 7 3. Adding performance
Dynamics CRM for Outlook Basics
Dynamics CRM for Outlook Basics Microsoft Dynamics CRM April, 2015 Contents Welcome to the CRM for Outlook Basics guide... 1 Meet CRM for Outlook.... 2 A new, but comfortably familiar face................................................................
NovaBACKUP Storage Server User Manual NovaStor / April 2013
NovaBACKUP Storage Server User Manual NovaStor / April 2013 2013 NovaStor, all rights reserved. All trademarks are the property of their respective owners. Features and specifications are subject to change
1 How to Monitor Performance
1 How to Monitor Performance Contents 1.1. Introduction... 1 1.2. Performance - some theory... 1 1.3. Performance - basic rules... 3 1.4. Recognizing some common performance problems... 3 1.5. Monitoring,
ORACLE BUSINESS INTELLIGENCE WORKSHOP
ORACLE BUSINESS INTELLIGENCE WORKSHOP Integration of Oracle BI Publisher with Oracle Business Intelligence Enterprise Edition Purpose This tutorial mainly covers how Oracle BI Publisher is integrated with
HELP DESK MANUAL INSTALLATION GUIDE
Help Desk 6.5 Manual Installation Guide HELP DESK MANUAL INSTALLATION GUIDE Version 6.5 MS SQL (SQL Server), My SQL, and MS Access Help Desk 6.5 Page 1 Valid as of: 1/15/2008 Help Desk 6.5 Manual Installation
Running a Workflow on a PowerCenter Grid
Running a Workflow on a PowerCenter Grid 2010-2014 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)
Portals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
DMS Performance Tuning Guide for SQL Server
DMS Performance Tuning Guide for SQL Server Rev: February 13, 2014 Sitecore CMS 6.5 DMS Performance Tuning Guide for SQL Server A system administrator's guide to optimizing the performance of Sitecore
ADMINISTRATOR GUIDE VERSION
ADMINISTRATOR GUIDE VERSION 4.0 2014 Copyright 2008 2014. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means electronic or mechanical, for any purpose
Team Foundation Server 2012 Installation Guide
Team Foundation Server 2012 Installation Guide Page 1 of 143 Team Foundation Server 2012 Installation Guide Benjamin Day [email protected] v1.0.0 November 15, 2012 Team Foundation Server 2012 Installation
Team Foundation Server 2013 Installation Guide
Team Foundation Server 2013 Installation Guide Page 1 of 164 Team Foundation Server 2013 Installation Guide Benjamin Day [email protected] v1.1.0 May 28, 2014 Team Foundation Server 2013 Installation Guide
2/24/2010 ClassApps.com
SelectSurvey.NET Training Manual This document is intended to be a simple visual guide for non technical users to help with basic survey creation, management and deployment. 2/24/2010 ClassApps.com Getting
Workflow Templates Library
Workflow s Library Table of Contents Intro... 2 Active Directory... 3 Application... 5 Cisco... 7 Database... 8 Excel Automation... 9 Files and Folders... 10 FTP Tasks... 13 Incident Management... 14 Security
How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers.
1 How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers. Back to Basics Series By Steve Smith, MVP SharePoint Server,
Vector HelpDesk - Administrator s Guide
Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Configuring and Maintaining Vector HelpDesk version 5.6 Vector HelpDesk - Administrator s Guide Copyright Vector Networks
Developing an Effective Email Management Solution in SharePoint
Developing an Effective Email Management Solution in SharePoint Introduction - The Case for SharePoint Email management is a critical requirement for many organizations today, however deploying and supporting
Lenovo Online Data Backup User Guide Version 1.8.14
Lenovo Online Data Backup User Guide Version 1.8.14 Contents Chapter 1: Installing Lenovo Online Data Backup...5 Downloading the Lenovo Online Data Backup Client...5 Installing the Lenovo Online Data
Content Author's Reference and Cookbook
Sitecore CMS 6.5 Content Author's Reference and Cookbook Rev. 110621 Sitecore CMS 6.5 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents
Auditing manual. Archive Manager. Publication Date: November, 2015
Archive Manager Publication Date: November, 2015 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this software,
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
How To Install Powerpoint 6 On A Windows Server With A Powerpoint 2.5 (Powerpoint) And Powerpoint 3.5.5 On A Microsoft Powerpoint 4.5 Powerpoint (Powerpoints) And A Powerpoints 2
DocAve 6 Service Pack 1 Installation Guide Revision C Issued September 2012 1 Table of Contents About the Installation Guide... 4 Submitting Documentation Feedback to AvePoint... 4 Before You Begin...
CommonSpot Content Server Version 6.2 Release Notes
CommonSpot Content Server Version 6.2 Release Notes Copyright 1998-2011 PaperThin, Inc. All rights reserved. About this Document CommonSpot version 6.2 updates the recent 6.1 release with: Enhancements
Load testing with. WAPT Cloud. Quick Start Guide
Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica
Introduction to Source Control ---
Introduction to Source Control --- Overview Whether your software project is large or small, it is highly recommended that you use source control as early as possible in the lifecycle of your project.
High Availability Essentials
High Availability Essentials Introduction Ascent Capture s High Availability Support feature consists of a number of independent components that, when deployed in a highly available computer system, result
Best practices for operational excellence (SharePoint Server 2010)
Best practices for operational excellence (SharePoint Server 2010) Published: May 12, 2011 Microsoft SharePoint Server 2010 is used for a broad set of applications and solutions, either stand-alone or
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
Managed Antivirus Quick Start Guide
Quick Start Guide Managed Antivirus In 2010, GFI Software enhanced its security product offering with the acquisition of Sunbelt Software and specifically its VIPRE product suite. Like GFI Software, Sunbelt
DocAve 6 Service Pack 1 Platform Backup and Restore
DocAve 6 Service Pack 1 Platform Backup and Restore User Guide Revision B Issued September 2012 1 Table of Contents About DocAve Platform Backup and Restore... 5 Complementary Products... 5 Submitting
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Whitepaper: performance of SqlBulkCopy
We SOLVE COMPLEX PROBLEMS of DATA MODELING and DEVELOP TOOLS and solutions to let business perform best through data analysis Whitepaper: performance of SqlBulkCopy This whitepaper provides an analysis
Configuring the Server(s)
Introduction Configuring the Server(s) IN THIS CHAPTER. Introduction. Overview of Machine Configuration Options. Installing and Configuring FileMaker Server. Testing Your Installation. Hosting Your File.
EZManage SQL Pro. Quick guide for installation and implementation
EZManage SQL Pro Quick guide for installation and implementation The purpose of this document is to guide you through the process of implementing EZManage SQL using SQL Server Databases. EZManage SQL is
Web Server (Step 1) Processes request and sends query to SQL server via ADO/OLEDB. Web Server (Step 2) Creates HTML page dynamically from record set
Dawn CF Performance Considerations Dawn CF key processes Request (http) Web Server (Step 1) Processes request and sends query to SQL server via ADO/OLEDB. Query (SQL) SQL Server Queries Database & returns
Cognos Performance Troubleshooting
Cognos Performance Troubleshooting Presenters James Salmon Marketing Manager [email protected] Andy Ellis Senior BI Consultant [email protected] Want to ask a question?
Diagnostic Manager. User Guide. Publication Date: September 04, 2015
Diagnostic Manager Publication Date: September 04, 2015 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this software,
1 How to Monitor Performance
1 How to Monitor Performance Contents 1.1. Introduction... 1 1.1.1. Purpose of this How To... 1 1.1.2. Target Audience... 1 1.2. Performance - some theory... 1 1.3. Performance - basic rules... 3 1.4.
GoGrid Implement.com Configuring a SQL Server 2012 AlwaysOn Cluster
GoGrid Implement.com Configuring a SQL Server 2012 AlwaysOn Cluster Overview This documents the SQL Server 2012 Disaster Recovery design and deployment, calling out best practices and concerns from the
Visual Studio.NET Database Projects
Visual Studio.NET Database Projects CHAPTER 8 IN THIS CHAPTER Creating a Database Project 294 Database References 296 Scripts 297 Queries 312 293 294 Visual Studio.NET Database Projects The database project
How to Configure Outlook 2013 to connect to Exchange 2010
How to Configure Outlook 2013 to connect to Exchange 2010 Outlook 2013 will install and work correctly on any version of Windows 7 or Windows 8. Outlook 2013 won t install on Windows XP or Vista. 32-bit
2X ApplicationServer & LoadBalancer Manual
2X ApplicationServer & LoadBalancer Manual 2X ApplicationServer & LoadBalancer Contents 1 URL: www.2x.com E-mail: [email protected] Information in this document is subject to change without notice. Companies,
BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008
BUILDER 3.0 Installation Guide with Microsoft SQL Server 2005 Express Edition January 2008 BUILDER 3.0 1 Table of Contents Chapter 1: Installation Overview... 3 Introduction... 3 Minimum Requirements...
enicq 5 System Administrator s Guide
Vermont Oxford Network enicq 5 Documentation enicq 5 System Administrator s Guide Release 2.0 Published November 2014 2014 Vermont Oxford Network. All Rights Reserved. enicq 5 System Administrator s Guide
Sending Email on Blue Hornet
Sending Email on Blue Hornet STEP 1 Gathering Your Data A. For existing data from Advance or Outlook, pull email address, first name, last name, and any other variable data you would like to use in the
Bitrix Site Manager ASP.NET. Installation Guide
Bitrix Site Manager ASP.NET Installation Guide Contents Introduction... 4 Chapter 1. Checking for IIS Installation... 5 Chapter 2. Using An Archive File to Install Bitrix Site Manager ASP.NET... 7 Preliminary
Integrating VoltDB with Hadoop
The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.
Elgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
Installing GFI MailSecurity
Installing GFI MailSecurity Introduction This chapter explains how to install and configure GFI MailSecurity. You can install GFI MailSecurity directly on your mail server or you can choose to install
Online Backup Client User Manual Linux
Online Backup Client User Manual Linux 1. Product Information Product: Online Backup Client for Linux Version: 4.1.7 1.1 System Requirements Operating System Linux (RedHat, SuSE, Debian and Debian based
NetWrix SQL Server Change Reporter
NetWrix SQL Server Change Reporter Version 2.2 Administrator Guide Contents NetWrix SQL Server Change Reporter Administrator Guide 1. INTRODUCTION... 3 1.1 KEY FEATURES... 3 1.2 LICENSING... 4 1.3 HOW
PORTAL ADMINISTRATION
1 Portal Administration User s Guide PORTAL ADMINISTRATION GUIDE Page 1 2 Portal Administration User s Guide Table of Contents Introduction...5 Core Portal Framework Concepts...5 Key Items...5 Layouts...5
How to Combine Jive and SharePoint to Create an Enterprise Social Collaboration Solution
} How to Combine Jive and SharePoint to Create an Enterprise Social Collaboration Solution { Whitepaper: How to Combine Jive and SharePoint to Create an Enterprise Social Collaboration Solution Page 1
Change Color for Export from Light Green to Orange when it Completes with Errors (31297)
ediscovery 5.3.1 Service Pack 8 Release Notes Document Date: July 6, 2015 2015 AccessData Group, Inc. All Rights Reserved Introduction This document lists the issues addressed by this release. All known
How to Configure a Stress Test Project for Microsoft Office SharePoint Server 2007 using Visual Studio Team Suite 2008.
How to Configure a Stress Test Project for Microsoft Office SharePoint Server 2007 using Visual Studio Team Suite 2008. 1 By Steve Smith, MVP SharePoint Server, MCT And Penny Coventry, MVP SharePoint Server,
How To Set Up Safetica Insight 9 (Safetica) For A Safetrica Management Service (Sms) For An Ipad Or Ipad (Smb) (Sbc) (For A Safetaica) (
SAFETICA INSIGHT INSTALLATION MANUAL SAFETICA INSIGHT INSTALLATION MANUAL for Safetica Insight version 6.1.2 Author: Safetica Technologies s.r.o. Safetica Insight was developed by Safetica Technologies
