受欢迎的博客标签

How to port a Windows Forms desktop app to .NET Core

Published

In this post, I will describe how to port a desktop application from .NET Framework to .NET 5.x. Upgrade from .NET Framework to .NET 5。

 official docs.  for winforms projects, see How to migrate a Windows Forms desktop app to .NET 5.

First, you need to have Visual Studio 2019 (v16.8) (make sure that include .Net in the installation).

Second, you need to review if all your NuGet packages and libraries support this (and update it or look for a replacement).

Adionaly you can take a look if any of the breaking changes affect you https://docs.microsoft.com/en-us/dotnet/core/compatibility/5.0

跨平台桌面程序可选方案

跨平台桌面程序开发,方案大致有如下几个:

WinForm + Wine
Electron + Vue/Node/NW等等
QT
JavaFX
Java AWT Swing(界面丑,古老技术,运行时需要JDK,发布程序时,包太大)
Avalonia

跨平台桌面程序可选方案优缺点

WinForm + Wine:太麻烦,程序运行需要部署环境。一般对于在微软桌面下开发习惯的人来说,对于Linux都不是太熟悉,再让其部署Linux环境,估计会肛裂。
Electron:发布程序时,包太大,另外Electron官方对XP不支持,但是网上也有大佬魔改版本。其框架成熟,文档和教程也很程序,也有大厂在使用该框架,例如微软的VS Code,GitHub的桌面端程序等。🙄但我不是个前端。。。
QT:QT应该是大名鼎鼎了,但是其入门门槛较高,现在大多数程序员是半路出家,或接触Java、C#、Python较多,就C++而言,可以整死一批程序员了,还要考虑QT的编译环境、构建套件、版本、头文件和库等问题又能死一批程序员。当然,不是我吹,我C/C++语言还是可以的😎哈哈,哪怕是我去开发QT,我也会觉得QT和WPF相比,WPF界面设计基于XAML,比QT要开放的多,而且设计速度上更快,最致命的一点是,C#/JAVA等高级语言有语法糖,可以帮助开发者快速撸代码。。。
JavaFX:是Oracle从JDK8开始支持的一项新的GUI开发框架,目前相关开发文档、博文较少,遇见问题大多需要开发者自己排查,但是要运行程序时,必须要有JDK或JRE的环境支持,如果打包环境到可执行程序里,会导致发布程序太大。
Java AWT Swing:古老的技术,学习Java的,应该都会了解一点点,那蓝渐变底色的按钮。。。我就不逼逼了。。。大家都懂的。
Avalonia:这是个近几年才出的新框架,基于.Net Core,和WPF开发基本一致,编译后,再通过dotnet命令打包成各个平台的发布版本,可以直接在Linux系统下双击打开程序。

 
 
 
Solution 1  Migrate manually

Solution Folder

tools 
└───vs 2019
OS/.NET SDK & .NET  Runtime
├───ASP.NET Core Runtime 5.0   <--- The ASP.NET Core Runtime enables you to run existing web/server applications.
├───Desktop Runtime 5.0            <--- The Desktop Runtime enables you to run existing Windows desktop applications.
└───.NET Runtime 5.0                  <---  The .NET Runtime enables you to run existing  console app.
SolutionFolder
├───MyApps.sln
├───MyFormsApp(Old Winform)
│   └───MyForms.csproj
└───MyFormsAppCore(New Winform)
    └───MyFormsCore.csproj

step 1: installing the latest  Visual Studio 2019 

https://visualstudio.microsoft.com/vs/

Thank you for downloading Visual Studio
Your download will start shortly. If your download does not begin, click here to retry

 

step 2: install the latest .NET   SDK.

for example:

dotnet --info

SPS C:\Windows\system32> dotnet --info
.NET SDK (反映任何 global.json):
 Version:   5.0.202
 Commit:    db7cc87d51

运行时环境:
 OS Name:     Windows
 OS Version:  10.0.19042
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.202\

Host (useful for support):
  Version: 5.0.5
  Commit:  2f740adc14

.NET SDKs installed:
  5.0.100 [C:\Program Files\dotnet\sdk]
  5.0.101 [C:\Program Files\dotnet\sdk]
  5.0.202 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.27 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

 

https://dotnet.microsoft.com/download/dotnet/5.0?utm_source=dotnet-website&utm_medium=banner&utm_campaign=preview5-banner

 

 

step 3:New  .csproj project file

To move my application to .NET Core, first I need to change my project file to SDK-style format because the old format does not support .NET Core. 

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

</Project>

Step 3:Copy *.res from old  winform to new winform

copy StockMainForm.Designer.cs
copy StockMainForm.resx
copy StockMainForm.zh-Hans.resx

copy StockMainForm.cs

step 4:NuGet package reference

old winform package for .net Framework

<?xml version="1.0" encoding="utf-8"?>
<packages>
 <package id="Dapper" version="1.50.2" targetFramework="net45" />
 <package id="EntityFramework" version="6.0.0" targetFramework="net45" />
 <package id="MySql.Data" version="6.7.9" targetFramework="net45" />
 <package id="System.Data.SQLite" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net45" />
</packages>

new Windform package for Net core

path:/.csproj

<ItemGroup>
  <PackageReference Include="Dapper" Version="1.50.2" />
  <PackageReference Include="EntityFramework" Version="6.0.0" />
  <PackageReference Include="MySql.Data" Version="6.7.9" />
  <PackageReference Include="System.Data.SQLite" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.Core" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.EF6" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.Linq" Version="1.0.108.0" />
</ItemGroup>

 

other

System.Drawing.Color

https://docs.microsoft.com/en-us/dotnet/api/system.drawing.color?view=net-5.0

Windows Forms Controls 

The following Windows Forms controls have been removed from .NET Core

DataGrid
ToolBar
ContextMenu
Menu
MainMenu
MenuItem

The following replacements are recommended:

Old Control (API)Recommended ReplacementOther associated APIs removed
DataGridDataGridViewDataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType
ToolBarToolStripToolBarAppearance
ToolBarButtonToolStripButtonToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign
ContextMenuContextMenuStrip 
MenuToolStripDropDown, ToolstripDropDownMenuMenuItemCollection
MainMenu

Me

nuStrip

 
MenuItemToolstripMenuItem 

 

 
 
 
 
 
Solution 2

upgrade-assistant

a  tool called the .NET Upgrade Assistant to help you upgrade your .NET Windows and ASP.NET apps to .NET 5.

This project enables automation of common tasks related to upgrading .NET Framework projects to .NET 5.0. Note that this is not a complete upgrade tool and work will be required after using the tooling to upgrade a project.

https://github.com/dotnet/upgrade-assistant

https://dotnet.microsoft.com/en-us/platform/upgrade-assistant

https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-winforms-framework

step 1. Install the .NET Upgrade Assistant

C:\Users\Administrator2>dotnet tool install -g upgrade-assistant
可使用以下命令调用工具: upgrade-assistant
已成功安装工具“upgrade-assistant”(版本“0.2.233001”)。

step 2: cd 

cd D:\tmp\ReadDzhDataRealtime2013>

 

step 3: cmd

upgrade-assistant upgrade .\ReadDzhDataRealtime2013.csproj

 

Useful links

https://devblogs.microsoft.com/dotnet/how-to-port-desktop-applications-to-net-core-3-0/

https://docs.microsoft.com/en-us/dotnet/core/porting/winforms

https://www.grapecity.com/blogs/winforms-and-dotnet-core-3

https://www.syncfusion.com/blogs/post/syncfusion-winforms-wpf-controls-in-net-core-3.aspx

https://cloud.tencent.com/developer/article/1554211

 https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/

https://www.zhangshengrong.com/p/l51gwGyW10/

 

Blog ---------- root
 ├── .dockerignore ---------- docker ignore
 ├── .gitattributes ---------- git attributes
 ├── .gitignore ---------- git ignore
 ├── common.props ---------- common.props
 ├── LICENSE ---------- LICENSE
 ├── Meowv.Blog.sln ---------- Solution
 ├── README.md ---------- README.md
 ├── .github ---------- github config
 ├── src
 │   ├── Meowv.Blog.Application ---------- 应用服务层
 │   ├── Meowv.Blog.Application.Caching ---------- 应用服务缓存
 │   ├── Meowv.Blog.Application.Contracts ---------- 应用服务数据传输对象(DTO)
 │   ├── Meowv.Blog.BackgroundJobs ---------- 后台定时任务
 │   ├── Meowv.Blog.Domain ---------- 领域层,实体,仓储接口
 │   ├── Meowv.Blog.Domain.Shared ---------- 领域层,一些常量,枚举等
 │   ├── Meowv.Blog.EntityFrameworkCore ---------- 集成EF Core,仓储接口实现
 │   ├── Meowv.Blog.EntityFrameworkCore.DbMigrations ---------- EF Core数据库迁移
 │   ├── Meowv.Blog.HttpApi ---------- API控制器
 │   ├── Meowv.Blog.HttpApi.Hosting ---------- WebApi项目,依赖于HttpApi,
 │   ├── Meowv.Blog.Swagger ---------- Swagger扩展、Filter
 │   └── Meowv.Blog.ToolKits ---------- 公共的工具类、扩展方法
 └── static ---------- 用于README.md展示图片的图片文件夹

 

bootstrap tree

bootstrap/
├── css/
│   ├── bootstrap-grid.css
│   ├── bootstrap-grid.css.map
│   ├── bootstrap-grid.min.css
│   ├── bootstrap-grid.min.css.map
│   ├── bootstrap-reboot.css
│   ├── bootstrap-reboot.css.map
│   ├── bootstrap-reboot.min.css
│   ├── bootstrap-reboot.min.css.map
│   ├── bootstrap.css
│   ├── bootstrap.css.map
│   ├── bootstrap.min.css
│   └── bootstrap.min.css.map
└── js/
    ├── bootstrap.bundle.js
    ├── bootstrap.bundle.js.map
    ├── bootstrap.bundle.min.js
    ├── bootstrap.bundle.min.js.map
    ├── bootstrap.js
    ├── bootstrap.js.map
    ├── bootstrap.min.js
    └── bootstrap.min.js.map
theme/
  ├── v3
  └── v4
      ├── gulpfile.js
      ├── package.json
      ├── README.md
      ├── docs/
      ├── scss/
      │   ├── bootstrap/
      │   ├── custom/
      │   ├── variables.scss
      │   └── toolkit.scss
      ├── js/
      │   ├── bootstrap/
      │   └── custom/
      ├── fonts/
      │   ├── bootstrap-entypo.eot
      │   ├── bootstrap-entypo.svg
      │   ├── bootstrap-entypo.ttf
      │   ├── bootstrap-entypo.woff
      │   └── bootstrap-entypo.woff2
      └── dist/
          ├── toolkit.css
          ├── toolkit.css.map
          ├── toolkit.min.css
          ├── toolkit.min.css.map
          ├── toolkit.js
          └── toolkit.min.js
├── build                                       // webpack配置文件
├── config                                      // 项目打包路径
├── elm                                         // 上线项目文件,放在服务器即可正常访问
├── screenshots                                 // 项目截图
├── src                                         // 源码目录
│   ├── components                              // 组件
│   │   ├── common                              // 公共组件
│   │   │   ├── alertTip.vue                    // 弹出框组件
│   │   │   ├── buyCart.vue                     // 购物车组件
│   │   │   ├── computeTime.vue                 // 倒计时组件
│   │   │   ├── loading.vue                     // 页面初始化加载数据的动画组件
│   │   │   ├── mixin.js                        // 组件混合(包括:指令-下拉加载更多,处理图片地址)
│   │   │   ├── ratingStar.vue                  // 评论的五颗星组件
│   │   │   └── shoplist.vue                    // msite和shop页面的餐馆列表公共组件
│   │   ├── footer
│   │   │   └── footGuide.vue                   // 底部公共组件
│   │   └── header
│   │       └── head.vue                        // 头部公共组件
│   ├── config                                  // 基本配置
│   │   ├── env.js                              // 环境切换配置
│   │   ├── fetch.js                            // 获取数据
│   │   ├── mUtils.js                           // 常用的js方法
│   │   └── rem.js                              // px转换rem
│   ├── images                                  // 公共图片
│   ├── page
│   │   ├── balance
│   │   │   ├── balance.vue                     // 余额页
│   │   │   └── children
│   │   │       └── detail.vue                  // 余额说明
│   │   ├── benefit
│   │   │   ├── benefit.vue                     // 红包页
│   │   │   └── children
│   │   │       ├── commend.vue                 // 推荐有奖
│   │   │       ├── coupon.vue                  // 代金券说明
│   │   │       ├── exchange.vue                // 兑换红包
│   │   │       ├── hbDescription.vue           // 红包说明
│   │   │       └── hbHistory.vue               // 历史红包
│   │   ├── city                 
│   │   │   └── city.vue                        // 当前城市页
│   │   ├── confirmOrder
│   │   │   ├── children
│   │   │   │   ├── children
│   │   │   │   │   ├── addAddress.vue          // 添加地址页
│   │   │   │   │   └── children
│   │   │   │   │       └── searchAddress.vue   // 搜索地址页
│   │   │   │   ├── chooseAddress.vue           // 选择地址页
│   │   │   │   ├── invoice.vue                 // 选择发票页
│   │   │   │   ├── payment.vue                 // 付款页
│   │   │   │   ├── remark.vue                  // 订单备注页 
│   │   │   │   └── userValidation.vue          // 用户验证页
│   │   │   └── confirmOrder.vue                // 确认订单页
│   │   ├── download
│   │   │   └── download.vue                    // 下载App
│   │   ├── find
│   │   │   └── find.vue                        // 发现页
│   │   ├── food
│   │   │   └── food.vue                        // 食品筛选排序页
│   │   ├── forget
│   │   │   └── forget.vue                      // 忘记密码,修改密码页
│   │   ├── home
│   │   │   └── home.vue                        // 首页
│   │   ├── login
│   │   │   └── login.vue                       // 登录注册页
│   │   ├── msite
│   │   │   └── msite.vue                       // 商铺列表页
│   │   ├── order
│   │   │   ├── children
│   │   │   │   └── orderDetail.vue             // 订单详情页
│   │   │   └── order.vue                       // 订单列表页
│   │   ├── points
│   │   │   ├── children
│   │   │   │   └── detail.vue                  // 积分说明
│   │   │   └── points.vue                      // 积分页
│   │   ├── profile
│   │   │   ├── children
│   │   │   │   ├── children
│   │   │   │   │   ├── address.vue             // 地址
│   │   │   │   │   └── children
│   │   │   │   │       ├── add.vue             // 新增地址
│   │   │   │   │       └── children
│   │   │   │   │           └── addDetail.vue   // 搜索地址
│   │   │   │   ├── info.vue                    // 帐户信息
│   │   │   │   └── setusername.vue             // 重置用户名
│   │   │   └── profile.vue                     // 个人中心
│   │   ├── search
│   │   │   └── search.vue                      // 搜索页
│   │   ├── service
│   │   │   ├── children
│   │   │   │   └── questionDetail.vue          // 问题详情
│   │   │   └── service.vue                     // 服务中心
│   │   ├── shop
│   │   │   ├── children
│   │   │   │   ├── children
│   │   │   │   │   └── shopSafe.vue            // 商铺认证信息页
│   │   │   │   ├── foodDetail.vue              // 商铺信息页
│   │   │   │   └── shopDetail.vue              // 单个商铺信息页
│   │   │   └── shop.vue                        // 商铺筛选页
│   │   └── vipcard
│   │       ├── children
│   │       │   ├── invoiceRecord.vue           // 购买记录
│   │       │   ├── useCart.vue                 // 使用卡号购买
│   │       │   └── vipDescription.vue          // 会员说明
│   │       └── vipcard.vue                     // 会员卡办理页
│   ├── plugins                                 // 引用的插件
│   ├── router
│   │   └── router.js                           // 路由配置
│   ├── service                                 // 数据交互统一调配
│   │   ├── getData.js                          // 获取数据的统一调配文件,对接口进行统一管理
│   │   └── tempdata                            // 开发阶段的临时数据
│   ├── store                                   // vuex的状态管理
│   │   ├── action.js                           // 配置actions
│   │   ├── getters.js                          // 配置getters
│   │   ├── index.js                            // 引用vuex,创建store
│   │   ├── modules                             // store模块
│   │   ├── mutation-types.js                   // 定义常量muations名
│   │   └── mutations.js                        // 配置mutations
│   └── style
│       ├── common.scss                         // 公共样式文件
│       ├── mixin.scss                          // 样式配置文件
│       └── swiper.min.css
│   ├── App.vue                                 // 页面入口文件
│   ├── main.js                                 // 程序入口文件,加载各种公共组件
├── favicon.ico                                 // 图标
├── index.html                                  // 入口html文件
├── jquery.tinymce.js
├── jquery.tinymce.min.js
├── plugins
│   ├── advlist
│   │   ├── index.js
│   │   ├── plugin.js
│   │   └── plugin.min.js
│   ├── anchor
│   │   ├── index.js
│   │   ├── plugin.js
│   │   └── plugin.min.js
│   ├── autolink
│   │   ├── index.js
│   │   ├── plugin.js
│   │   └── plugin.min.js
├── skins
│   ├── content
│   │   ├── default
│   │   │   ├── content.css
│   │   │   └── content.min.css
│   │   ├── document
│   │   │   ├── content.css
│   │   │   └── content.min.css
│   │   └── writer
│   │       ├── content.css
│   │       └── content.min.css
│   └── ui
│       ├── oxide
│       │   ├── content.css
│       │   ├── content.inline.css
│       │   ├── content.inline.min.css
│       │   ├── content.min.css
│       │   ├── content.mobile.css
│       │   ├── content.mobile.min.css
│       │   ├── fonts
│       │   │   └── tinymce-mobile.woff
│       │   ├── skin.css
│       │   ├── skin.min.css
│       │   ├── skin.mobile.css
│       │   └── skin.mobile.min.css
│       └── oxide-dark
│           ├── content.css
│           ├── content.inline.css
│           ├── content.inline.min.css
│           ├── content.min.css
│           ├── content.mobile.css
│           ├── content.mobile.min.css
│           ├── fonts
│           │   └── tinymce-mobile.woff
│           ├── skin.css
│           ├── skin.min.css
│           ├── skin.mobile.css
│           └── skin.mobile.min.css
├── themes
│   ├── mobile
│   │   ├── index.js
│   │   ├── theme.js
│   │   └── theme.min.js
│   └── silver
│       ├── index.js
│       ├── theme.js
│       └── theme.min.js
├── tinymce.js
└── tinymce.min.js
|-- 知识目录树
    |-- .gitignore
    |-- Cmd-CurrentDirectory.Bat
    |-- Cmd-mddir.Bat
    |-- directoryList.md
    |-- README.md
    |-- _config.yml
    |-- .vs
    |   |-- ProjectSettings.json
    |   |-- slnx.sqlite
    |   |-- VSWorkspaceState.json
    |   |-- Learning
    |       |-- v16
    |           |-- .suo
    |           |-- Browse.VC.db
    |-- .vscode
    |-- Algorithms
    |   |-- HMAC-SHA1
    |       |-- HMAC-SHA1.md
    |       |-- SHA1.cs
    |-- Android
    |   |-- simulator.md
    |   |-- simulator
    |       |-- BlueStacks
    |       |   |-- BlueStacks.md
    |       |   |-- HD-ConfigHttpProxy.md
    |       |-- yeshen
    |           |-- yeshen.md
    |-- API
    |   |-- GitHub Api
    |   |   |-- GitHub Api v3
    |   |       |-- GitHub Api v3.md
    |   |-- Swagger
    |   |   |-- Swagger.md
    |   |-- Tool
    |   |   |-- Api.Web.md
    |   |-- Yapi
    |       |-- Yapi.md
    |-- ATASK
    |   |-- developer.md
    |-- Blog
    |   |-- Follow
    |   |   |-- Follow.md
    |   |-- Github
    |   |   |-- GitHub Pages.md
    |   |   |-- GitHub.md
    |   |-- YouTube
    |       |-- YouTube.md
    |-- BSD
    |   |-- BSD.md
    |-- Build Tool
    |   |-- Gradle
    |   |   |-- Gradle.md
    |   |-- Maven
    |   |   |-- Maven.md
    |   |-- Windows installer
    |       |-- Advanced Installer
    |           |-- Advanced Installer.md
    |           |-- co.md
    |           |-- Dos.md
    |           |-- uninstall.md
    |           |-- Demo
    |               |-- 1
    |               |   |-- ReleaseProtect.bat
    |               |-- 2
    |                   |-- CreteFolders.bat
    |                   |-- ReleaseProtect.bat
    |-- C++
    |   |-- C++.md
    |   |-- Code Blocks
    |   |   |-- Code Blocks.md
    |   |-- LazyCode
    |   |   |-- free.md
    |   |   |-- helloworld.cpp
    |   |   |-- PC-Guid.md
    |   |-- Microsoft Visual C++
    |   |   |-- McRip VC Redist Installer.md
    |   |   |-- Microsoft Visual C++.md
    |   |-- Wiki
    |       |-- C++wiki.md
    |-- CDN
    |   |-- 163
    |   |   |-- 163.md
    |   |-- 360
    |   |   |-- cdn.baomitu.md
    |   |   |-- SRI.md
    |   |-- Baidu
    |   |   |-- libs.baidu.com.md
    |   |   |-- Tieba.md
    |   |-- BootCDN
    |   |   |-- BootCDN.md
    |   |-- cdnjs
    |   |   |-- cdnjs.md
    |   |-- Free image hosting
    |   |   |-- imgbb.md
    |   |-- ICO
    |   |   |-- GIF.md
    |   |   |-- ICON.md
    |   |   |-- Font Awesome
    |   |       |-- Demo.v5.10.2.html
    |   |       |-- Font Awesome.md
    |   |-- Images
    |   |-- WebRes
    |       |-- Js.md
    |-- Chart
    |   |-- ECharts
    |       |-- ECharts.md
    |-- CLI
    |   |-- CLI.md
    |   |-- dotnet
    |   |   |-- dotnet.md
    |   |-- PHP
    |       |-- php.exe.cli.md
    |-- Cloud
    |   |-- Aliyun
    |   |   |-- aliyun.md
    |   |-- Azure
    |   |   |-- Azure.md
    |   |-- Baidu
    |   |   |-- su.baidu.md
    |   |-- Cloudflare
    |   |   |-- Cloudflare.md
    |   |-- godaddy
    |   |   |-- godaddy.md
    |   |-- Google
    |   |   |-- google.md
    |   |   |-- Apis
    |   |   |   |-- apis.md
    |   |   |-- developers
    |   |   |   |-- developers.md
    |   |   |-- Google V8 Engine
    |   |   |   |-- Google V8 Engine.md
    |   |   |-- google-translate-api
    |   |   |   |-- google-translate-api.md
    |   |   |-- GoogleTranslateFreeApi
    |   |   |   |-- GoogleTranslateFreeApi.md
    |   |   |-- Gpay
    |   |   |   |-- Gpay.md
    |   |   |-- Translate
    |   |   |   |-- Translate.md
    |   |   |-- uncategorized
    |   |       |-- www.google.com.sky.md
    |   |-- Hosts
    |   |   |-- hostadvice
    |   |       |-- hostadvice.md
    |   |-- huaweicloud
    |   |   |-- huaweicloud.md
    |   |-- maoyuncloud
    |   |   |-- maoyuncloud.md
    |   |-- TaobaoOpenPlatform
    |   |   |-- TaobaoOpenPlatform.md
    |   |-- Tencent
    |   |   |-- COS.md
    |   |   |-- developer.md
    |   |   |-- dnspod.md
    |   |   |-- tencent.md
    |   |   |-- tencent.SDK.md
    |   |   |-- Api
    |   |       |-- TencentCloud.Api.RecordCreate.php
    |   |-- upyun
    |       |-- upyun.md
    |-- CMD
    |   |-- CMD.md
    |   |-- Batch
    |   |   |-- Batch.md
    |   |   |-- laycode
    |   |       |-- attrib.md
    |   |       |-- demo-taskkill.md
    |   |       |-- if.md
    |   |       |-- param.md
    |   |       |-- set.md
    |   |       |-- Task.md
    |   |       |-- telnet.ping.md
    |   |-- LazyCode
    |       |-- CMDmenu.reg
    |       |-- copy.md
    |       |-- IO.md
    |       |-- Path.md
    |       |-- systeminfo.md
    |-- Community
    |   |-- stackoverflow.com
    |       |-- chat.stackoverflow.com.md
    |-- Composer
    |   |-- Composer.md
    |   |-- Packages
    |       |-- tencentcloud.md
    |       |-- tencentcloud
    |-- CPU
    |   |-- Intel
    |       |-- Intel.md
    |-- Database
    |   |-- Database IO
    |   |   |-- Database IO.md
    |   |-- DB2
    |   |-- FASTER
    |   |   |-- FASTER.md
    |   |-- IBM DB2
    |   |-- InMemory
    |   |-- LevelDB
    |   |   |-- LevelDB.md
    |   |   |-- Leveldb.net
    |   |       |-- Leveldb.net.md
    |   |-- LiteDB
    |   |   |-- LiteDB.md
    |   |-- Microsoft SQL Server
    |   |   |-- Microsoft SQL Server.md
    |   |   |-- laycode
    |   |       |-- code0000-mssql-install.md
    |   |       |-- code0001-mssql-Datetime.md
    |   |       |-- code0001-mssql-page.md
    |   |       |-- code0001-mssql.md
    |   |       |-- code0002-mssql-hanzi2pinyin.md
    |   |-- Microsoft SQL Server 2012 Express
    |   |   |-- Microsoft SQL Server 2012 Express.md
    |   |-- MongoDB
    |   |   |-- MongoDB.md
    |   |-- MySQL
    |   |   |-- MySQL.md
    |   |-- Oracle
    |   |   |-- Oracle.md
    |   |-- Oracle NoSQL Database
    |   |   |-- Oracle NoSQL Database.md
    |   |-- ORM
    |   |   |-- ORM.md
    |   |-- Postgres
    |   |   |-- Npgsql.md
    |   |-- PostgreSQL
    |   |   |-- PostgreSQL.md
    |   |-- Redis
    |   |   |-- Redis.Code.md
    |   |   |-- Redis.md
    |   |   |-- Class
    |   |   |   |-- Demo1
    |   |   |       |-- redis.php
    |   |   |       |-- redis_config1.php
    |   |   |       |-- redis_config2.php
    |   |   |-- FAQ
    |   |   |   |-- Redis.FAQ.md
    |   |   |-- phpRedisAdmin
    |   |   |   |-- phpRedisAdmin.md
    |   |   |-- RedisDesktopManager
    |   |   |   |-- RedisDesktopManager.md
    |   |   |-- uncategorized
    |   |   |   |-- Redis.List.md
    |   |   |   |-- Redis.requirepass.md
    |   |   |   |-- Redis.TTL.md
    |   |   |   |-- sorted set.md
    |   |   |-- Window
    |   |       |-- Redis.Window.md
    |   |-- SQL
    |   |   |-- EXPLAIN.md
    |   |   |-- INDEX.md
    |   |   |-- Select.md
    |   |   |-- Select.Rand.md
    |   |-- SQL Server Compact Edition
    |   |-- Sql Server LocalDB
    |   |   |-- Sql Server LocalDB.md
    |   |   |-- SqlLocalDB.md
    |   |-- SqlBulkCopy
    |   |   |-- SqlBulkCopy.md
    |   |-- SQLite
    |   |   |-- ClearAllPools.md
    |   |   |-- Insert.md
    |   |   |-- Optimizer.md
    |   |   |-- PRAGMA.md
    |   |   |-- Repair.md
    |   |   |-- SQL.md
    |   |   |-- Sqlite version.md
    |   |   |-- SQLite-GUI tool.md
    |   |   |-- Sqlite.DbType.md
    |   |   |-- SQLite.md
    |   |   |-- Sqlite3SpeedTest.e
    |   |   |-- Sqlite3SpeedTest.Md
    |   |   |-- Thread.md
    |   |   |-- ThreadDemo.md
    |   |-- SqlLocalDB
    |   |-- uncategorized
    |   |   |-- Anna.md
    |   |   |-- FastDFS.md
    |   |   |-- SSMS.md
    |   |-- Wiki
    |       |-- Database.md
    |       |-- Database.Tools.md
    |       |-- DataType.ConnectionStrings.md
    |-- Design Pattern
    |   |-- Design Pattern.md
    |-- Doc
    |   |-- Docsite
    |   |   |-- Docsite.md
    |   |-- MarkdownHttpHandler
    |   |   |-- MarkdownHttpHandler.md
    |   |-- Online
    |   |   |-- kancloud
    |   |   |   |-- kancloud.md
    |   |   |-- uncategorized
    |   |       |-- survey.163.com.md
    |   |       |-- wj.qq.com.md
    |   |-- Tools
    |       |-- HelpNDoc
    |       |   |-- HelpNDoc.md
    |       |-- MkDocs
    |       |   |-- MkDocs.md
    |       |   |-- nav.md
    |       |   |-- new.projec.md
    |       |   |-- readthedocs.md
    |       |   |-- Themes.md
    |       |-- Sphinx
    |           |-- Examples.md
    |           |-- quickstart.md
    |           |-- Sphinx.md
    |           |-- Themes.md
    |-- Docker
    |   |-- Docker.md
    |   |-- Boot2Docker
    |   |   |-- Boot2Docker.md
    |   |-- Docker Toolbox
    |   |   |-- DockerToolbox.md
    |   |-- Kitematic
    |   |   |-- Kitematic.md
    |   |-- Ubuntu
    |   |   |-- Docker.md
    |   |-- Windows
    |       |-- Docker-Windows.md
    |-- DockerHub
    |   |-- DockerHub.md
    |-- Docs
    |   |-- en-us
    |   |-- zh-cn
    |-- E
    |   |-- e.md
    |   |-- uncategorized
    |       |-- e.lines.md
    |-- Framework
    |   |-- .NET
    |   |   |-- 2881099
    |   |   |   |-- CSRedis
    |   |   |   |   |-- CSRedis.md
    |   |   |   |   |-- uncategorized
    |   |   |   |       |-- Redis.List.md
    |   |   |   |-- FreeSql
    |   |   |       |-- FreeSql.md
    |   |   |-- BouncyCastle
    |   |   |   |-- BouncyCastle.md
    |   |   |-- Chrome Canary
    |   |   |   |-- Chrome Canary.md
    |   |   |-- ChromeDriver
    |   |   |   |-- ChromeDriver.md
    |   |   |-- ChromiumFX
    |   |   |   |-- ChromiumFX.md
    |   |   |-- CsQuery
    |   |   |   |-- CsQuery.md
    |   |   |-- EO
    |   |   |   |-- EO.md
    |   |   |   |-- EO.WebBrowser.md
    |   |   |   |-- EO.WebBrowser.WinForm.md
    |   |   |-- ExCSS
    |   |   |   |-- ExCSS.md
    |   |   |-- Firewall
    |   |   |   |-- Firewall.md
    |   |   |   |-- Kesoft.Windows.NetFirewallHelper
    |   |   |       |-- Kesoft.Windows.NetFirewallHelper.md
    |   |   |-- Headless Chrome
    |   |   |   |-- Blink.md
    |   |   |   |-- chromium-command-line-switches.md
    |   |   |   |-- CLI.md
    |   |   |   |-- Flag.md
    |   |   |   |-- Headless Chrome.md
    |   |   |-- Html Agility Pack
    |   |   |   |-- AppendChild.md
    |   |   |   |-- CreateNode.md
    |   |   |   |-- css.md
    |   |   |   |-- Html Agility Pack.md
    |   |   |   |-- img.md
    |   |   |   |-- Selector.md
    |   |   |   |-- style.md
    |   |   |-- hxc.ChromiumWebBrowser
    |   |   |   |-- hxc.ChromiumWebBrowser.md
    |   |   |-- IP
    |   |   |   |-- IP_qqwry
    |   |   |       |-- IP_qqwry.md
    |   |   |-- Javascript.Net
    |   |   |   |-- Javascript.Net.md
    |   |   |-- Jumony
    |   |   |   |-- Jumony.md
    |   |   |-- Microsoft.ClearScript
    |   |   |   |-- Microsoft.ClearScript.md
    |   |   |-- NewLife
    |   |   |   |-- NewLife.md
    |   |   |   |-- NewLife.Redis
    |   |   |   |   |-- NewLife.Redis.md
    |   |   |   |-- NewLifeX
    |   |   |       |-- NewLifeX.md
    |   |   |-- PhantomJS
    |   |   |   |-- PhantomJS.md
    |   |   |-- PuppeteerSharp
    |   |   |   |-- Cache.md
    |   |   |   |-- Examples.md
    |   |   |   |-- Flag.md
    |   |   |   |-- PuppeteerSharp.md
    |   |   |   |-- Speed.md
    |   |   |-- ScrapeHero
    |   |   |   |-- ScrapeHero.md
    |   |   |-- ScrapySharp
    |   |   |   |-- HtmlDocument.md
    |   |   |   |-- img.md
    |   |   |   |-- javascript.md
    |   |   |   |-- ScrapingBrowser.md
    |   |   |   |-- ScrapySharp.md
    |   |   |   |-- tihuan.md
    |   |   |   |-- using.md
    |   |   |-- Selenium
    |   |   |   |-- Selenium.md
    |   |   |-- SqlSugar
    |   |   |   |-- Delete.md
    |   |   |   |-- Desc.md
    |   |   |   |-- InitTables.md
    |   |   |   |-- Insert.md
    |   |   |   |-- page.md
    |   |   |   |-- PageEach.md
    |   |   |   |-- Select.md
    |   |   |   |-- SqlSugar.md
    |   |   |   |-- TruncateTable.md
    |   |   |   |-- Update.md
    |   |   |-- WebBrowser
    |   |   |   |-- GetElementsByTagName.md
    |   |   |   |-- HtmlDocument.md
    |   |   |   |-- WebBrowser.md
    |   |   |-- WebKit
    |   |       |-- WebKit.md
    |   |-- .NET Core
    |   |   |-- AngleSharp
    |   |   |   |-- AngleSharp.md
    |   |   |-- Autofac
    |   |   |   |-- Autofac.md
    |   |   |-- AutoMapper
    |   |   |   |-- AutoMapper.md
    |   |   |-- Boilerplate
    |   |   |   |-- Boilerplate.md
    |   |   |-- CodeHub
    |   |   |   |-- CodeHub.md
    |   |   |-- IdentityServer4
    |   |   |   |-- IdentityServer4.md
    |   |   |-- Log
    |   |   |   |-- log4net.md
    |   |   |   |-- Microsoft.Extensions.Logging.Abstractions.md
    |   |   |   |-- Microsoft.Extensions.Logging.md
    |   |   |   |-- NLog.md
    |   |   |   |-- Serilog.AspNetCore.md
    |   |   |   |-- Serilog.md
    |   |   |-- Nancy
    |   |   |   |-- Nancy.md
    |   |   |-- nopCommerce
    |   |   |   |-- nopCommerce.md
    |   |   |-- OSharpNS
    |   |   |   |-- OSharpNS.md
    |   |   |-- Quartz.Net
    |   |   |   |-- Quartz.Net.md
    |   |   |-- RestSharp
    |   |   |   |-- RestSharp.md
    |   |   |-- SignalR
    |   |   |   |-- SignalR.md
    |   |   |-- Swashbuckle
    |   |       |-- Swashbuckle.md
    |   |-- Ja
    |   |   |-- Meteor
    |   |       |-- Meteor.md
    |   |-- MS
    |   |   |-- MSMQ
    |   |       |-- AMQP.md
    |   |       |-- MSMQ.md
    |   |-- PHP
    |   |   |-- CI
    |   |   |   |-- CodeIgniter.md
    |   |   |-- PHP-MySQLi-Database-Class
    |   |   |   |-- MysqliDb.md
    |   |   |-- WordPress
    |   |       |-- WordPress.md
    |   |-- WEB
    |       |-- Mip
    |           |-- MIP.img.md
    |           |-- MIP.md
    |-- Git
    |   |-- Git Gui.md
    |   |-- git.md
    |   |-- GIT开发流程说明.docx
    |   |-- gitignore
    |   |   |-- vs.gitignore
    |   |   |-- vs.md
    |   |-- laycode
    |   |   |-- config
    |   |   |-- delete.md
    |   |   |-- git-err.md
    |   |   |-- git-step.md
    |   |   |-- ssh-keygen .md
    |   |-- uncategorized
    |       |-- Git.Ubuntu.md
    |-- GitBook
    |   |-- GitBook.md
    |-- Github
    |   |-- Topics
    |   |   |-- Topics.md
    |   |-- UI
    |   |   |-- UI-Framework.md
    |   |   |-- MetroFramework
    |   |   |   |-- MetroFramework.md
    |   |   |-- miniblink
    |   |       |-- miniblink.md
    |   |-- WeChat
    |       |-- Gitter
    |           |-- Gitter.md
    |-- Go
    |   |-- Go.md
    |   |-- Demo
    |   |   |-- helloworld.go
    |   |-- LiteIDE
    |   |   |-- LiteIDE.md
    |   |-- revive
    |       |-- revive.md
    |-- IM
    |   |-- LayIM.AspNet
    |   |   |-- LayIM.AspNet.md
    |   |-- Matrix
    |   |   |-- Matrix.md
    |   |-- Mattermost
    |   |   |-- Mattermost.md
    |   |-- Riot.im
    |   |   |-- Riot.im.md
    |   |-- Rocket.Chat
    |   |   |-- Rocket.Chat.md
    |   |   |-- Caddyfile
    |   |       |-- Caddyfile
    |   |-- rongcloud
    |   |   |-- rongcloud.md
    |   |-- YiChat
    |       |-- YiChat.md
    |-- Java
    |   |-- Java.md
    |   |-- Android Studio
    |   |   |-- Android Studio.md
    |   |-- Install
    |   |   |-- JDinstall.md
    |   |   |-- JDKinstall.bat
    |   |   |-- JREinstall.bat
    |   |-- Java 9
    |   |   |-- Java 9.md
    |   |-- Java8
    |       |-- Java8.md
    |-- JavaStrcipt
    |   |-- JS.md
    |   |-- Cookie
    |   |   |-- Cookie.md
    |   |-- Document
    |   |   |-- document.ready.Load.md
    |   |   |-- maximize.md
    |   |   |-- readyState.md
    |   |-- jQuery
    |   |   |-- jQuery.md
    |   |   |-- ajax
    |   |   |   |-- ajax  Cross-domain.md
    |   |   |   |-- ajax-object-send.md
    |   |   |   |-- ajax.Access-Control-Allow-Origin.md
    |   |   |   |-- ajax.async.md
    |   |   |   |-- ajax.c2s.md
    |   |   |   |-- ajax.md
    |   |   |   |-- ajax.post.param.md
    |   |   |   |-- Jsonp.md
    |   |   |   |-- Demo
    |   |   |       |-- ajax.jsonp.html
    |   |   |-- Code
    |   |   |   |-- add.md
    |   |   |   |-- attr.md
    |   |   |   |-- children.md
    |   |   |   |-- Frame.md
    |   |   |   |-- jq-btn.md
    |   |   |   |-- jq-css.md
    |   |   |   |-- jq.div.md
    |   |   |   |-- jq.prev.md
    |   |   |   |-- jq.selector.md
    |   |   |   |-- jquery-Version.md
    |   |   |   |-- parent.md
    |   |   |   |-- setInterval.md
    |   |   |-- jQuery-contextMenu
    |   |       |-- jQuery-contextMenu.md
    |   |-- Js.Demo
    |   |   |-- js.navigator.md
    |   |-- PJAX
    |   |   |-- PJAX.md
    |   |-- querySelector
    |   |   |-- querySelector.md
    |   |-- uncategorized
    |   |   |-- Array.md
    |   |   |-- Base64.md
    |   |   |-- chat.md
    |   |   |-- clipboard.min.js.md
    |   |   |-- for.md
    |   |   |-- html2canvas.html
    |   |   |-- html2canvas.md
    |   |   |-- jq-classfind.md
    |   |   |-- js-class.md
    |   |   |-- js-createElementFromHTML.md
    |   |   |-- js-findIndex.md
    |   |   |-- js-Json2url.md
    |   |   |-- js-QueryString.md
    |   |   |-- js-textarea.md
    |   |   |-- js-time.md
    |   |   |-- js-Window open.md
    |   |   |-- Js.Commit.md
    |   |   |-- js.Extenions.md
    |   |   |-- js.json.md
    |   |   |-- js.links.md
    |   |   |-- js.location.md
    |   |   |-- js.md
    |   |   |-- js.mobile.md
    |   |   |-- js.obj.md
    |   |   |-- Js.onkeydown.md
    |   |   |-- js.Percent.md
    |   |   |-- js.switch.md
    |   |   |-- onclick.md
    |   |   |-- random.md
    |   |   |-- replace.md
    |   |   |-- scroll.md
    |   |   |-- setInterval.md
    |   |   |-- setTimeout.md
    |   |   |-- trycatch.md
    |   |   |-- window.conf.md
    |   |   |-- KeyValue
    |   |       |-- js.KeyValue.md
    |   |-- Window
    |   |   |-- localStorage.md
    |   |   |-- sessionStorage.md
    |   |-- WinHttp.WinHttpRequest.5.1
    |       |-- WinHttp.WinHttpRequest.5.1.md
    |-- Kali
    |   |-- Kali.md
    |-- Kotlin
    |   |-- Kotlin.md
    |-- license
    |   |-- license.md
    |-- Linux
    |   |-- Linux.md
    |   |-- etc
    |   |-- hosts
    |   |   |-- hosts
    |   |   |-- hosts.md
    |   |-- under
    |-- Mac
    |   |-- etc
    |       |-- hosts.md
    |-- Markdown
    |   |-- Markdown.md
    |   |-- readme
    |   |-- Template
    |       |-- block.md
    |       |-- Demo.md
    |       |-- images.md
    |       |-- img.md
    |       |-- install.md
    |       |-- issue.md
    |       |-- issue.txt
    |       |-- issue1.txt
    |       |-- issue3.txt
    |       |-- link.md
    |       |-- README.md
    |       |-- table.md
    |-- Message
    |   |-- Mail
    |   |-- Twilio
    |       |-- Twilio.md
    |-- Microsoft .NET
    |   |-- .Net.md
    |   |-- Keyboard.md
    |   |-- Microsoft API.md
    |   |-- Microsoft Docs.md
    |   |-- VS.md
    |   |-- .NET Core
    |   |   |-- .NET Core 3.0.md
    |   |   |-- .NET Core.md
    |   |   |-- .NET Core 3.0
    |   |       |-- Deploy.md
    |   |       |-- Ubuntu.md
    |   |-- .NET Guide
    |   |   |-- .NET Guide.md
    |   |-- .Net Protect
    |   |   |-- .Net Protect.md
    |   |   |-- azfuscator.NET
    |   |   |   |-- azfuscator.NET.md
    |   |   |-- ConfuserEx
    |   |   |   |-- ConfuserEx.md
    |   |   |-- Crypto Obfuscator For .Net
    |   |   |   |-- Crypto Obfuscator For .Net.md
    |   |   |-- Digital Signature
    |   |   |   |-- Digital Signature.md
    |   |   |-- Dotfuscator
    |   |   |   |-- Dotfuscator.md
    |   |   |-- Skater .NET Free Obfuscator
    |   |       |-- Skater .NET Free Obfuscator.md
    |   |-- .NET Standard
    |   |   |-- .NET Standard.md
    |   |-- ASP.NET
    |   |   |-- ASP.NET.md
    |   |   |-- ApiController
    |   |   |   |-- ApiController.md
    |   |   |   |-- Http.Api.md
    |   |   |   |-- Web.Api.Code.md
    |   |   |-- ASP.NET MVC5
    |   |   |   |-- ASP.NET MVC5.md
    |   |   |   |-- LayCode
    |   |   |       |-- RouteConfigDemo1.md
    |   |   |       |-- WebFormViewEngine.md
    |   |   |-- Compressor
    |   |   |   |-- Compressor.md
    |   |   |   |-- Web.Optimization
    |   |   |   |   |-- Web.Optimization.md
    |   |   |   |-- YUICompressor.NET
    |   |   |       |-- YUICompressor.NET.md
    |   |   |-- HttpConfiguration
    |   |   |   |-- HttpConfiguration.md
    |   |   |-- RegisterStartupScript
    |   |   |   |-- ClientScript.md
    |   |   |   |-- RegisterStartupScript.md
    |   |   |-- Request
    |   |   |   |-- HttpRequest.md
    |   |   |   |-- HttpRequest.UserAgent.md
    |   |   |   |-- Request.FileName.md
    |   |   |   |-- Request.md
    |   |   |-- RouteConfig
    |   |   |   |-- RouteConfig.md
    |   |   |-- System.Web
    |   |   |   |-- Global
    |   |   |   |   |-- RewritePath.md
    |   |   |   |   |-- TimingTask.md
    |   |   |   |-- HttpApplication
    |   |   |       |-- Context.md
    |   |   |       |-- HttpApplication.md
    |   |   |       |-- Events
    |   |   |           |-- Application_Error.md
    |   |   |           |-- ASP.NET Error Handling.md
    |   |   |           |-- Events.md
    |   |   |           |-- webconfig.demo.1.md
    |   |   |-- Token
    |   |   |   |-- AllowAnonymous.md
    |   |   |   |-- asp.net.session-exit.md
    |   |   |   |-- asp.net.session.md
    |   |   |   |-- authentication.md
    |   |   |   |-- authorization.md
    |   |   |   |-- Authorize.md
    |   |   |   |-- FormsAuthentication.md
    |   |   |   |-- https.md
    |   |   |   |-- OpenSSL.md
    |   |   |   |-- PHPCUSTOM.md
    |   |   |   |-- Session.md
    |   |   |   |-- Token.md
    |   |   |   |-- UrlAuthorizationModule.md
    |   |   |   |-- http2https
    |   |   |       |-- https-iis.md
    |   |   |       |-- ssl.md
    |   |   |       |-- TLS.md
    |   |   |       |-- Web.config
    |   |   |-- uncategorized
    |   |   |   |-- alert.md
    |   |   |   |-- Content Type.MIME.md
    |   |   |   |-- ContentType.md
    |   |   |   |-- value.md
    |   |   |-- web.config
    |   |   |   |-- Configuration.md
    |   |   |   |-- runAllManagedModulesForAllRequests.md
    |   |   |   |-- web.config
    |   |   |   |-- web.config.demo.xml
    |   |   |   |-- web.config.demo0002.xml
    |   |   |   |-- web.config.demo0003.xml
    |   |   |   |-- web.config.demo0004index.xml
    |   |   |   |-- web.config.md
    |   |   |   |-- web.config.read.md
    |   |   |-- WebSocket
    |   |       |-- WebSocket.md
    |   |-- ASP.NET Blog
    |   |   |-- ASP.NET Blog.md
    |   |-- ASP.NET Core
    |   |   |-- ASP.NET Core.md
    |   |   |-- .NET Core 3.1
    |   |   |   |-- .NET Core 3.1.md
    |   |   |-- .NET Core CLI Tools
    |   |   |   |-- .NET Core CLI Tools.md
    |   |   |-- Entity Framework
    |   |   |   |-- EF Core
    |   |   |       |-- EF Core.md
    |   |   |-- Entity Framework Core
    |   |   |   |-- Entity Framework Core.md
    |   |   |-- IIS support for ASP.NET Core
    |   |   |   |-- IIS support for ASP.NET Core.md
    |   |   |-- MySql.Data.EntityFrameworkCore
    |   |   |   |-- MySql.Data.EntityFrameworkCore.md
    |   |   |-- Razor Pages
    |   |   |   |-- Razor.md
    |   |   |-- Startup
    |   |   |   |-- code0001.md
    |   |   |-- Ubuntu
    |   |   |   |-- ubuntu-asp.net.md
    |   |   |-- uncategorized
    |   |       |-- IActionResult.md
    |   |-- ASP.NET MVC4
    |   |   |-- ASP.NET MVC4.md
    |   |-- ASP.NET Web API
    |   |   |-- ASP.NET Web API.md
    |   |   |-- ASP.NET Web API 2
    |   |       |-- ASP.NET Web API 2.md
    |   |-- Cefsharp
    |   |   |-- CefC++.md
    |   |   |-- Cefsharp.md
    |   |   |-- Exception
    |   |   |   |-- OutOfMemoryException.md
    |   |   |-- laycode
    |   |       |-- bodyhtml.md
    |   |       |-- ChromiumWebBrowser.md
    |   |       |-- demo1.md
    |   |       |-- EvaluateScriptAsync.md
    |   |       |-- InitCef.md
    |   |       |-- issue.md
    |   |       |-- js.md
    |   |       |-- set.md
    |   |       |-- Version.md
    |   |-- Csharp
    |   |   |-- Docs
    |   |   |   |-- operators
    |   |   |       |-- operators.md
    |   |   |-- laycode
    |   |       |-- Browser
    |   |       |   |-- Browser.md
    |   |       |   |-- Newtonsoft.md
    |   |       |-- class
    |   |       |   |-- class.md
    |   |       |   |-- Interface.md
    |   |       |   |-- laycode.md
    |   |       |-- CsharpLazycode
    |   |       |   |-- CsharpLazycode.md
    |   |       |-- Curl
    |   |       |   |-- curls
    |   |       |       |-- libcurl.NET
    |   |       |           |-- libcurl.NET.md
    |   |       |-- DataGridView
    |   |       |   |-- CellContentClick.md
    |   |       |   |-- ColumnsAdd.md
    |   |       |   |-- DataGridView.md
    |   |       |   |-- Scrollbar.Position.md
    |   |       |   |-- ShowItems.md
    |   |       |-- Delegate
    |   |       |   |-- Action.md
    |   |       |   |-- Delegate.md
    |   |       |-- Encoding
    |   |       |   |-- Encoding.md
    |   |       |   |-- Encrypt.md
    |   |       |-- enum
    |   |       |   |-- enum.md
    |   |       |-- FileProviders
    |   |       |   |-- FileProviders.md
    |   |       |-- Firewall
    |   |       |   |-- Firewall.md
    |   |       |-- Form
    |   |       |   |-- Form.md
    |   |       |   |-- SplitContainer
    |   |       |       |-- SplitContainer.md
    |   |       |-- Format
    |   |       |   |-- Format.md
    |   |       |-- GC
    |   |       |   |-- GC.md
    |   |       |-- Hash
    |   |       |   |-- HashSet.md
    |   |       |   |-- Hashtable.md
    |   |       |-- HttpClient
    |   |       |   |-- Cookie.md
    |   |       |   |-- Cookie.Session.md
    |   |       |   |-- DefaultRequestHeaders.md
    |   |       |   |-- HTTP-Err.md
    |   |       |   |-- HTTP.md
    |   |       |   |-- HttpClient.Get.md
    |   |       |   |-- HttpClient.md
    |   |       |   |-- HttpClient.Post.Demo.md
    |   |       |   |-- HttpClient.StreamContent.md
    |   |       |   |-- HttpClientHandler.md
    |   |       |   |-- UrlEncode.md
    |   |       |   |-- User-Agent.md
    |   |       |   |-- HttpClientFactory
    |   |       |       |-- HttpClientFactory.md
    |   |       |-- Image
    |   |       |   |-- Image.md
    |   |       |-- Invoke
    |   |       |   |-- Invoke.md
    |   |       |-- IO
    |   |       |   |-- Bit.md
    |   |       |   |-- byte.md
    |   |       |   |-- Copy Directories.md
    |   |       |   |-- copy.md
    |   |       |   |-- Directory.md
    |   |       |   |-- DirectoryInfo.md
    |   |       |   |-- file.md
    |   |       |   |-- FileInfo.md
    |   |       |   |-- filelimit.md
    |   |       |   |-- IO.md
    |   |       |   |-- makeFilePath.md
    |   |       |   |-- MemoryStream.md
    |   |       |   |-- Path.md
    |   |       |   |-- Compression
    |   |       |   |   |-- Compression.md
    |   |       |   |   |-- ZipFile.Class.md
    |   |       |   |-- Dialog
    |   |       |   |   |-- Dialog.md
    |   |       |   |   |-- Ookii.Dialogs.md
    |   |       |   |-- SharedMemory
    |   |       |   |   |-- MemoryMappedFile.md
    |   |       |   |   |-- Shared memory.md
    |   |       |   |   |-- SharedMemory.md
    |   |       |   |-- uncategorized
    |   |       |   |   |-- FileSystemWatcher.md
    |   |       |   |-- Uncover
    |   |       |       |-- File.Move.md
    |   |       |-- Laycode
    |   |       |   |-- Laycode.md
    |   |       |-- Linq
    |   |       |   |-- Linq.md
    |   |       |-- List
    |   |       |   |-- ArrayList.md
    |   |       |   |-- ConcurrentDictionary.md
    |   |       |   |-- Dictionary.md
    |   |       |   |-- IDictionary.md
    |   |       |   |-- List.md
    |   |       |   |-- Where.md
    |   |       |   |-- BlockingCollection
    |   |       |   |   |-- BlockingCollection.md
    |   |       |   |-- ConcurrentBag
    |   |       |   |   |-- ConcurrentBag.md
    |   |       |   |   |-- Production and consumption mode.md
    |   |       |   |-- ConcurrentQueue
    |   |       |   |   |-- ConcurrentQueue.md
    |   |       |   |-- IEnumerable
    |   |       |   |   |-- IEnumerable.md
    |   |       |   |-- IEnumerator
    |   |       |   |   |-- IEnumerator.md
    |   |       |   |-- RabbitMQ
    |   |       |       |-- RabbitMQ.md
    |   |       |-- lock
    |   |       |   |-- lock.md
    |   |       |-- MemoryCache
    |   |       |   |-- MemoryCache.md
    |   |       |-- msgbox
    |   |       |   |-- MessageBox.md
    |   |       |-- Newtonsoft
    |   |       |   |-- Extensions.md
    |   |       |   |-- Newtonsoft.Json.Linq.JObject.md
    |   |       |   |-- Newtonsoft.md
    |   |       |-- Path
    |   |       |   |-- Asp.Net.Path.md
    |   |       |   |-- aspx.md
    |   |       |-- PictureBox
    |   |       |   |-- PictureBox.md
    |   |       |-- Queue
    |   |       |   |-- Queue.md
    |   |       |-- random
    |   |       |   |-- random-list.md
    |   |       |   |-- random.md
    |   |       |   |-- Randomnum.md
    |   |       |-- RawJSON
    |   |       |   |-- RawJSON.md
    |   |       |-- requireAdministrator
    |   |       |   |-- requireAdministrator.md
    |   |       |-- RestSharp
    |   |       |   |-- RestSharp.md
    |   |       |-- Split
    |   |       |   |-- split.md
    |   |       |-- Stopwatch
    |   |       |   |-- Stopwatch.md
    |   |       |   |-- UseStopwatchAttribute.md
    |   |       |-- StringBuilder
    |   |       |   |-- StringBuilder.md
    |   |       |-- TableLayoutPanel
    |   |       |   |-- TableLayoutPanel.md
    |   |       |-- Thread
    |   |       |   |-- Atomic Threads.md
    |   |       |   |-- await.md
    |   |       |   |-- Delay.md
    |   |       |   |-- Interlocked.Increment.md
    |   |       |   |-- Interlocked.md
    |   |       |   |-- MSFT.ParallelExtensionsExtras.md
    |   |       |   |-- Parallel.ForEach.md
    |   |       |   |-- Parallel.md
    |   |       |   |-- Task.md
    |   |       |   |-- TaskFactory.md
    |   |       |   |-- Thread.md
    |   |       |   |-- Thread.Sleep.md
    |   |       |   |-- ThreadAsync.md
    |   |       |   |-- ThreadPool.md
    |   |       |   |-- async
    |   |       |   |   |-- async.case.md
    |   |       |   |   |-- async.md
    |   |       |   |-- DemoCode
    |   |       |       |-- Asynchronous.MVC.md
    |   |       |       |-- Mvc.Async.md
    |   |       |       |-- Mvc4Async.md
    |   |       |       |-- Parallel.HttpClient.md
    |   |       |       |-- Thread.Test.md
    |   |       |-- Time
    |   |       |   |-- DateTime.md
    |   |       |   |-- Timestamp.md
    |   |       |-- uncategorized
    |   |       |   |-- AppDomain.md
    |   |       |   |-- Boolean.md
    |   |       |   |-- Button.md
    |   |       |   |-- cefsharp.md
    |   |       |   |-- char.md
    |   |       |   |-- Console.md
    |   |       |   |-- const.md
    |   |       |   |-- Contains.md
    |   |       |   |-- copy.md
    |   |       |   |-- crc32.md
    |   |       |   |-- DEBUG.md
    |   |       |   |-- default.md
    |   |       |   |-- DIRECTORY_SEPARATOR.md
    |   |       |   |-- exceptions.md
    |   |       |   |-- Extensions.md
    |   |       |   |-- For.md
    |   |       |   |-- foreach.md
    |   |       |   |-- Function.md
    |   |       |   |-- IPAddress.md
    |   |       |   |-- IsNumber.md
    |   |       |   |-- json.md
    |   |       |   |-- lambda.md
    |   |       |   |-- long.md
    |   |       |   |-- Math.Round.md
    |   |       |   |-- Memory.md
    |   |       |   |-- object.md
    |   |       |   |-- Obsolete.md
    |   |       |   |-- params.md
    |   |       |   |-- PerformanceCounter.md
    |   |       |   |-- Ping.md
    |   |       |   |-- port.exist.md
    |   |       |   |-- Process.md
    |   |       |   |-- Program.md
    |   |       |   |-- sizeof.md
    |   |       |   |-- string.md
    |   |       |   |-- switch.md
    |   |       |   |-- sys.md
    |   |       |   |-- SystemInfo.md
    |   |       |   |-- T.md
    |   |       |   |-- TCP.md
    |   |       |   |-- TcpClient.md
    |   |       |   |-- Timer.md
    |   |       |   |-- Try.md
    |   |       |   |-- Tuple.md
    |   |       |   |-- Uri.md
    |   |       |   |-- user.md
    |   |       |   |-- var.md
    |   |       |   |-- version.md
    |   |       |   |-- while.md
    |   |       |   |-- Windows Service.md
    |   |       |   |-- Base64
    |   |       |   |   |-- Base64.md
    |   |       |   |-- ContextMenu
    |   |       |   |   |-- ContextMenu.md
    |   |       |   |-- dynamic
    |   |       |   |   |-- dynamic.err.md
    |   |       |   |   |-- dynamic.md
    |   |       |   |   |-- fun.md
    |   |       |   |-- GUID
    |   |       |   |   |-- GUID.md
    |   |       |   |-- IDisposable
    |   |       |   |   |-- Close.md
    |   |       |   |   |-- Dispose.md
    |   |       |   |   |-- IDisposable.md
    |   |       |   |-- MD5
    |   |       |   |   |-- GetHashCode.md
    |   |       |   |   |-- MD5.md
    |   |       |   |-- Regex
    |   |       |   |   |-- regex.demo.md
    |   |       |   |   |-- regex.md
    |   |       |   |-- ScanEnterFile
    |   |       |   |   |-- ScanEnterFile.md
    |   |       |   |-- ServiceProcess
    |   |       |   |   |-- ServiceProcess.md
    |   |       |   |-- String
    |   |       |   |   |-- Replace.md
    |   |       |   |-- using
    |   |       |   |   |-- exErr.md
    |   |       |   |   |-- get-set.md
    |   |       |   |   |-- using.md
    |   |       |   |-- Wiki
    |   |       |       |-- Fast.get.jpg.Size.md
    |   |       |-- XML
    |   |           |-- XML.md
    |   |           |-- XPath.md
    |   |           |-- laycode
    |   |               |-- code0001-a.md
    |   |               |-- code0001-do.md
    |   |               |-- code0001-XPath.md
    |   |               |-- update.config.xml.md
    |   |-- EF Core
    |   |   |-- EF Core.md
    |   |-- Entity Framework
    |   |   |-- Entity Framework.md
    |   |-- F sharp
    |   |   |-- F sharp.md
    |   |-- Framework
    |   |   |-- Crc32.NET
    |   |   |   |-- Crc32.NET.md
    |   |   |-- Microsoft.AspNet.WebApi.Cors
    |   |   |   |-- Microsoft.AspNet.WebApi.Cors.md
    |   |   |-- Microsoft.PowerShell.5
    |   |       |-- System.Management.Automation.Powershell.md
    |   |       |-- LazyCode
    |   |           |-- Get-Process.md
    |   |           |-- get-service.md
    |   |           |-- get-wmiobject.md
    |   |-- Marketplace
    |   |   |-- Marketplace.md
    |   |-- Microsoft Windows SDK
    |   |   |-- Microsoft Windows SDK.md
    |   |-- MicrosoftStore
    |   |   |-- MicrosoftStore.md
    |   |-- Module
    |   |   |-- Module.md
    |   |-- MVC
    |   |   |-- MVC.FAQ.md
    |   |   |-- MVC.NET.md
    |   |   |-- MVC.Set.md
    |   |   |-- ActionFilterAttribute
    |   |   |   |-- ActionFilterAttribute.md
    |   |   |-- Cookie
    |   |   |   |-- Cookie.md
    |   |   |   |-- HttpCookie.md
    |   |   |-- Domain
    |   |   |   |-- Domain.md
    |   |   |-- GlobalFilters
    |   |   |   |-- GlobalFilters.md
    |   |   |-- Response
    |   |   |   |-- Response.md
    |   |   |-- Routing
    |   |   |   |-- routes.md
    |   |   |-- View
    |   |       |-- Exception.md
    |   |       |-- ip.md
    |   |       |-- OutputCache.md
    |   |       |-- ActionResult
    |   |           |-- ActionResult.CommonUse.md
    |   |           |-- ActionResult.md
    |   |           |-- cshtml.demo.md
    |   |           |-- Html.Raw.md
    |   |           |-- View.md
    |   |           |-- ViewData.ViewBa.TempData.md
    |   |-- roslyn
    |   |   |-- roslyn.md
    |   |-- UWP
    |   |   |-- UWP.md
    |   |-- WCF
    |   |   |-- WCF.md
    |   |-- WebSocket
    |       |-- WebSocket.md
    |       |-- Fleck
    |       |   |-- Fleck.md
    |       |-- reconnecting-websocket
    |       |   |-- reconnecting-websocket.md
    |       |-- SignalR
    |       |   |-- SignalR.md
    |       |-- websocket-client
    |       |   |-- websocket-client.md
    |       |-- websocket-sharp
    |           |-- websocket-sharp.md
    |-- Mirror
    |   |-- Mirror.md
    |-- Music
    |   |-- Music.md
    |   |-- Songs.md
    |-- Name
    |   |-- CN.md
    |   |-- English.md
    |   |-- Namde.md
    |-- NodeJS
    |   |-- NodeJS.md
    |   |-- mddir
    |   |   |-- mddir.md
    |   |-- Npm
    |       |-- npm.md
    |-- OmniSharp
    |   |-- OmniSharp.md
    |-- OS
    |   |-- Operating System.md
    |   |-- uncategorized
    |   |   |-- DNS.md
    |   |-- Windows Sever
    |       |-- Windows Sever.md
    |-- Oschina
    |   |-- Nav.md
    |-- Pay
    |   |-- Pay.md
    |-- Performance
    |   |-- TechEmpower
    |       |-- TechEmpower.md
    |-- Plugin
    |   |-- Enlighter
    |       |-- Enlighter.md
    |-- PowerShell Core
    |   |-- PowerShell Core.md
    |-- Proxy
    |   |-- Proxy Server
    |   |   |-- Reverse proxy.md
    |   |-- Proxy Tool
    |       |-- ProxyCap.md
    |-- Python
    |   |-- pip.md
    |   |-- Python.md
    |-- QR Code
    |   |-- QR Code.md
    |-- RPC
    |   |-- RPC.md
    |   |-- gRPC
    |       |-- gRPC.md
    |-- Safe
    |   |-- http.md
    |-- SEO
    |   |-- SEO.md
    |   |-- Baidu
    |   |   |-- baidu.md
    |   |   |-- ce.baidu.com.md
    |   |   |-- hanyu.baidu.com.md
    |   |   |-- index.baidu.com.md
    |   |   |-- trust.baidu.com.md
    |   |   |-- xiongzhang.baidu.com.md
    |   |   |-- ziyuan.baidu.com.md
    |   |   |-- zn.baidu.com.md
    |   |   |-- push
    |   |       |-- CNNAME.md
    |   |       |-- push.demo.js.html
    |   |       |-- push.demo.js.md
    |   |-- Clickbank
    |   |   |-- Clickbank.md
    |   |-- Google
    |   |   |-- analytics.google.com.md
    |   |-- keywordtool
    |   |   |-- keywordtool.md
    |   |-- Knowledge
    |   |   |-- auto.push.md
    |   |   |-- canonical.md
    |   |   |-- reptile.md
    |   |   |-- Robots.md
    |   |   |-- seoknowledge.md
    |   |-- My engine system
    |   |   |-- My engine system.md
    |   |   |-- neiye
    |   |   |   |-- neiye.md
    |   |   |-- pup
    |   |   |   |-- public.md
    |   |   |-- Resource
    |   |       |-- Resource.md
    |   |-- Tool Box
    |   |   |-- weiyuanchuang.md
    |   |-- umeng
    |   |   |-- account.umeng.com.md
    |   |-- website analysis
    |   |   |-- website analysis.md
    |   |-- Wiki
    |       |-- sitemap.md
    |-- Server
    |   |-- Apache
    |   |   |-- Apache.md
    |   |-- AppNode
    |   |   |-- AppNode.md
    |   |-- BT
    |   |   |-- bt.md
    |   |   |-- APP
    |   |       |-- NFS.md
    |   |-- Caddy
    |   |   |-- Caddy.md
    |   |   |-- caddy-with-docker-and-php
    |   |   |   |-- caddy-with-docker-and-php.md
    |   |   |-- Caddyfile
    |   |   |   |-- Caddyfile
    |   |   |   |-- Caddyfile.md
    |   |   |-- Configure Caddy
    |   |   |   |-- Caddy v1.0.0
    |   |   |       |-- caddy.service
    |   |   |-- PHP
    |   |       |-- PHP.md
    |   |-- CGI
    |   |   |-- CGI.md
    |   |   |-- CGI.Net.md
    |   |-- FTP
    |   |   |-- Microsoft FTP Service.md
    |   |-- gossa
    |   |-- IIS
    |   |   |-- DirectoryEntry
    |   |   |   |-- DirectoryEntry.md
    |   |   |   |-- IIS.md
    |   |   |-- IIS
    |   |   |   |-- CLI.md
    |   |   |   |-- Err.md
    |   |   |   |-- IIS.md
    |   |   |   |-- version.vbs
    |   |   |   |-- AppCmd
    |   |   |   |   |-- AppCmd.md
    |   |   |   |-- LazyCode
    |   |   |       |-- UpdateWebsite
    |   |   |           |-- delete Default Web Site.bat
    |   |   |           |-- delete_from_IIS.ps1
    |   |   |           |-- Restart.For.Update.bat
    |   |   |           |-- Stop.For.Update.bat
    |   |   |-- IIS Express
    |   |   |   |-- IIS Express.md
    |   |   |   |-- Doc
    |   |   |       |-- high.md
    |   |   |       |-- processmodel.md
    |   |   |-- InetMgr
    |   |   |   |-- err.md
    |   |   |   |-- InetMgr.md
    |   |   |-- Microsoft.Web.Administration
    |   |   |   |-- APP_POOL_ID.md
    |   |   |   |-- Microsoft.Web.Administration.md
    |   |   |   |-- Virtual Directory.md
    |   |   |-- MIME
    |   |   |   |-- MIME.md
    |   |   |-- Optimization
    |   |   |   |-- IIS.Optimization.md
    |   |   |   |-- Application Initialization
    |   |   |       |-- Application Initialization.md
    |   |   |-- Optimize concurrency
    |   |   |   |-- Optimize concurrency.md
    |   |   |-- PHP
    |   |   |   |-- iis.php.md
    |   |   |-- WEB
    |   |       |-- .NET 2.0
    |   |       |-- device-simulators
    |   |       |-- Err
    |   |       |   |-- err-0001-Permission.md
    |   |       |-- IIS Express
    |   |           |-- IIS Express.md
    |   |-- ISAPI
    |   |   |-- ISAPI.md
    |   |-- Nginx
    |   |   |-- Nginx.md
    |   |   |-- phpMyAdmin.md
    |   |   |-- Rewrite.md
    |   |   |-- Mysql
    |   |   |   |-- Mysql.md
    |   |   |-- php-fpm
    |   |   |   |-- php-fpm.md
    |   |   |-- Port
    |   |   |   |-- Port.md
    |   |   |-- samba
    |   |   |   |-- samba.md
    |   |   |-- sitedemo
    |   |   |   |-- newsite.md
    |   |   |   |-- phpinfo.php
    |   |   |   |-- sites-available
    |   |   |       |-- www.phpmyadmin.com.conf
    |   |   |-- siteManager
    |   |   |   |-- sitemanager.md
    |   |   |   |-- site_manager.sh
    |   |   |-- sites-available
    |   |-- OpenResty
    |   |   |-- OpenResty.md
    |   |-- Performance Testing
    |   |   |-- PerformanceTesting.md
    |   |-- PHP
    |   |   |-- PHP Manager.md
    |   |   |-- PHP.md
    |   |-- Rewrite
    |   |   |-- Apache
    |   |   |-- IIS
    |   |   |   |-- iis rewrite.md
    |   |   |-- Nginx
    |   |   |-- Tool
    |   |       |-- tool.md
    |   |-- SSL
    |   |   |-- Let’s Encrypt
    |   |       |-- Let’s Encrypt.md
    |   |       |-- WACS.md
    |   |       |-- Certbot
    |   |           |-- Certbot.md
    |   |-- SSLDocker
    |   |   |-- SSLDocker.md
    |   |-- Tengine
    |   |   |-- Tengine.md
    |   |-- Tool Box
    |       |-- Pure-FTPd
    |           |-- Pure-FTPd.md
    |-- Src
    |-- System Interconnection
    |   |-- Wiki
    |       |-- Interconnection.md
    |-- Tool Box
    |   |-- Soft Ware.md
    |   |-- TOOL.md
    |   |-- Down load
    |   |   |-- annie
    |   |       |-- annie.md
    |   |-- IL Disassembler
    |   |   |-- Ilasm.md
    |   |-- PacketSniffers
    |   |   |-- PacketSniffers.md
    |   |   |-- Wireshark
    |   |       |-- Wireshark.md
    |   |-- PE
    |   |   |-- StudyPE
    |   |       |-- StudyPE.md
    |   |-- screen
    |   |   |-- licecap
    |   |       |-- licecap.md
    |   |-- Soft Ware
    |   |   |-- .NET Framework
    |   |   |   |-- .NET Framework.md
    |   |   |   |-- .NET Version Check
    |   |   |   |   |-- .NET Version Check.md
    |   |   |   |   |-- Raymondcc .NET Detector
    |   |   |   |       |-- Raymondcc .NET Detector.md
    |   |   |   |-- scripts
    |   |   |       |-- Get-FrameworkVersion.ps1
    |   |   |-- .NET Soft
    |   |   |-- 7-Zip
    |   |   |   |-- 7-Zip.md
    |   |   |-- AAA Logo
    |   |   |   |-- AAA Logo.md
    |   |   |-- Adobe Dreamweaver
    |   |   |   |-- Adobe Dreamweaver.md
    |   |   |-- atom
    |   |   |   |-- atom.md
    |   |   |-- Axure
    |   |   |   |-- Axure.md
    |   |   |-- CMD
    |   |   |   |-- cmd.md
    |   |   |-- Database
    |   |   |   |-- MSSQL
    |   |   |   |   |-- Permission
    |   |   |   |       |-- Permission.md
    |   |   |   |-- Redis
    |   |   |       |-- Redis-Ubuntu.md
    |   |   |       |-- Redis-Windows.md
    |   |   |-- DiskGenius
    |   |   |   |-- DiskGenius.md
    |   |   |-- Draw Entity
    |   |   |   |-- dbdiagram.io.md
    |   |   |-- EditPlus
    |   |   |   |-- EditPlus.md
    |   |   |-- EmEditor
    |   |   |   |-- EmEditor.md
    |   |   |   |-- EncodingChange.jsee
    |   |   |-- Eraser
    |   |   |   |-- Eraser.md
    |   |   |-- firefox
    |   |   |   |-- firefox.md
    |   |   |-- Google Chrome
    |   |   |   |-- DevTools.md
    |   |   |   |-- Google Chrome.md
    |   |   |   |-- Privacy.md
    |   |   |-- Hash
    |   |   |   |-- Hash.md
    |   |   |-- HFS
    |   |   |   |-- HFS.md
    |   |   |-- HostsFileEditor
    |   |   |   |-- HostsFileEditor.md
    |   |   |-- huweishen
    |   |   |   |-- huweishen.md
    |   |   |-- ILSpy
    |   |   |   |-- ILSpy.md
    |   |   |-- Image Optimization
    |   |   |   |-- Image Optimization.md
    |   |   |-- Microsoft Store
    |   |   |   |-- Microsoft Store.md
    |   |   |-- Mstsc
    |   |   |   |-- Clear.bat
    |   |   |   |-- Clear.md
    |   |   |   |-- mstsc.md
    |   |   |   |-- rdpclip.bat
    |   |   |   |-- rdpclip.md
    |   |   |-- Notepad++
    |   |   |   |-- Notepad++.md
    |   |   |-- NuGet
    |   |   |   |-- npe.md
    |   |   |   |-- NuGet.md
    |   |   |   |-- NuGet.Server.md
    |   |   |   |-- PackageSources.md
    |   |   |-- phpStudy
    |   |   |   |-- .htaccess
    |   |   |   |-- phpStudy.md
    |   |   |   |-- Rewrite.md
    |   |   |-- Postman
    |   |   |   |-- Globals.md
    |   |   |   |-- HEAD.md
    |   |   |   |-- Postman.md
    |   |   |   |-- Postman.post.md
    |   |   |-- ProcessExplorer
    |   |   |   |-- ProcessExplorer.md
    |   |   |-- Redis
    |   |   |   |-- Redis.md
    |   |   |-- Sizer
    |   |   |   |-- Sizer.md
    |   |   |-- Speedpan
    |   |   |   |-- Speedpan.md
    |   |   |-- Telegram
    |   |   |   |-- Telegram.md
    |   |   |-- Telerik
    |   |   |   |-- Telerik.md
    |   |   |   |-- Telerik JustDecompile
    |   |   |       |-- Telerik JustDecompile.md
    |   |   |-- uncategorized
    |   |   |   |-- AnyDesk.md
    |   |   |   |-- certutil.md
    |   |   |   |-- CometAssistant.md
    |   |   |   |-- Feige.md
    |   |   |   |-- FileZilla.md
    |   |   |   |-- HTTP Analyzer.md
    |   |   |   |-- MobaXterm.md
    |   |   |   |-- Monaco Editor.md
    |   |   |   |-- NetLimiter.md
    |   |   |   |-- PanDownload.md
    |   |   |   |-- Serv-U.md
    |   |   |   |-- SQLiteStudio.md
    |   |   |   |-- TeamViewer.md
    |   |   |   |-- WinBox.md
    |   |   |   |-- WndEye.md
    |   |   |   |-- Xoreax IncrediBuild.md
    |   |   |-- Visual Studio
    |   |   |   |-- Visual Studio
    |   |   |   |   |-- sn.md
    |   |   |   |   |-- Visual Studio 2019.md
    |   |   |   |   |-- VS.FAQ.md
    |   |   |   |   |-- lazycode
    |   |   |   |   |   |-- BatchBuildTest.bat
    |   |   |   |   |-- MSBuild
    |   |   |   |   |   |-- Build and Run.md
    |   |   |   |   |   |-- devenv.md
    |   |   |   |   |   |-- MSBuild.Example.md
    |   |   |   |   |   |-- MSBuild.md
    |   |   |   |   |   |-- pre-build-event.md
    |   |   |   |   |   |-- slnANDcsproj.md
    |   |   |   |   |-- Snippets
    |   |   |   |   |   |-- Snippets.md
    |   |   |   |   |   |-- All
    |   |   |   |   |   |   |-- My Code Snippets.lnk
    |   |   |   |   |   |   |-- Visual C#.lnk
    |   |   |   |   |   |-- uncategorized
    |   |   |   |   |       |-- Snippet Editor.md
    |   |   |   |   |       |-- Snippetica.md
    |   |   |   |   |-- Tools
    |   |   |   |       |-- VS.Tools.md
    |   |   |   |-- Visual Studio Code
    |   |   |       |-- Visual Studio Code.md
    |   |   |       |-- Gist
    |   |   |       |   |-- Gist SYNC.md
    |   |   |       |-- Plugin
    |   |   |       |   |-- PHP DocBlocker
    |   |   |       |   |   |-- PHP DocBlocker.md
    |   |   |       |   |-- uncategorized
    |   |   |       |       |-- REST Client.md
    |   |   |       |-- Snippets
    |   |   |           |-- Vs.Code.Snippets.md
    |   |   |           |-- All
    |   |   |               |-- vs.code.snippets.lnk
    |   |   |-- VisualStudioGallery
    |   |   |   |-- VisualStudioGallery.md
    |   |   |-- VMware
    |   |   |   |-- net.md
    |   |   |   |-- vgdisplay.md
    |   |   |   |-- vmdk.md
    |   |   |   |-- VMware.md
    |   |   |   |-- Installation
    |   |   |   |   |-- F.A.Q.md
    |   |   |   |-- Linux
    |   |   |       |-- expansion.md
    |   |   |       |-- fdisk.md
    |   |   |-- vstart
    |   |   |   |-- vstart.md
    |   |   |-- WIFI
    |   |   |   |-- Base-base filtering engine.reg
    |   |   |-- Wincp
    |   |   |   |-- WinSCP.md
    |   |   |-- Windows Sandbox
    |   |   |   |-- Windows Sandbox.md
    |   |   |-- WinRAR
    |   |   |   |-- WinRAR.md
    |   |   |-- WPS
    |   |   |   |-- Excel.md
    |   |   |   |-- usage.md
    |   |   |   |-- WPS.md
    |   |   |-- ZkeysPhp
    |   |       |-- ZkeysPhp.md
    |   |-- Wallpaper
    |   |   |-- PUSH Video Wallpaper.md
    |   |   |-- Wallpaper.md
    |   |-- Web Tools
    |       |-- AI.word.md
    |       |-- chajiechi.md
    |       |-- crack.md
    |       |-- Decrypt Encrypt.md
    |       |-- get.md
    |       |-- Internet speed.md
    |       |-- IP.md
    |       |-- json.yasuo.md
    |       |-- json2csharp.md
    |       |-- MarkDown.md
    |       |-- original work.md
    |       |-- pinyin.md
    |       |-- SQL Formatter.md
    |-- Ubuntu
    |   |-- PermitRootLogin.md
    |   |-- SSH.md
    |   |-- ubuntu.md
    |   |-- Ubuntu.OS.md
    |   |-- Vi.md
    |   |-- Config
    |   |   |-- confignote.md
    |   |-- curl
    |   |   |-- curl.md
    |   |   |-- Curl.POST.md
    |   |-- Docker
    |   |-- firewall
    |   |   |-- firewall.md
    |   |-- nano
    |   |   |-- nano.md
    |   |-- netplan
    |   |   |-- netplan.md
    |   |   |-- netplan
    |   |       |-- 01-netcfg.yaml
    |   |       |-- 50-cloud-init.yaml
    |   |-- Path
    |   |   |-- path.md
    |   |-- Permission
    |   |   |-- Permission.md
    |   |-- PHP
    |   |   |-- php.md
    |   |-- Port
    |   |   |-- Port.md
    |   |-- PPA
    |   |   |-- PPA.md
    |   |-- snapd
    |   |   |-- snapd.md
    |   |-- Snaps
    |   |   |-- Snaps.md
    |   |-- sources.list
    |   |   |-- sources.list.md
    |   |-- systemd
    |   |   |-- systemd.md
    |   |-- Tools
    |   |   |-- Gparted
    |   |   |   |-- Gparted.md
    |   |   |-- Supervisor
    |   |   |   |-- Supervisor.md
    |   |   |-- Webmin
    |   |       |-- Webmin.md
    |   |-- uncategorized
    |       |-- cp.md
    |       |-- df.md
    |       |-- fdisk.md
    |       |-- IO-error.md
    |       |-- mkfs.md
    |       |-- OpenSSH Server.md
    |       |-- parted.md
    |       |-- Ubuntu.Expansion.md
    |       |-- upgrade.md
    |       |-- vgscan.md
    |-- UI Framework
    |   |-- UI.Admin.Framework.md
    |   |-- UI.md
    |   |-- Angular
    |   |   |-- Angular.md
    |   |-- Ant Design
    |   |   |-- Antd.md
    |   |-- Bootstrap
    |   |   |-- Bootstrap.md
    |   |-- CodeMirror
    |   |   |-- CodeMirror.md
    |   |   |-- demo.html
    |   |-- Css
    |   |   |-- CSS.md
    |   |   |-- laycode
    |   |       |-- class.md
    |   |       |-- font.md
    |   |       |-- padding-margin.md
    |   |       |-- style.md
    |   |       |-- word-break.md
    |   |-- Kendo UI
    |   |   |-- Kendo UI.md
    |   |-- Layui
    |   |   |-- layui.md
    |   |   |-- cdn
    |   |   |   |-- cdn.md
    |   |   |-- extend
    |   |   |   |-- tableSelect
    |   |   |       |-- tableSelect.md.md
    |   |   |-- Layer For Mobile
    |   |   |   |-- Layer For Mobile.md
    |   |   |-- layui
    |   |       |-- Extendcss
    |   |       |   |-- layuiExtendcss.css
    |   |       |-- Html
    |   |       |   |-- codemirror-texthml.html
    |   |       |   |-- HTML.md
    |   |       |   |-- index.cdn.demo.html
    |   |       |   |-- index.html
    |   |       |   |-- layui-collapse.demo.html
    |   |       |   |-- Table.demo.html
    |   |       |   |-- Table.form.demo.html
    |   |       |-- Laytemplate
    |   |       |   |-- Table-laytpl.md
    |   |       |   |-- templet.md
    |   |       |-- Lazycode
    |   |           |-- collapse.md
    |   |           |-- div.md
    |   |           |-- elm.md
    |   |           |-- Fowler.md
    |   |           |-- icon.md
    |   |           |-- iframe.md
    |   |           |-- Jsinit.md
    |   |           |-- laydate.md
    |   |           |-- layui-nav-1.md
    |   |           |-- layui-tab.md
    |   |           |-- layuiJQ.md
    |   |           |-- loading.md
    |   |           |-- prompt.md
    |   |           |-- toolbar.md
    |   |           |-- tree.md
    |   |           |-- button
    |   |           |   |-- button.md
    |   |           |-- Form
    |   |           |   |-- Form.api.md
    |   |           |   |-- form.checkbox.md
    |   |           |   |-- Form.md
    |   |           |   |-- form.render.md
    |   |           |   |-- Form.select.md
    |   |           |   |-- Form.textarea.md
    |   |           |   |-- LazyCode
    |   |           |       |-- Form.1.md
    |   |           |       |-- Form.input.btn.md
    |   |           |-- Msg
    |   |           |   |-- layer.md
    |   |           |   |-- Layer.open.md
    |   |           |   |-- layer.tips.md
    |   |           |   |-- msg.md
    |   |           |-- tab
    |   |           |   |-- tab.md
    |   |           |-- Table
    |   |           |   |-- cols.type.md
    |   |           |   |-- Table-api.md
    |   |           |   |-- Table-event.md
    |   |           |   |-- table-GetHeader.md
    |   |           |   |-- Table-html.md
    |   |           |   |-- Table.md
    |   |           |   |-- Table.tool.md
    |   |           |   |-- Table.toolbar.md
    |   |           |-- Un
    |   |               |-- page.top.md
    |   |               |-- util.fixbar.md
    |   |-- NG-ALAIN
    |   |   |-- NG-ALAIN.md
    |   |-- Vue
    |       |-- Vue.md
    |-- uncategorized
    |   |-- Taobao
    |       |-- Mayun.md
    |-- Utils
    |-- Version Control
    |   |-- CVS
    |   |   |-- CVS.md
    |   |-- GIT
    |   |-- Gitlab
    |   |   |-- Add an SSH key.md
    |   |   |-- backup.md
    |   |   |-- Command line.md
    |   |   |-- GitLab.md
    |   |   |-- Health Check.md
    |   |   |-- Install.md
    |   |   |-- Solution.md
    |   |-- Monotone
    |   |   |-- Monotone.md
    |   |-- OpenCVS
    |   |   |-- OpenCVS.md
    |   |-- PVCS
    |   |   |-- PVCS.md
    |   |-- Subversion
    |   |   |-- Subversion.md
    |   |-- SVN
    |   |   |-- Svn-code.md
    |   |   |-- Svn.md
    |   |-- Visual SourceSafe
    |       |-- Visual SourceSafe.md
    |-- VPN
    |   |-- CCProxy.md
    |   |-- frp.md
    |   |-- Proxy.md
    |   |-- shadowsocks.md
    |   |-- v2rayN.md
    |   |-- VPN.md
    |   |-- proxy.tools
    |       |-- switchyplus.md
    |       |-- 3proxy
    |           |-- 3proxy.1.cfg
    |           |-- 3proxy.2.cfg
    |           |-- 3proxy.md
    |-- Web
    |   |-- Php.FAQ.md
    |   |-- php.md
    |   |-- web.md
    |   |-- coding
    |   |   |-- coding.md
    |   |-- convert
    |   |   |-- json2csharp
    |   |   |   |-- json2csharp.html
    |   |   |   |-- json2csharp.json
    |   |   |-- replace
    |   |       |-- replace.html
    |   |       |-- replaceNorn.html
    |   |-- Domains
    |   |   |-- Google Domains.md
    |   |   |-- Tool.md
    |   |-- Enc
    |   |   |-- base64.html
    |   |   |-- Enc.md
    |   |-- favicon.ico
    |   |   |-- favicon.ico.md
    |   |-- Framework
    |   |   |-- Laravel
    |   |       |-- Laravel.md
    |   |-- Html
    |   |   |-- HTML 5 Comments Tag.md
    |   |   |-- HTML a.md
    |   |   |-- HTML meta.md
    |   |   |-- HTML Tags.md
    |   |   |-- HTML Templates.md
    |   |   |-- HTML.iframe.md
    |   |   |-- Html.md
    |   |   |-- htmlchar.md
    |   |   |-- HTTP Content-type.md
    |   |   |-- Beautiful
    |   |       |-- sorry.md
    |   |-- knowledge
    |   |   |-- Token
    |   |       |-- Token.md
    |   |-- PHP
    |   |   |-- .Net Framework
    |   |   |   |-- .Net Framework.md
    |   |   |-- laycode
    |   |   |   |-- class
    |   |   |   |   |-- class.md
    |   |   |   |-- dateTime
    |   |   |   |   |-- dateTime.md
    |   |   |   |-- error
    |   |   |   |   |-- err-001-Parse error.md
    |   |   |   |   |-- error.md
    |   |   |   |-- file
    |   |   |   |   |-- getTextcontent.md
    |   |   |   |   |-- replaceTarget.md
    |   |   |   |-- JSON
    |   |   |   |   |-- JSON.md
    |   |   |   |-- PHP Warning
    |   |   |   |   |-- PHP Warning.md
    |   |   |   |-- POST
    |   |   |   |   |-- POST.md
    |   |   |   |-- preg_match
    |   |   |   |   |-- ispassword.md
    |   |   |   |   |-- ispassword.php
    |   |   |   |-- uncategorized
    |   |   |   |   |-- array.md
    |   |   |   |   |-- array.random.md
    |   |   |   |   |-- crc32.md
    |   |   |   |   |-- explode.md
    |   |   |   |   |-- is_file.md
    |   |   |   |   |-- is_numeric.md
    |   |   |   |   |-- nl2br.md
    |   |   |   |   |-- php.for.md
    |   |   |   |   |-- php.include.md
    |   |   |   |   |-- php.path.md
    |   |   |   |   |-- sprintf.md
    |   |   |   |   |-- stripos.md
    |   |   |   |   |-- strpos.md
    |   |   |   |   |-- unset.md
    |   |   |   |-- use
    |   |   |   |   |-- use.md
    |   |   |   |-- version
    |   |   |       |-- phpinfo.php
    |   |   |       |-- version.md
    |   |   |-- MVC
    |   |   |   |-- MVC.md
    |   |   |-- router
    |   |       |-- router.md
    |   |       |-- PHP-Router
    |   |       |   |-- PHP-Router.md
    |   |       |-- php-srouter
    |   |           |-- php-srouter.md
    |   |-- sever
    |-- Wi-Fi
    |   |-- Wi-Fi.md
    |-- Wiki
    |   |-- Wiki1
    |       |-- Bash.md
    |-- Windows
    |   |-- Run.md
    |   |-- Windows PE.md
    |   |-- Windows.ISO.md
    |   |-- Windows.md
    |   |-- Control
    |   |   |-- DEP.md
    |   |   |-- NFS.md
    |   |   |-- WerFault.md
    |   |-- DOMAIN
    |   |   |-- MYDOMAIN.md
    |   |-- Error
    |   |   |-- Application error.md
    |   |   |-- CLR20r3.md
    |   |   |-- Error.md
    |   |   |-- maxworkitems
    |   |       |-- maxworkitems.md
    |   |       |-- maxworkitems.reg
    |   |-- Firewall
    |   |   |-- firewall.disable.bat
    |   |   |-- Firewall.md
    |   |-- Font
    |   |   |-- Font.md
    |   |-- Front
    |   |   |-- 1.md
    |   |-- System
    |   |   |-- etc
    |   |   |   |-- hosts.lnk
    |   |   |   |-- hosts.md
    |   |   |-- makecab
    |   |   |   |-- makecab.md
    |   |   |-- OpenSSH
    |   |   |   |-- OpenSSH.md
    |   |   |-- regedit
    |   |       |-- regedit.md
    |   |       |-- App-V Demo
    |   |       |   |-- demo.appv
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- Directory Background Demo
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- fix New text file
    |   |       |   |-- fix.bat
    |   |       |   |-- pls run with administrator.txt
    |   |       |-- open cmd Directory Demo
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- open cmd Driver Demo
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- open file Demo
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- open txt file Demo
    |   |       |   |-- demo.txt
    |   |       |   |-- reg.reg
    |   |       |   |-- unreg.reg
    |   |       |-- otepad++ Demo
    |   |       |   |-- reg.reg
    |   |       |   |-- stale_outputs_checked
    |   |       |   |-- unreg.reg
    |   |       |-- SearchDemo
    |   |           |-- 1.reg
    |   |           |-- 2.reg
    |   |           |-- 3.reg
    |   |           |-- reg.reg
    |   |           |-- unreg.reg
    |   |-- uncategorized
    |   |   |-- developer mode.md
    |   |   |-- windows.path.md
    |   |   |-- windows.Reset.md
    |   |-- Windows Server
    |   |   |-- Windows Server.md
    |   |   |-- Windows Sever 2019.md
    |   |-- WMI
    |       |-- WMI.md
    |       |-- WMIC
    |           |-- wmic.cli.md
    |           |-- WMIC.md
    |           |-- LazyCode
    |               |-- Percentage of memory.bat
    |               |-- Percentage of memory.md
    |-- Windows PowerShell
    |   |-- PowerShell.md
    |   |-- cmdlet
    |   |   |-- cmdlet.md
    |   |-- LazyCode
    |       |-- Clear-history.md
    |       |-- cpu.md
    |       |-- del.demo.md
    |       |-- Env.md
    |       |-- Get memory.md
    |       |-- Get memory.ps
    |       |-- Get-CimInstance.md
    |       |-- Get-Process.md
    |       |-- Hard disk usage.md
    |       |-- Network.md
    |       |-- open.md
    |       |-- user.md
    |-- YAML
        |-- YAML.md
└1/2┘=0,┌1/2┐=1,└-1/2┘=-1,┌-1/2┐=0,

└3.1┘=3,┌3.1┐=4,└7┘=7,┌7┐=7

 

             发送 HTTP 请求
                                                 ┌───────────┴───────────┐
                                              发送成功¹               发送失败²
                                                 │                       │
                                      ┌──────────┴──────────┐            A 例如: A100
                                获得 HTTP 响应       无法获得 HTTP 响应³
                                      │                     │
                                 HTTP status                A 例如: A200
                           ┌──────────┴──────────┐
                       HTTP 成功(200-300)     HTTP 异常
                           │                     |
               {data, status, statusInfo}        H${HTTP status} 例如: H404
               ┌───────────┴───────────┐
          接口调用成功(status:0)   接口调用失败
      ┌────────┴────────┐              |
客户端处理出错      客户端处理正常       B${status}${statusInfo.message} 例如: B100