Using the same HTML help in a .NET desktop app & .NET website.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nukefusion
    Recognized Expert New Member
    • Mar 2008
    • 221

    Using the same HTML help in a .NET desktop app & .NET website.

    Hi all,
    I'm trying to think of the best way to achieve a certain goal and thought I would draw on the experience here.

    What I am currently doing is compiling a set of HTML files that form the help guide of an application I am working on.
    The help guide needs to be integrated into both a C# .NET desktop app AND a .NET based website using master pages.

    The requirements are that:

    (a) The same set of files are to be accessible through both my desktop application and my website, so that I only have to update one set of help files.

    (b) The website copy is search engine friendly, i.e. the pages must be indexable by a seach engine spider/robot.

    (c) The website copy utilises the master page feature of ASP.NET so that there is a consistent look and feel across the whole site.

    Originally, I was going to compile the help for my desktop app using HTMLHelp but I don't know if the Java based or ActiveX HTMLHelp viewer provided by Microsoft for websites is search engine friendly.

    There are other problems, i.e. page links between different parts of the help files - currently these all end in .HTML and this compiles fine for HTMLHelp, but how will this work with an .ASPX website?

    Does anybody have any experience of producing help in a format usable by both a desktop and web application? Any ideas on a simple and maintainable approach?

    Thanks,
    Matt.
  • Plater
    Recognized Expert Expert
    • Apr 2007
    • 7872

    #2
    What if you got really sneaky with it?
    And created something to the effect of:
    MasterPage.aspx ?page=helppage1 .html
    or
    MasterPage.aspx ?page=helppage2 .html

    etc. The MasterPage.aspx takes the page attribute and fetches its contents from some webservice.

    That leaves the trouble with the html links, here's where I see some tricky business coming in.
    You can map the url for:
    MasterPage.aspx ?page=helppage2 .html
    to look like this I think
    MasterPage/page/helppage2.html

    So anytime it sees a URL in that 2nd format, it knows to execute as if it were in the first format. Then you let all your html links be relative "helppage2.html " vs "http://whatever.com/helppage2.html"

    Comment

    • nukefusion
      Recognized Expert New Member
      • Mar 2008
      • 221

      #3
      Thanks Plater,

      That's the sort of solution my mind is leaning towards. I've been toying with the idea of writing out the help files in a more neutral XML format so I could then apply a stylesheet transformation to create any HTML format I want. It's not a requirement that my app use HTMLHelp - a custom viewer will do. The online help will have a central page with a TOC and any topics can be loaded via the querystring.
      The code behind can handle the processing of the XML file and control the resultant output.

      I think that pretty much covers all the requirements. Thanks again for your help Plater. :)

      Comment

      • Frinavale
        Recognized Expert Expert
        • Oct 2006
        • 9749

        #4
        I only glanced at your problem but off the top of my head I'd recommend looking into compiled Help files.

        Compiled help files are actually composed of HTML pages. You won't be able to use ASPX pages for this...because well you aren't going to have a web server at your disposal in the desktop application.

        So, in theory, you should be able to create a help website and then use something like HTML Help Workshop (I think this comes with Windows but I can't remember) to create a compiled help package that can be used in the desktop application....

        There are some expensive applications that I know will produce both desktop and web help.

        Are you creating HTML help for your code? Or for the application?

        Comment

        • nukefusion
          Recognized Expert New Member
          • Mar 2008
          • 221

          #5
          Hi Frinavale,

          It's end-user help. The application is a program as opposed to a class library so it's a standard user guide.

          My website is an ASP.NET site using master pages so without doing some sort of magic I don't think HTML Help Workshop is going to compile anything I write specifically for the website. Conversely, I know I can create an .CHM file for the desktop app and then use that on the website but AFAIK that isn't going to be search engine friendly.

          I think Platers suggestion is the way forward, just wondered if anyone else knew of a ready made or well practised solution.

          Comment

          • Frinavale
            Recognized Expert Expert
            • Oct 2006
            • 9749

            #6
            Is your help only available online then?

            Comment

            • nukefusion
              Recognized Expert New Member
              • Mar 2008
              • 221

              #7
              No, the help needs to be available off-line within the desktop app and on-line via my website. I only want to update one set of files though so I need a format that allows me to have one set of source files that can be used for both the offline desktop app and the online help.

              Comment

              • Frinavale
                Recognized Expert Expert
                • Oct 2006
                • 9749

                #8
                I've done both desktop and web help but I used a tool (called RoboHelp) but it's not cheep (starting at almost $1000.00 USD).

                If your doing this as a side project then I couldn't see spending this type of money for the product...but if it's for a company and you can claim it as an expense then I'd say that it's almost worth it.

                This tool will let you create compiled help and web based help. It's a little frustrating but does the job nicely (professional looking outcome).

                Maybe try searching for a free RoboBot alternative :)

                Comment

                Working...