After a bunch of fighting with VS.NET over the weekend I’ve managed to get out a new version of Help Builder with updated support for Visual Studio .NET 2.0 and .NET 2.0. Most of my problems had to do with porting my VS.NET Add-in to the new version of the IDE. There are lots of subtle changes and a number of new inconsistencies and even more ways to do the WRONG thing <g>…
But anyway I’m glad I got this out of the way – I was really not looking forward to this process as working on Add-in code is an absolute bitch everytime. No matter how little the job it ends up being many hours of trial and error finding the right calls to make.
While I was at it though, I also updated a number of other things related to .NET 2.0 including the important support for Generics. In addition, several people pointed out to me that Visual Basic syntax on imports was not exactly stellar, so there have been a number of enhancements to improve type imports if you use VB.NET as the syntax language…..
And all of this was going on while we got a nice swell and wind to with it over the weekend. That's cutting into my work time <g>... Priorities, priorities always... But surprisingly it got done.
So here's an overview of what’s new in more detail:
Add-in operation in VS.NET 2005
Help Builder now supports add-in operation in VS.NET 2005, with the same functionality that was previously available for VS2003. The features included are:
- Show Help Builder in context when possible
- Update WinForms Help Topic Ids from Help Builder
- Two way Xml Comments import and export from the C# and VB editors
- Ability to update XML comments in current document from Help Builder
- Direct access to .NET Type Imports
This is not really new – this is the existing behavior just moved to be supported in VS.NET 2005. One nice thing is that all the two way XML comment stuff now works with Visual Basic out of the box since VB now supports XML comments as well.
Type Imports for .NET 2.0 Assemblies
Help Builder now works properly with .NET 2.0. Help Builder uses Interop assemblies to talk to .NET for performing all type imports and these interop assemblies previously were hardwired to .NET 1.1 via Config settings (to avoid problems during the .NET 2.0 beta). Help Builder now includes a new version of the assembly that works with 2.0 and can parse types with new features supported in the runtime like Generics.
Support for Generics
Help Builder now recognizes Generic types and imports them with their generic signatures (wwBusiness<EntityType> for example). The signature includes this generic signature.
This is a limited, first cut implementation – it doesn’t handle constraints yet, but you at least get the base definitions and proper differentiation of Generic types instead of the stock type imports which look like MyType’2.
Member Cleanup
I also decided to cleanup the member display for the Tree display both in the editor and in generated HTML and CHM files so that instead of classname.member syntax only the member is displayed. This makes the lists much more readable. The full name is still displayed in the topic title, so you’re not loosing the ability to independently determine what the member belongs to…
A few operational fixes
A couple of revs back I introduced an Html Tidy based clean view of the WYSIWYG editing functionality. This feature was nice if you switched to source view to see the HTML. Unfortunately Tidy gets a little carried away at times trying to clean up HTML. It won’t do certain things like center tags (or center styles) without adding a custom style which doesn’t work with the HTML fragment Help Builder uses. Result: No centering. There are a few similar things that have the same behavior. The worst problem however is source code. Help Builder allows posting formatted code and can automatically syntax color that code in both text or WYSIWYG modes. However, Tidy mangles this code by stripping off the Pre formatting.
So I’m sad to say I had to pull the Tidy code out because it’s just not predictable in this scenario. Unfortunately this leaves the HTML in the messy state the IE HTML Edit control generates, which uh – sucks if you need to edit the HTML by hand! Help Builder helps a little by at least finding your spot for you in the HTML. I would love to find an alternative to using the Html Edit control, so if anybody has any suggestions at all (except XStandard – since it doesn’t render close enough to what IE/CHM renders) I’d be obliged.
Help Builder 4.20 is now online as an update download for existing installs. I’ll be posting the full installer later tonight probably.