Version 2014.5.31.0

Release notes for version 2014.5.31.0.

Help File Builder

This release completes removal of the branding transformations and implements the new VS2013 presentation style that utilizes the new lightweight website format. Several breaking changes had to be made in order to support it properly. You will need to rebuild any custom plug-ins, components, and presentation styles against the latest version of the Sandcastle and Help File Builder assemblies.

  Important

If switching to the new VS2013 presentation style, there are a few issues to be aware of. Most notable is that existing links to topics from external sites will not work unless updated to use the direct URL to the topic. See the Lightweight Website Style Plug-In topic for details.

  • Moved the web content from the standalone GUI to the presentation style project. It is now in a presentation style folder called .\LegacyWeb. If you have custom presentation styles that use the prior web content, update them to use the new folder location.

  • Updated the build engine to support the presentation style plug-in dependency list.

  • The Syntax Component now supports configuring the order of the syntax generators. This only has an effect in presentation styles that support code snippet grouping (currently only the VS2010 and VS2013 styles).

  • The default language for the VS2010 and VS2013 presentation styles can be set using the new defaultLanguage transform argument found on the Transform Args property page. This can be used in conjunction with the Syntax Component configuration to match the default language to the first language in the syntax language sort order.

  • Added an IsHidden property to the HelpFileBuilderPlugInExportAttribute. The Plug-Ins property page uses this to hide presentation style dependency plug-ins that do not have any configurable settings.

  • Added support for Windows Phone 8.1 (Silverlight and Windows Store Apps) frameworks. Thanks to Morten Nielsen for the configuration settings.

  • Updated the presentation style and syntax generator project templates to reflect recent changes in the API.

  • Updated the topic previewer tool window to use a VS2013-like presentation style.

  • Made the VS2013 style the default presentation style for new projects.

  • Renamed the View Website (ASP.NET) and View Website (HTML) options to View Website (Local Web Dev Server) and View Website (Local File System) to reflect their more general use now since the VS2013 presentation style does not contain an Index.aspx page and no longer requires ASP.NET to be viewed with the local web development server.

Sandcastle Tools Breaking Changes

This release completes removal of the branding transformations and implements the new VS2013 presentation style that utilizes the new lightweight website format. Several breaking changes had to be made in order to support it properly. You will need to rebuild any custom plug-ins, components, and presentation styles against the latest version of the Sandcastle and Help File Builder assemblies.

BuildAssembler and Build Components

  • Modified the syntax generator components so that they write out a style ID as well as the language name. This allows better handling of grouped language elements without having to modify the XSL transformations for custom languages.

  • Each syntax generator now has a unique style ID. Third-party generators should also ensure they are using a unique style ID rather than the existing ones or the previously suggested default of "cs". Using an existing one such as "cs" will cause the custom syntax section to be associated with the other language's code snippets when grouped.

  • The language name and style ID on the syntax generators must now be set by the syntax generator factory when it constructs an instance so that the values do not have to be on the configuration elements in the BuildAssembler configuration file. This change was required to better support grouping and sorting by the SyntaxComponent and eliminate another location where the information had to be duplicated unnecessarily.

  • Added a warning to the BrandingComponent to note that its use has been deprecated and that it will be removed in a future release. You will only see this if you cloned the VS2010 or VS2013 presentation style from a prior release. Update your custom style to match the latest release as soon as possible. It is well worth the effort.

Presentation Styles

  • Moved the web content from the standalone GUI to the presentation style project. It is now in a presentation style folder called .\LegacyWeb. If you have custom presentation styles that use the prior web content, update them to use the new folder location.

Other Changes To Sandcastle Tools

Documentation

  • Updated all documentation projects to use the new VS2013 presentation style.

  • Added a topic to the XML Comments Guide for the section element revisionHistory contributed by THLucas.

BuildAssembler and Build Components

  • Fixed the SqlDictionary class so that it handles nulls correctly for unresolved member IDs in the SQL Server cached build components.

  • Added the LanguageSpecificTextComponent to handle language-specific text element conversion from span to script elements for the VS2010 and later presentation styles.

  • Added the AdditionalHeaderResourcesComponent to handle insertion of additional metadata, style sheets, and scripts in the topics based on the help file format. This allows for changes to be made on a format by format basis to give a better look to the rendered content such as adjusting the positioning of elements that may differ in the various help viewers due to variations in browser and CSS versions supported. Believe it or not, Help 1 and MS Help Viewer default to the IE7 rendering engine unless forced to use a higher version via metadata.

  • Updated the SyntaxComponent to group and sort code snippets based on the order of the defined syntax generators. The sort order and whether or not to add "No Example" tabs can be configured in the SyntaxComponent's configuration dialog.

  • Added a new TransformingTopicEventArgs class and updated the TransformComponent to raise a build event using the event arguments just prior to transforming the topic. This allows other build components to alter the document XML prior to the XSL transformation. The SyntaxComponent uses this event to group and sort the code snippets at that time since any other components that ran after it will have added their snippets by that point and we can be sure that it will find and handle them all.

  • Added code to the MSDN resolver to shut off further lookups and report failures due to the service being down. This prevents it from reporting all failures as missing content IDs.

MRefBuilder

  • Added support for Windows Phone 8.1 (Silverlight and Windows Store Apps) frameworks. Thanks to Morten Nielsen for the configuration settings.

Presentation Styles

  • Removed all branding transformations and use of the branding component from the VS2010 and VS2013 presentation styles. The presentation styles now handle all aspects of topic generation.

  • Finished the VS2013 style which is now a blend of the best parts of the MSDN and Visual Studio website styles and implemented the lightweight table of contents based on Sam Harwell's code.

  • Implemented a search feature in the new VS2013 lightweight website output that works with modified versions of the old ASP.NET and PHP server-side search pages and, if they are not available, a full client-side script implementation. Although not optimal for large sites, the client-side search works quite well for sites that do not support ASP.NET or PHP.

  • Reworked how the tab sets and language-specific text elements work to allow for missing languages in the VS2010 and VS2013 presentation styles.

  • Fixed up handling of XAML syntax sections in the Open XML, VS2010, and VS2013 presentation styles.

  • Fixed the presentation styles so that they show explicitly implemented interface member names even if the parent type is unresolved.

  • Made various updates and fixes to the VS2010 and VS2013 presentation styles to ensure they render the best possible output in each of the different help file formats.

  • Completely rewrote the code snippet grouping support to present the code snippets in a logical manner based on their positioning within a MAML topic or XML comments and took steps to make the grouping and default language easily configurable without having to change the presentation style transformations or scripts.

  • Added a new defaultLanguage transform component argument to the VS2010 and VS2013 presentation styles. This allows you to define the default language displayed in the help topics on a project by project basis. The default is "cs" for C#. The SyntaxComponent allows the order of the syntax components to be defined via its configuration dialog so that the first tab can be set to match the default language when not C#.

  • Added support for "No Example" tabs in code snippet groups. These appear for missing languages in grouped code snippets. For example, if the syntax section shows C#, VB.NET, C++ and F# but a code example only shows C# and VB.NET, tabs for C++ and F# will be added to the group with a default message noting that an example is unavailable or is not supported.

  • Added an IsDeprecated property to PresentationStyleExportAttribute. The Help File property page uses this to sort deprecated presentation styles to the end of the list.

  • Added a new PlugInDependencies presentation style property which allows a presentation style to define a list of plug-ins on which it depends so that they are added to the build with a default configuration if not already included in the project. The new VS2013 presentation style uses this to add the lightweight website style plug-in to the project when built.

  • Simplified the VS2013 style sheet to include only the necessary elements. This gives a more consistent look to the topics across all help formats.

  • Added a new "Code Example" icon to the member list pages in the VS2010 and VS2013 presentation styles to show when a type or member's comments contain code examples.

  • Added support to the VS2005, VS2010, and VS2013 presentation styles for the revisionHistory element contributed by THLucas.

  • Deprecated the VS2005 presentation style. It will not receive any further enhancements.

See Also

Other Resources