45 packages tagged with “helix”
Perforce Helix VCS Library for .NET Core Cross Platform Library supporting Windows, Linux and OSX
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.ModelMapping library is inspired by AutoMapper and is designed to provide a quick, non-ORM method of mapping Sitecore Items to ViewModels. String properties on your ViewModel will be mapped to FieldRendered values from fields with the same names. Integer and DateTime property types can also be handled automatically, although you will not get page editor support for these types. There are a number of Attributes that you can assign to your ViewModel's properties to change the behavior of the Mapper. Usage: var modelMapper = (IModelMapper)ServiceLocator.ServiceProvider.GetService(typeof(IModelMapper)); // Dependency Injection of an IModelMapper is supported TModel viewModel = modelMapper.MapItemToNew<TModel>(sourceItem); Or: TModel viewmodel = item.MapToNew<TModel>(); Or: modelMapper.MapTo(item, model); When using Item or ItemList extensions for mapping, the context IModelMapper is requested from the ServiceLocator, so any moc objects you use for testing are supported with these extension methods. Constraints: - Your ViewModel must have a public, parameterless constructor. - Only Writable, Public Instance properties will be mapped. - Within Sitecore, your field names can be human-legible. ModelMapper will attempt to convert the field name to a valid Property name. Simpler names work best. You can use the Field's Display Name for better human legibility and keep the Field's actual name closer to a legit C# entity name. - ViewModel properties can be: - - Strings - - HtmlStrings (recommended for RichText and FieldRenderer) - - Integers - - Decimals - - DateTimes - - Other ViewModels (recommended for DropLink, DropTree) - - ICollection Generics of other ViewModels (recommended for Multilist, Treelist) - - ModelMapping.Model.ImageModel (for Image Fields, gives access to all field properties and permits generating different kinds of image URLs on the View.) - - ModelMapping.Model.GeneralLinkModel (for General Link fields, gives access to all field properties through a single object.) - - Random Plain Old Classes as long as they are Where T: class, new() The following Model properties are mapped to Item properties rather than Item fields: - ID - Maps to the Item.ID - Make sure you use Sitecore.Data.ID as the property type. - Name - Maps to the Item.Name - DisplayName - Maps to Item.DisplayName - Url - Should be a string, not a Uri. Causes the current context LinkManager to generate a Url for the Item. - Parent - Maps to the ViewModel you provide based on the Item.Parent. Support for XML Field Attributes - ImageField.Alt - use Model.FieldNameAlt - ImageField.Height - use Model.FieldNameHeight - GeneralLink.Target - use Model.FieldNameTarget - etc. Support for LinkField.TargetItem - use Model.FieldNameTargetItem and supply a class with public properties and a parameterless constructor. Support for MultilistField.GetItems - use Model.FieldName and supply a generic ICollection<T> where "T" is new() and has properties you can map. Extensible! See the Constellation.Foundation.ModelMapping.config file to change the way Fields are processed.
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Data namespace contains an Item extension class that allows the developer to: - Get an Item's ancestor based on Template - Test an Item's Template inheritance - Retrieve an Item's children based on a specific Template - Retrieve the URL for the Item using the currently active LinkManager configuration. - Determine if the Item is in the Context Site. - Find or create an Item's child given a name and a Template ID.
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.PackageVerification library can be used to create NuGet packages that "self install" Items in Sitecore during the Sitecore initialization process. This can be very handy if your library requires a few "traffic control" Items or some Core/Sheer/SPEAK Items in order to run. It can also be used to prevent users from breaking your install. To use, install this NuGet package and review the provided example configuration file. for each Package you want to "verify," supply the name of the package (must be in the /packages folder) and the ID and database of Items you can use to determine if the package was previously installed. If these Items are not located, the package provided will be installed. Results are logged. It is possible to create your own package processor if your verification needs are more substantial. See the provided configuration example for where to override package processing on a package-by-package basis.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.Navigation library addresses the three most common forms of Navigation on Sitecore sites: Declared (static) Navigation: (explicitly defined, may differ from the shape of the content tree) - DeclaredNavigationRepository.GetNavigation - Accepts a Navigation Menu item and assembles a full tree-like ViewModel for immediate processing in your View. If you need context highlighting in your navigation, be sure to pass in the Context Item as well. When using NavigationLink objects, there are usually several opportunities to supply the text of a given link. NavigationLink.GetBestLinkText() evaluates all of them and attempts to supply the best fit. The strategy is based on overriding the concept of "name". Here are the rules: - If Use This Display Name is checked on the NavigationLink item, it wins. - If the Link.Text is supplied by the user, it wins. - If the Link.TargetItem exists and inherits from Page Navigation Title, and the field value is not null, it wins. - If the Link.TargetItem exists its DisplayName is used. - Assuming all other things are not true, use the NavigationLink's DisplayName. Note that in this condition if you intended to point to a Sitecore Item, you have a bad link. Branch (Context) Navigation: (implicitly defined. It follows the shape of the Content Tree) - BranchNavigationRepository.GetNavigation - Accepts the request Context Item (should be a Page) and generates a tree of BranchNodes representing the nearest LandingPage, its children, as well as the descendants of any children that are Ancestors of the Context Item. (will also create Children for the Context Item node in the tree). Use this to produce the expanded navigation seen on many sites with deep content. Breadcrumbs: (implicitly defined. It walks up the Content Tree to get the path) - BreadcrumbNavigationRepository.GetNavigation - Accepts the request Context Item and Context SiteInfo. Generates an array of Breadcrumb models you can enumerate on your View. The breadcrumbs will start on your Site's StartItem and end with the supplied Context Item, which will be marked IsContextItem so you can change your rendering behavior. Uses the Item.Axes.GetAncestors() method to generate the list of breadcrumbs. The included package must be installed to use this library. This should happen automatically after you build and deploy your project.
VERSION 10.3 is compiled for Sitecore 10.2 use and will not work on earlier versions. Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Caching namespace contains a Cache facade class that allows a developer to cache an object to either the Sitecore Cache or the System Web Cache. In addition to providing quick access to these APIs, the facade also provides support for scoping cached objects at the following levels: * Global * Site * Database Request an ICacheManager from your service locator to use in your Controllers. Portions based on work by Christopher Giddings: https://cjgiddings.wordpress.com/2012/02/03/sitecore-caching-utility/ updated heavily for modularity and to support Sitecore 9.x
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.SitemapXml namespace contains Http Handlers which intercept the request before it hits Sitecore. Robots.TXT Handler: Returns a basic document that automatically applies to all search engine agents. The stock configuration has disallows for /sitecore urls to prevent the login page from being indexed. Additional default or site specific rules can be added through the supplied configuration file. See instructions within the config file. Assuming a given Site's robots.txt does not deny the root of a site, the robots.txt file will include a link to the site's sitemap.xml file. Sitemap.XML Handler: Returns an on-the-fly document (there are cache options available) for each configured Site in your installation. The document is created by having one or more "crawlers" inspect the Content Tree generating the necessary Item facts and URLs required to produce the Sitemap. You can specify a set of default crawlers for your installation, as well as override the crawler list on a site-by-site basis. There are also provisions for excluding sites from returning a sitemap.xml document if it is not appropriate. Default Functionality: The system will function on a basic level "out of the box". There is a default Content Tree crawler that will start at the root of the current Site and include Items that have presentation details. The crawlers operate in the extranet\anonymous role and thus security can be used to "hide" Items or branches from the crawler. Crawler output has extensive support for "validating" whether an Item should be included in the sitemap or not. Facts available through the API include: - Does the Item have presentation? - Does the Item have explicit rules to prevent Search Indexing? - Does the Item represent a "Page"? It is up to the developer to supply meaningful decisions behind these facts, but answering "no" to any of them will result in the Item not being included. This library outputs substantial amounts of troubleshooting warnings to the Sitecore log file. If you're having trouble, search for Constellation.Foundation.SitemapXml in your log file. Multi-Language Support: For every "site" definition element in your Sitecore configs, add a "supportedLanguages" attribute that is a comma-delimited list of all languages available on your site (example: supportedLanguages="en-US,fr-FR,pt-PT") Doing this will force the sitemap.xml file to include "alternate" links for each language the site supports. Installation Warning: Your web.config must have a system.webServer/handlers section, and that section must have at least one handler in it (an "add" element) in order to install this package successfully. If you're using the default Sitecore web.config this won't be an issue. The handlers provided in this package must be inserted at the top of the stack of handlers.
VERSION 10.3 is compiled for Sitecore 10.2 use and will not work on earlier versions. Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Context namespace contains a contract for context-sensitive objects along with a context evaluator that compares the sensitive instances' runtime settings against their configured scope. The purpose of this library is to provide scoped pipeline handlers and rules to Sitecore to prevent developers from unintentionally executing their customizations outside the scope of their current tenant|site|request.
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Mvc assembly contains enhancements to Sitecore's MVC Rendering system: GenerateRenderingSpecificCacheKey Mvc.RenderRendering pipeline processor: Replaces the default GenerateCacheKey processor. Includes the ID of the Rendering in the cache key, this allows for multiple renderings with different presentation to use the same Datasource and be cached by Datasource without issues. MinifyAndAddRecordedHtmlToCache Mvc.RenderRendering pipeline processor: Replaces the default AddRecordedHtmlToCache processor. Uses the WebMarkupMin library to process the output HTML, Javascript, and CSS and minify it to improve page delivery time through file size reduction. The default settings are "safe" but effective, however WebMarkupMin offers far more aggressive minification settings for the bold. GetControllerRenderer Mvc.GetRenderer pipeline processor: Replaces the default GetControllerRenderer. Allows the developer to rely on the name of the Rendering to locate the appropriate controller to execute (convention over configuration). Very handy for Renderings that have a dedicated controller with one action that always produces the same output. ConventionController: Provides a good base-class controller for Sitecore implementations: * Forces the use of the Index() controller action (overrides possible) * Provides the programmer with immediate access to the Rendering's DataSource and ContextItem (PageContext) * Requires the programmer to assemble the model from the above Items. * Automatically finds the View based upon the Rendering's XPath location in Sitecore EditorCompatibleView: Replaces the stock MVC View, and provides methods for determining if the Page Mode "IsExperienceEditor" and "IsExperienceEditorEditing" which are of particular use if the View needs to change behavior to support editors. ViewPathResolver: Independent engine for locating a View based on the Rendering Item's path in Sitecore. It has configuration settings that allow the programmer to specify the location of Renderings in Sitecore and how they map to the location of the Views on disk. See the provided config file for details.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.PageTagging namespace contains controllers that will render the following meta tags when installed on page: - name=keywords - name=description - name=publisher - name=author - name=robots - name=twitter:card - name=twitter:creator - name=twitter:site - property=og:url - property=og:title - property=og:description - property=og:image These tags provide good SEO support as well as good support for Facebook and Twitter. The Sitecore Package in /Installation-Packages must be installed to take advantage of this library. The package includes: - Data Templates for the fields required to support these tags. Your pages should inherit from these to take advantage of this library. - List items where fields have a limited choice of values. - Rendering definitions. The package should self-install when you build and deploy your project. To use, in your Layout, at the appropriate location enter the following: @Html.Sitecore().Rendering("/sitecore/layout/renderings/feature/constellation/page tagging/page metadata") @Html.Sitecore().Rendering("/sitecore/layout/renderings/feature/constellation/page tagging/page search engine directives") @Html.Sitecore().Rendering("/sitecore/layout/renderings/feature/constellation/page tagging/page social metadata")
Adds rules to Code Analysis to verify Helix specific namespaces are being implemented correctly.
Perforce Helix VCS Library for .NET Core Cross Platform Library supporting Windows, Linux and OSX x64
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.PageAnalyticsScripts namespace contains controllers that will render 3rd party analytics and reporting scripts to the page. To get the controllers and supporting Data Templates, the included Sitecore package must be installed This should happen automatically when you build and deploy your project. After installation, some configuration within Sitecore is required. 1. You need to select a location for Page Analytics Scripts Items. 2. For each of the Controller Renderings provided in the package, you need to set the Datasource Folder field to the above location. 3. It is recommended that you create placeholders for the Html Header tag as well as the top and bottom of the Body tags. You can then assign the provided Controller Renderings to those locations in the Standard Values of your most basic Page Items. This module isolates the analytics script kit from actual pages, so you may share scripts on multiple pages (typically every page on a site references the same datasource). You can also "stack" scripts by adding multiple instances of the controller renderings with different datasources. This module does not directly support page/experience editor because: 1. Scripts are invisible 2. Their location in the HTML document may make it difficult to provide access to the rendering. Because maintaining these scripts requires knowledge of Javascript and Marketing Technology, it is recommended that only users familiar with the Presentation Details dialog maintain these objects.
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Datasources library is an opinionated information architecture for Sitecore. It includes "base" templates and Item information rules to enforce the architecture. Core Architecture Concept: Web Site Items are one of the following types: Context Datasource: A "page" Item in Sitecore, has a URL, has presentation, loads a Layout and has placeholders for additional Renderings. Subcontent: A "page fragment" Item in Sitecore, specifically an Item designed to be used as the DataSource for a Rendering. It is required for the Rendering to render. Subcontent is optional page content, but is unique to the page it appears on. Widget: Also a "page fragment" Item in Sitecore, specifically an Item designed to be used as the DataSource for a Rendering. It is required for the Rendering to render. Widgets are optional page content, but are designed to be shared by multiple pages. The primary information architecture for this design involves the storage of SubContent vs Widgets. All Pages on a site should get a _subcontent folder beneath them which is where Items of type Subcontent should be stored. This allows for Renderings to specify their Datasource location as "./_subcontent" Widgets should be stored beneath the /tenant/site node (using Helix methodology) typically in a /widgets folder, possibly broken up by widget type or marketing intentions. You can use the following Rule Conditions to enforce this Information Architecture: * ItemIsContextDatasource * Item IsSubcontentDatasource * ItemIsWidgetDatasource * ItemSupportsSubcontent (in some cases Pages should not support subcontent, for example, wildcard pages or pages imported from an external system) You can use the following Rule Actions to enforce this Information Architecture: * CreateSubcontentFolder In general you need a rule like this: On Item Saved, if the Item Supports Subcontent, Create a Subcontent Folder (if none exists) An example is provided in the attached package. After setting up this rule, ensure that your Renderings are organized into Widgets and Subcontent with appropriate Datasources established. Installation: Add this NuGet package to a Web Application project. After building and deploying, this library will automatically install the Sitecore package containing the necessary rules and templates to support this architecture.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.Redirects namespace contains two discrete functional components: Page Redirects: Items that are meant to be interspersed with Page type Items in the content tree so that dynamically generated navigation will list these Items as if they were part of that tree branch, although the actual target is elsewhere, or an entirely different site altogether. Marketing Redirects: Items that represent "short, catchy" URLs that then redirect deeper into the site. Also a way to teach search engines about URLs that have been permanently relocated. Marketing Redirects are managed through a discrete "application" in the Sitecore desktop. Exporting and importing redirect lists is supported. All redirects are tested for validity before they are allowed to be imported. The porting and development of this library has been kindly supported by Verndale (verndale.com)
My package description.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Mvc.Patterns library is an opinionated library that provides some base Controller and Repository classes for jumpstarting a Sitecore project. The purpose is to get developers to better separate data access logic from controllers and also to hide some uninteresting concerns. Repositories: Classes which accept a context to specify the conditions for accessing data in Sitecore along with facts for use in the query. The Repository is responsible for getting the results of a query, any caching, and any transformation into ViewModel output. Base Repositories: Repository - Just the basics of setting up the relationship between the repository and the controller. CachingRepository - Adds caching of the repository's output to the mix. SingleItemRepository - Includes both of above and is centered around queries that will retrieve a single Item. ItemListRepository - Includes the first two and is centered around queries taht will retrieve multiple Items. Controllers: Classes which are responsible for handling the transition from Sitecore to the View, including setting up a Repository Context, and getting the results from the Repository for sending to the View. Base Controllers: DatasourceRenderingController - Use when a Rendering has a Datasource Item and that Item is what's being rendered. ItemListController - Use when a Rendering will present a number of Items that have to be looked up in some fashion. On Sitecore startup, this package will scan all assemblies for IController and IRepository implementations and automatically add them to Dependency Injection. This feature can be disabled/changed via the config file for this package.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.PageTagging.SitemapXml namespace is an extension of the base Feature that adds explicit support for Foundation.SitemapXml, based upon the Page Search Engine Directive fields available in the PageTagging module. This feature is shipped separately in case the user is not using Constellation.Foundation.SitemapXml or has a different implementation that is not compatible with the PageTagging feature.
Requires Sitecore 10.2 Requires .NET Framework 4.8 Constellation Helix Catalog is a collection of utilities for the Sitecore .NET CMS. The Foundation.Linking library contains a SwitchingLinkManager that allows the developer to specify discrete LinkProviders (and their configuration settings) on a site-by-site basis while maintaining support for the default Sitecore LinkProvider for Sitecore console sites. By itself, this library simply installs and configures the SwitchingLinkManager. It is up to the developer to provide new LinkProviders or to customize LinkProvider settings as needed. This library is transcribed with permission from JammyKam's original code here: https://jammykam.wordpress.com/2017/09/22/switching-link-manager/
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Feature.ItemSorting library solves the frequently occurring problem of managing a collection of Items that users will not organize themselves, but which they expect to be organized. Examples include Events in an Event Calendar, Press Releases, and Employee Bios. Users want them sorted by date and dictionary order, but Sitecore offers little help beyond Subitems Sorting. Additionally, after a few dozen Items, users expect these entries to be grouped into folders. Enter this library! This library features two simple Rule Actions: - MoveToAlphabeticalFolder - MoveToDateFolder Included in /Installation-Packages/ is a Sitecore Package with the appropriate Rule definitions. The package should self-install after being deployed to your environment. Rule Actions: Move Item to Alphabetical Folder - Allows you to specify the template of the folder to use for creating the alphabetical folders. Move Item to Date Folder - Allows you to specify the template of the folder to use for creating the date folders. Requires you to specify the Field on the Item being processed that should be used for categorization. Requires you to specify the depth of the associated folder tree. Options are /Year/, /Year/Month/, /Year/Month/Day/ In all cases, the "root" of the classification folders is the first encountered Ancestor that is not of the specified folder type. Usage Details 1. Create your "list" page that will serve as the root of the classification. In our example we'll use "News" 2. For the Insert Options of your "list" page, include the ability to insert an Item of the type that requires classification. In our example, we'll use "Press Release" (Note that Press Release must have a date field to use for classification. In our example we'll use the custom field "Release Date". You can use "__Updated" or "__Created" too.) 3. Create a new Item Saved rule that specifies when an Item is of Template "Press Release" it should be moved to a Date Folder. Set the appropriate parameters. 4. Enjoy!
An open source development accelerator designed by the team at Perficient and released to the Sitecore community as a quick-start tool for beginning Sitecore projects.
Compatible with Sitecore 10.3 Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. This small Feature contains a Sitecore Rule Action which must be installed in order to take advantage of this library. The package should self-install once you build and deploy your project. To use, an Item Saved rule must be created. The rule must have a condition that specifies that an Item is a "page" and therefore needs an SEO-friendly URL. The rule action should be the one included in this kit. Rule options include: - Replace Diacritics - Clear Display Name (recommended so that marketers see the actual Item name and therefore URL slug for pages) - Specify illegal characters to remove (Regex "\s" is a good choice.) - Replace spaces or remove spaces from names - Force lowercase It is up to the implementer to determine the nature of "page" Items. We recommend looking at Constellation.Foundation.Datasources for rule conditions that are suitable for this specific task. Note that the Illegal Characters option and the Replace Spaces option can conflict, a "-" will be removed if you use the "\W" regex, resulting in behavior similar to "Remove Spaces" We strongly recommend using "\s".
Requires Sitecore 10.3 Requires .NET 4.8 Constellation is a collection of utilities for .NET CMS implementers. The Foundation.Globalization namespace contains extension methods for Item, Language, and SiteInfo specifically related to determining and specifying language at runtime.
Caching extensions for creating and maintaining custom caches for Sitecore Development. Project is based on Helix Design Principles
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for the Sitecore .NET CMS. The Foundation.PageNotFound library provides unique Sitecore-hosted "not found" pages with the correct 404 Http Response for each site in your installation. Installation 1. Add this NuGet package to your Sitecore solution 2. Build and Deploy your solution to a target environment Package Includes: Custom Site Attribute: notFoundPageID This attribute should be set to the ID of the Item to use for presenting 404 Response Status messages to the visitor. Each site requires its own 404 page Item. HttpRequestBegin Pipeline Processor: Page Not Found Resolver Assuming the site is configured with the ID of the "not found page" this processor will resolve the context item to that specific item if the context item is currently null. This processor must run after all Site, Database, Language, and Item resolvers, but before Device and Layout resolvers. The supplied patch:before is a safe bet, but may need to be changed depending on your solution. Please note that this processor will only run for databases and sites as configured, and should intentionally not run for Sitecore system sites. HttpRequestEnd Pipeline Processor: Set404StatusCode Assuming the site is configured with the ID of the "not found page" this processor will detect that the context item is the 404 page and will add the 404 code to the Response. Please note that the customizations in this processor will only run for databases and sites as configured, and should intentionally not run for Sitecore system sites.
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. This small Foundation kit contains a Sitecore Rule Action which must be installed in order to take advantage of this library. The package should self-install once you build and deploy your project. To use, an Item Saved rule must be created. The rule must have a condition that specifies that an Item is a "page" and therefore needs an SEO-friendly URL. The rule action should be the one included in this kit. Rule options include: - Replace Diacritics - Clear Display Name (recommended so that marketers see the actual Item name and therefore URL slug for pages) - Specify illegal characters to remove (Regex "\s" is a good choice.) - Replace spaces or remove spaces from names - Force lowercase It is up to the implementer to determine the nature of "page" Items. We recommend looking at Constellation.Foundation.Datasources for rule conditions that are suitable for this specific task. Note that the Illegal Characters option and the Replace Spaces option can conflict, a "-" will be removed if you use the "\W" regex, resulting in behavior similar to "Remove Spaces" We strongly recommend using "\s".
Requires Sitecore 10.3 Requires .NET Framework 4.8 Constellation is a collection of utilities for .NET CMS implementers. This small Foundation kit contains classes and attributes to allow for "label" models. These models are handled in a sort of "view bag" parallel strategy to the proper Model View Controller paradigm, because labels are usually not the actual model content, but inform the user how to read it. This technology is used instead of the typical Sitecore Dictionary strategy, which does not support caching in a graceful manner. More documentation will follow in the near future.
Perforce Helix VCS Library for .NET Core Cross Platform Library supporting Windows, Linux and OSX x86
Constellation is a collection of utilities for .NET CMS implementers. The Feature.SitemapXml namespace contains Http Handlers which intercept the request before it hits Sitecore. The /robots.txt handler returns a basic document stating that all agents have access to the sitemap.xml file. (there is an option to explicitly deny all agents as well). For /sitemap.xml, the request is passed to a Sitemap Generator, which uses a Crawler to identify which Items to put in the resulting XML document. The Generator also uses a Node class to parse the Items to identify what information belongs in each of the Items' records in the XML output. Because this document can be expensive to generate, there is a built-in caching mechanism. This library supports "global" defaults in the Sitecore *.config files, as well as Site-specific settings. The system will function on a basic level "out of the box". Developers are encouraged to extend/replace the crawler and node classes for their solution and/or individual Helix Projects within the solution to better suit their needs. Warning, your web.config must have a system.webServer/handlers section, and that section must have at least one handler in it (an "add" element) in order to install this package successfully. If you're using the default Sitecore web.config this won't be an issue. The handlers provided in this package must be inserted at the top of the stack of handlers. Configured for use with Sitecore 9.0. Requires Sitecore 9.0 NuGet packages, available here: https://sitecore.myget.org/F/sc-packages/api/v3/index.json