使用 MarkDown & DocFX 升级 Rafy 帮助文档
**
**
最近使用 DocFX 对 Rafy 框架的帮助文档进行了升级。
SandCastle
之前 Rafy 框架的帮助文档,是使用 SandCastle 来编写的(https://github.com/EWSoftware/SHFB)。如下图:

其文档中的每一个文档都是一个 .aml 文件。aml 文件是一种自定义格式的 xml 文件。示例如下:
<?xml version="1.0" encoding="utf-8"?>
<topic id="69b641cf-d1fe-4f06-877f-b479d268a3fc" revisionNumber="1">
<developerConceptualDocument
xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"
xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>Rafy 帮助文档</para>
<para>文档版本号:0.5.544</para>
</introduction>
<section address="intro">
<title>简介</title>
<content>
<para>Rafy 是一个面向企业级开发的插件化快速开发框架。前生为 OEA(OpenExpressApp),09 年 10 月发布 1.0 版本,12 年 4 月发布了 2.0。其目标主要专注于:</para>
<list class="bullet">
<listItem>
<para>快速开发:</para>
<para>领域驱动设计、界面自动生成、数据库自动生成与升级、易用的业务逻辑编写框架。</para>
</listItem>
<listItem>
<para>产品线工程:</para>
<para>插件化业务模块积累(内置一个多个现有的插件模块)、客户化二次开发、实施配置平台。</para>
</listItem>
<listItem>
<para>一套代码,可同时生成并运行 C/S、单机版、B/S 三种应用程序。</para>
<para>C/S版本 与 单机版 代码重用率 100%。</para>
<para>C/S版本 与 B/S版本 重用服务端代码(完全重用服务层以下代码。结合界面生成,只需要编写少量的界面层控制代码即可。)。</para>
</listItem>
<listItem>
<para>与 Visual Studio 集成</para>
<para>Rafy 的一个重要作用就是为了提升开发效率,所以我们为 VisualStudio 开发了 RafySDK 插件,其中包含项目模板、代码生成、领域建模等功能。一体化的开发环境,可以更加快速地开发 Rafy 应用程序。</para>
</listItem>
</list>
</content>
</section>
<section address="includes">
<title>组成部分</title>
<content>
<para>它包含了以下组成部分:</para>
<list class="bullet">
<listItem>
<para>Rafy 领域实体框架</para>
<para>
Rafy <link xlink:href="c8e6cd25-c674-4cd1-9880-816d11f58eb8" /> 是一个 ORM 框架,可脱离 Rafy 框架其它组件单独运行,为开发人员提供了极高的开发效率、强大的功能。同时集领域驱动设计、面向服务架构、模型驱动架构、产品线工程方法于一身,是 Rafy 框架中其它组件(如界面生成等高级功能)的基础。
</para>
<para>包含以下程序集:</para>
<list class="bullet">
<listItem>
<para>Rafy.dll</para>
</listItem>
</list>
</listItem>
<listItem>
<para>WPF 客户端生成框架(暂未发布)</para>
<para>包含以下程序集:</para>
<list class="bullet">
<listItem>
<para>Rafy.WPF.Controls.dll</para>
</listItem>
<listItem>
<para>Rafy.WPF.dll</para>
</listItem>
</list>
</listItem>
<listItem>
<para>Web:B/S 界面生成框架(暂未发布)</para>
<para>包含以下程序集:</para>
<list class="bullet">
<listItem>
<para>Rafy.Web.dll</para>
</listItem>
</list>
</listItem>
<listItem>
<para>报表(暂未发布)</para>
<para>...</para>
</listItem>
<listItem>
<para>自动化测试(暂未发布)</para>
<para>...</para>
</listItem>
</list>
</content>
</section>
<section address="important">
<title>框架发布记录</title>
<content>
<para>
详见:<externalLink>
<linkText>Rafy(原OEA)领域实体框架发布主页</linkText>
<linkUri>http://www.cnblogs.com/zgynhqf/p/3356692.html</linkUri>
</externalLink>
</para>
</content>
</section>
<section address="optionalAddress">
<title>辅助说明</title>
<content>
<para>
Rafy = ProductLine + MDA + Plugins + Rafy.Domain + Rafy.UI(AutoUI)
</para>
<para>
Rafy.Domain = DDD + ORM + Distributed + SOA
</para>
<para>
Rafy.Domain DDD = Controller + Repository + 可扩展属性的Entity
</para>
<para>
Rafy.Domain ORM = 可扩展属性的Entity + 易用的Linq + SqlTree + 高性能Mapping + AutoDB + 多数据库支持
</para>
</content>
</section>
<relatedTopics>
</relatedTopics>
</developerConceptualDocument>
</topic>
使用 xml 来编写文档的好处在于格式比较规范。这样,SandCastle 可以将其生成许多标准的文档格式:

生成后的网站,如下图所示:

SandCastle 的开源地址是:https://github.com/EWSoftware/SHFB。
关于 SandCastle 的具体使用方法,可以见:《文档API生成神器SandCastle使用心得》。
DocFX
最近两年,MS 自家的帮助文档大变样,例如 MSDN:《C# Guide》。
其使用的就是最新的文档编写、生成工具:DocFX。DocFX 的网址:http://dotnet.github.io/docfx/。
使用帮助,可以看看这篇:《docfx 做一个和微软一样的文档平台》
简单地说,docFX 支持使用 markdown 来编写文档。并最终生成对应的网站。
Markdown 是一个简单标记语言。目前大多数的文档编写都流行使用这个语言。例如 Github 中每个项目的 Wiki 都是使用 markdown 来编写。另外,我个人在博客园编写的这些的博客,目前也都是使用 markdown 来直接编写。易用、格式明显、编写效率高、所见即所得、对代码的兼容性好。
例如,上面示例中的文章,转换后如下:
## 简介
Rafy 是一个面向企业级开发的插件化快速开发框架。前生为 OEA(OpenExpressApp),09 年 10 月发布 1.0 版本,12 年 4 月发布了 2.0。其目标主要专注于:
- 快速开发:
DDD、界面自动生成、数据库自动生成与升级、易用的业务逻辑编写框架。
- 产品线工程:
插件化业务模块积累(内置一个权限控制插件模块)、客户化二次开发、实施配置平台。
- 一套代码,可同时生成并运行 C/S、单机版、B/S 三种应用程序。
C/S版本 与 单机版 代码重用率 100%。
C/S版本 与 B/S版本 重用服务端代码(完全重用服务层以下代码。结合界面生成,只需要编写少量的界面层控制代码即可。)。
- 与 Visual Studio 集成
Rafy 的一个重要作用就是为了提升开发效率,所以我们为 VisualStudio 开发了 RafySDK 插件,其中包含项目模板、代码生成、领域建模等功能。一体化的开发环境,可以更加快速地开发 Rafy 应用程序。
##组成部分
它包含了以下组成部分:
1. 领域实体框架
[领域实体框架](领域实体框架.html)是一个 ORM 框架,可脱离 Rafy 框架其它组件单独运行,为开发人员提供了极高的开发效率、强大的功能。同时集领域驱动设计、面向服务架构、模型驱动架构、产品线工程方法于一身,是 Rafy 框架中其它组件(如界面生成等高级功能)的基础。
包含以下程序集:
* Rafy.dll
2. WPF 客户端生成框架(暂未发布)
包含以下程序集:
* Rafy.WPF.Controls.dll
* Rafy.WPF.dll
3. Web:B/S 界面生成框架(暂未发布)
包含以下程序集:
- Rafy.Web.dll
4. 报表(暂未发布)
...
5. 自动化测试(暂未发布)
...
##框架发布记录
详见:
[Rafy(原OEA)领域实体框架发布主页](http://www.cnblogs.com/zgynhqf/p/3356692.html)
##辅助说明
Rafy = ProductLine + MDA + Plugins + Rafy.Domain + Rafy.UI(AutoUI)
Rafy.Domain = DDD + ORM + Distributed + SOA
Rafy.Domain DDD = Controller + Repository + 可扩展属性的Entity
Rafy.Domain ORM = 可扩展属性的Entity + 易用的Linq + SqlTree + 高性能Mapping + AutoDB + 多数据库支持
另外,由于文档较多,所以我们编写了一个小工具,将整个 Rafy 的所有帮助文档,从 xml 格式文件转换为 markdown 语法。然后再通过 docFX 来生成整个网站。
生成后最新的文档,见:《Rafy 框架简介》,使用的是 DocFX 的默认的皮肤,如下图:

这次升级后,以后再编写文档就比较简单了。直接使用 markdown 就可以快速编写了。然后使用 DocFX 一键生成 WebSite,直接上传到 Github Pages 就行了。
当前文档的源码也上传到 Github 了:https://github.com/zgynhqf/Rafy/tree/master/Rafy/_Items/Documentation ,有兴趣的朋友可以看看。
使用 MarkDown & DocFX 升级 Rafy 帮助文档的更多相关文章
- Postman----支持markdown可自动生成接口文档
1.postman支持markdown作为集合中的请求,对集合和文件夹进行文字描述的方式,您可以嵌入屏幕截图和其他图像已获得更多描述性的介绍. 2.已markdown语法为准,填写自己想要展示的内容 ...
- 解析Markdown文件生成React组件文档
前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...
- 升级sp1后文档无法编辑
现象: A problem occurred while connecting to the server. If the problem continues, contact your admini ...
- Markdown 文件转化为work文档
1. 电脑安装pandoc 链接:https://pan.baidu.com/s/12H5wLO0JWph5TjrbeJI6mg 密码:ssgs 下载安装包解压即可用.记得配置系统环境变量 2.命令行 ...
- 微软开源全新的文档生成工具DocFX
微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...
- word文档标题级别批量更改——批量降级与升级实例
word文档标题级别批量更改——批量降级与升级实例 word文档标题级别批量更改——批量降级实例 2012年12月21日16:30:44 现有一个3级文档结构的word文档,如下图所示 先需要将上 ...
- 如何快速实现 markdown 转 HTML 文档?
我想要在 Github 上开一个主题博客,我希望通过 Markdown 语法写作,然后生成 HTML 并附带自定义样式显示在网页上. 我找到了 gulp-markdown 这个库,看起来符合我的需求场 ...
- 使用Docfx生成项目文档
使用docfx.console生成本项目的文档 使用docfx.console生成其他项目的文档 直接使用docfx.exe生成项目文档 指定配置文档模板 文档地址:http://gitlab.l ...
- .NET6使用DOCFX自动生成开发文档
本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...
随机推荐
- tomcat的realm域
Realm域,其实可以看成是一个包含了用户及密码的数据库,而且每个用户还会包含了若干角色.也就是包含了用户名.密码.角色三个列的数据记录集合,如下图,最下面椭圆内的包含的整块即可以看成realm域.它 ...
- Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮
自CRM2011引入多FORM窗体,并且对不同的窗体引入了角色控制,给我们的客制化开发带来了多样化,既然有了多窗体也就理所当然的有了在不同的窗体显示不同的Ribbon按钮的需求,具体怎么做见下面的博客 ...
- 第一篇、vlc-android之开篇介绍
转载请注明出处:http://blog.csdn.net/cuiran/article/details/30054835 最近一直研究android的视频直播部分,从最开始的直接播放本地视频文件,到使 ...
- 【Unity Shaders】Using Textures for Effects介绍
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- cas 单点登录(SSO)之一: jasig cas-server 安装
cas 单点登录(SSO)实验之一: jasig cas-server 安装 参考文章: http://my.oschina.net/indestiny/blog/200768#comments ht ...
- java缓存系统
第一版 package cache; import java.util.HashMap; import java.util.Map; public class Cache1 { private Map ...
- OpenCV 轮廓检测
使用OpenCV可以对图像的轮廓进行检测.这是之前用过的代码,挺简单的,回顾一下.主要要进行以下2步操作: 1.cvThreshold():对图像进行二值化处理 2.cvFindContours(): ...
- 软考论文的六大应对策略V1.0
软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...
- 《java入门第一季》之面向对象(方法重写问题)
方法重载的引入:根据一个案例: /* 继承中成员方法的关系: A:子类中的方法和父类中的方法声明不一样,这个太简单. B:子类中的方法和父类中的方法声明一样,这个该怎么玩呢? 通过子类对象调用方法: ...
- LeetCode之“链表”:Partition List
题目链接 题目要求: Given a linked list and a value x, partition it such that all nodes less than x come befo ...