Introduction
This is part of the series on design time implementation changes in Silverlight Toolkit March 2009 Release. This post illustrates the rich intellisense support for Silverlight Toolkit, and explains implementation workflow from xmldoc in source to infotip in intellisense xml file and design assemblies.
Intellisense
Silverlight Toolkit has rich Intellisense in code and XAML editors in both Visual Studio and Blend:
Visual Studio XAML editor has intellisense too, but no infotip:
Implementation
Code Editor Intellisense Infotip from XML Files
The intellisense infotips in code editors in Visual Studio and Blend come from intellisense xml files installed under Silverlight SDK and Toolkit directories:
Localization
Those intellisense xml files can be localized. If you install localized Visual Studio and localized Silverlight SDK, you will see localized infotips, which is a great help for those who don’t speak English. Below is the screenshot of Visual Studio running with Simplified Chinese language and simplified Chinese version of Silverlight Tools for Visual Studio SP1:
The Chinese infotip is from localized System.Windows.Controls.xml under zh-CHS sub directory:
C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Client>dir/s /b system.windows.controls.xml C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Client\system.windows.controls.xml C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Client\zh-CHS\system.windows.controls.xml
XAML Editor Intellisense Infotip from Design Assemblies
The intellisense infotips in Blend 3 XAML editor come from a different mechanism: they come from DescriptionAttribute implemented by design dlls installed under the Design subdirectory:
So it is the same as infotips in Blend Properties panel (please see Design Time Features in Silverlight Toolkit for more information):
xmldoc comment –> intellisense xml file –> DescriptionAttribute in design assembly
All those infotips come from xml documentation comments in source code, as seen from below screenshot:
- we put xmldoc comments in source code
- build generates .xml files from those xmldoc comments
- the generated .xml files are embedded in design dlls (see Design Time Feature Implementation in Silverlight Toolkit for more information)
- the control dlls, design dlls, and xml files are installed by SDK and Toolkit setup
Conclusion
This post describes the rich intellisense support of Silverlight Toolkit and its implementation workflow from xmldoc comments to intellisense xml files to design dlls. Good commenting pays!