VS2012 MSHA 文件制做程序

一,目的

说实在的,写这个软件的目的很简单,也很单纯。微软的Visual Studio 2012做为一个开发工具,这次做的很体贴,让人感觉服务。但是,微软却在这个时候让我们恶心了一把。帮助系统没有附带在ISO里。

你在IDE里按F1之后,帮助系统,默认是不进行本地安装的。如下图

image

如果你要查看帮助内容,简单”联机”

image

然后,它会从微软的官网上返回一个可用的帮助文档的列表,你需要什么,下载安装就可以了。

这个地址是:http://services.mtps.microsoft.com/ServiceAPI/catalogs/visualstudio11/zh-cn (中文版)

微软的这个设定一直让我很困惑,不明白这样做的原因是什么。后来翻看网上有朋友发布出来的几个msha文件,其中最有说服力的是 “Microsoft 帮助查看器 2.0” ,经过比较发现,帮助文档是一直在更新的。对,没错。一天前你下载的文件,一天后可能就是不一样的了。

好了,这下我们就有理由来折腾一下了。

二、过程

有了目标,我们就一步步来做吧。

首先,我们的数据来源自网页 http://services.mtps.microsoft.com/ServiceAPI/catalogs/visualstudio11/zh-cn .把网页内容进行解析,找出有用的信息,构建对象模型。

image

MshaBookGroups
     此对象只是作为一个容器使用,用来存放 MshaBookGroup
MshaBookGroup
     业务对象。表示book的分组。包含三个属性
     Id
    Name
    Vendor
MshaBook
    业务对象。表示具体一个book。属性如下
    Id
    Name
    Locale
    Description
    BrandingPackageName
    Tag  为一个object类型,用于绑定到TreeView里TreeNode
MshaPackage
    业务对象。表示一个具体的package.属性如下
    PackageType
    PackageFormat
    Name
    ……
业务对象由html源文件中抽象出来.image

         好了,现在有了需要的对象,那么要把对象从html源文件里解析出来,我们需要用到这个 HtmlAgilityPack 。这是一个html解析的类库,C#可以使用,开源,网上说明的文章很多。

        有了这个类库我们只需要读取下载下来的网页源文件即可。我创建了类 HtmlParser,它的作用只有一个,使用xpath语法将html网页中我们感兴趣的内容转换为需要的业务对象,

        并输出MshaBookGroup。

       当所有可能会用到的对象创建好后,接下来,就要制做msha文件里。仔细比较几个msha文件你会发现它们的共同点,并基本上明白这个文件里的内容是什么意思。OK,打开一个msha文件,

       全选,拷贝到VS的IDE里(使用命令窗口,输入new )新建一个xml文件,粘贴。这样你的文件就会格式化好了。然后按住Alt进行鼠标块(全)选。新一个类 MshaBuilder ,创建方法 Build ,

        在方法里创建一个StringBuilder,然后 粘贴,结果会像我的这样

         image

三、庐山真面目

                          image

 

提供源码,以供学习。

posted @ 2012-10-20 23:03  (大贤者模式)  阅读(3226)  评论(0编辑  收藏  举报