使用Try.NET创建可交互.NET文档

原文地址:Create Interactive .NET Documentation with Try .NET[1] 

原文作者:Maria 

译文地址:https://www.cnblogs.com/lwqlun/p/10894497.html 

译者:Lamond Lu

背景

当我们编写开发人员使用的文档时,我们需要捕捉他们的兴趣,并引导他们尽快走上成功的道路。开发人员生态系统一直在为社区提供可交互的文档,用户可以一个地方阅读文档,运行代码并进行编辑。

在过去的2年里,.NET语言团队一直在不断发展Try .NET, 以支持在线和离线的交互式文档。

什么是Try .NET

Try .NET是一个基于.NET Core的交互式文档生成器。

640?wx_fmt=png

Try .NET 在线版

2017年9月,Try .NET第一次在docs.microsoft.com[2]中使用,开发人员可以使用Azure Container实例运行代码。然而在过去的5个月内,我们改用Blazor和Web Assembly作为代码执行客户端。

你可以自己访问如下链接[3], 并打开开发者工具。在控制台标签页中,你可以看到如下信息WASM:Initialized, 切换到网络标签页,你将看到所有在客户端执行的DLL。

640?wx_fmt=png

控制台标签页: *WASM Initialized*

640?wx_fmt=png

网络标签页: DLLs

Try .NET离线版

对我们而言,离线版和在线版一样的重要。针对离线体验,对我们而言,创建一种可以融入内容作者工作流程的体验是非常重要的。

在我们的调查结果中,我们注意到内容开发人员(content developers)在创建开发人员文档时,经常使用2种说明方式

•一个用户可以下载并运行的实例。•一些Markdown文件,其中包含一系列说明,以及从代码库复制黏贴的的代码片段。

Try .NET提供了全局工具dotnet try, 以方便.NET开发人员创建可交互的Markdown文件。

为了使你的Markdown文件具有交互性,你需要安装.NET Core的SDK, 全局工具dotnet try, 以及Visual Studio / VS Code。

640?wx_fmt=png

我们该怎么做?

扩展Markdown

在Markown文件中,你会使用隔离代码块来突出显示代码段。在代码块的前后,你会使用```来包裹它们。你可以添加可选的语言标识符,启用针对代码段的语法突出显示。

例:C#的代码块

``` cs 	
var name ="Rain";	
Console.WriteLine($"Hello {name.ToUpper()}!");	
```

使用Try .NET, 我们可以扩展隔离代码块,给它添加一些额外的参数。

``` cs --region methods --source-file .\myapp\Program.cs --project .\myapp\myapp.csproj 	
var name ="Rain";	
Console.WriteLine($"Hello {name.ToUpper()}!");	
```

这里我们使用了3个参数

--region参数 - 指定一个C#的分块(region)--source-file参数 - 指定程序文件的目录--project参数 - 指定项目文件和引用的系统程序集

因此,以上示例中,我们做的事情是,当你运行Try .NET的解析你的Markdown文件的时候,程序会去尝试引用Program.cs文件中名为methods的分块代码。

使用#regions

在Markdown中,我们扩展了代码块,提供了--region参数,用它可以指定C#代码中的分块(region)。 所以,你的Program.cs文件看起来可能是这样的。

using System;	namespace HelloWorld	
{	class Program	{	static void Main(string[] args)	{	#region methods	var name ="Rain"	Console.WriteLine($"Hello{name.ToUpper()}!");  	#endregion	}	}	
}

dotnet try verify

dotnet try verify是一个文档编译器。使用这个命令,你可以确保每个代码块都能正常工作,并且和项目代码保持一致。

dotnet try verify命令的目的是为了验证你的文档按照你期望的样子工作。

通过使用dotnet try verify命令,你可以检测Markdown文件并编译错误。例如,如果我将之前代码中移除一个分号,并且将methods代码分块改名为method。现在如果运行编译器,会出现以下错误。

640?wx_fmt=png

尝试使用全局工具dotnet try

dotnet try现在已经可以使用了。这是一个dotnet try全局工具的早期预览版,你可以从我们的仓储[4]克隆代码。

入门

•克隆代码仓储•签出Samples分支•安装.NET Core 2.1或3.0预览版•打开控制台窗口•安装Try .NET全局工具

dotnet tool install --global dotnet-try --version 1.0.19264.11

更新dotnet try也很简单,只需要运行如下命令

dotnet tool update -g dotnet-try

定位到当前仓储的Samples目录,输入dotnet try

640?wx_fmt=png

浏览器会自动打开

640?wx_fmt=png


Try .NET现在开源了

现在Try.NET已经在Github上开源了!由于我们仍处于早期开发阶段,所以目前我们无法接受任何功能的Pull Request, 但我们打算在未来这么做。请随时在我们的Issue列表中提交Bug报告。 如果你有任何功能建议,请在我们的Issue列表中使用社区建议的标签提交。

References

[1] Create Interactive .NET Documentation with Try .NET: https://devblogs.microsoft.com/dotnet/creating-interactive-net-documentation/
[2] docs.microsoft.com: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/intro-to-csharp/
[3] 链接: https://docs.microsoft.com/dotnet/csharp/tutorials/intro-to-csharp/hello-world?tutorial-step=5
[4] 仓储: https://github.com/dotnet/try

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Link-Cut Tree

Link-Cut Tree 概述. LCT是一种支持动态维护树上路径信息的数据结构,其本质是实链剖分,通过其他数据结构维护实链的信息达到维护路径及一些子树信息的效果(通常为splay) 刚开始学的时候感觉很难,但做过几道题了解套…

2021-2022ACM赛季小总结

最近一个月比赛月,做题量和频率太高,写博客浪费时间,所以一直没写。。 当前总结: CCPC桂林铜,银牌题线段树差一行调出,可惜又无奈,缺少运气 ICPC沈阳铜,银牌题的tarjan没想出来&…

ASP.NET Core模块化前后端分离快速开发框架介绍

源码地址GitHub:https://github.com/iamoldli/NetModular演示地址地址:http://118.24.75.170:6220/账户:admin密码:admin前端框架演示地址(临时)地址:http://progqx5cu.bkt.clouddn.com/skins/index.html#/账户&#x…

[POJ2888] Magic Bracelet

[POJ2888] Magic Bracelet 题目描述 简要题意:给圆上个点染色,颜色有种,其中对颜色不能相邻,循环同构,多组数据,询问染色方案数。 Solution 大概就是一道挺显然的Burnside题(一般染色&#x…

手写编译器

假期没事想搞搞编译器,但学校课程未教过编译原理,自己只好在b站看了stanford的CS143《编译原理》,并结合相关资料,打算寒假期间自己手写一个简易的编译器 ReactjsbootStrap开发自制编译语言Monkey的编译器:创建简易的页…

使用命令行导出 SQL Server 数据层应用程序

点击上方蓝字关注“汪宇杰博客”我们可以使用 SSMS 导出 SQL Server 数据库的数据层应用程序。我在本地机器上使用这种方法已经有好几年了。如果不知道什么是 DAC,您可以参考 Microsoft 文档:https://docs.microsoft.com/en-us/sql/relational-databases…

Codeforces 1065 E. Side Transmutations

Codeforces 1065 E. Side Transmutations 题目描述 题意:一个字符串长度为,字符集大小为 ,再给出种交换方式,表示可以交换。如果两个不同的串能够通过任意的交换方式得到相同的串,则视为相同,求方案数。…

P1 用reactjs和bootstrap创建页面IDE

文章目录页面IDE展示:要求:安装好Node.jsreactjs组件化开发页面IDE展示: 要求: 希望能够达到eclipse辅助编程的功能 关键字提醒,高亮 1, 有类似C语言的语法结构 2, 支持变量绑定 3,…

所以Apache基金会不受美国法律约束?

开源中国昨天发布的一篇文章《开源界也要注意,Apache 基金会与 GitHub 都受美国法律约束》引发了开源届乃至整个 IT 行业的热烈讨论,其中有个别声音认为文章的说法有误,甚至制造了恐慌。文中我们引用了两处内容,分别是 Apache 软件…

Loj#6485. LJJ 学二项式定理

Loj#6485. LJJ 学二项式定理(单位根反演) 题目描述 题目描述 题意:求下面式子的答案QAQ。 [∑((ni)⋅si⋅aimod4)]mod998244353[\sum(\tbinom{n}{i}\cdot s^i \cdot a_{i\;\;mod\;\;4}) ]\;mod\;\;998244353 [∑((in​)⋅si⋅aimod4​)]mod…

团体程序设计天梯赛-练习集

团体程序设计天梯赛-练习集 L2-001 紧急救援 (25 分) 知识点&#xff1a;最短路dij #include<bits/stdc.h> #define debug(x,y) printf("%s %d\n",x,y); typedef long long ll; using namespace std; inline int read(){int s0,w1;char chgetchar();while(…

C#中的Explicit和Implicit了解一下吧

今天在研究公司项目框架的时候看到了下面的用法&#xff0c;public static implicit operator JsonData(int data);。貌似很久没用过这种隐式转换的写法了&#xff0c;因此重新温习一下C#中转换相关的知识。作者&#xff1a;依乐祝原文地址&#xff1a;https://www.cnblogs.com…

bzoj#2125. 最短路

bzoj#2125. 最短路 题目描述 Description 给一个N个点M条边的连通无向图&#xff0c;满足每条边最多属于一个环&#xff0c;有Q组询问&#xff0c;每次询问两点之间的最短路径。 Input 输入的第一行包含三个整数&#xff0c;分别表示N和M和Q 下接M行&#xff0c;每行三个整数v…

Dapper的正确使用姿势

本文demo适用于MySQL优点高性能、易排查、易运维、灵活可控缺点和EF相比&#xff0c;手写sql当修改表结构不易发现bug。习惯了EF后再来使用Dapper&#xff0c;会很难适应那种没有了强类型的安全感。不过可以用单元测和心细来避免。问题&#xff1a;IDbConnection需不需要手动Op…

P4064 [JXOI2017]加法

P4064 [JXOI2017]加法 题意&#xff1a; 题解&#xff1a; 要求找最小值尽可能大&#xff0c;很明显二分&#xff0c;现在是如何判断二分出来的答案的正确性 对于一个二分出来的答案mid&#xff0c;要求对k个区间进行操作后&#xff0c;最小值大于mid&#xff0c;我们可以这…

[NewLife.XCode]百亿级性能

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…

LuoguP4606 [SDOI2018]战略游戏

LuoguP4606 [SDOI2018]战略游戏 题目描述 题目描述 省选临近&#xff0c;放飞自我的小 QQ 无心刷题&#xff0c;于是怂恿小 CC 和他一起颓废&#xff0c;玩起了一款战略游戏。 这款战略游戏的地图由 nn 个城市以及 mm 条连接这些城市的双向道路构成&#xff0c;并且从任意一个…

Jozky 刷题目录

文章目录本目录参考OI-Wiki还未解决专区算法基础枚举模拟递归&分治贪心排序前缀和&差分二分倍增构造搜索DFS && BFS双向搜索启发式搜索A*迭代加深搜索IDA*回溯法Dancing Links搜索优化&#xff08;剪枝&#xff09;动态规划普通dp背包dp区间dpDAG上的dp树形dp状…

Web API 速率限制(一)

导读当您API有大量消费者或者请求量猛增到影响程序可用性的时候&#xff0c;您可能需要对API进行速率限制。所以对API进行限速的在于&#xff1a;在增加可靠性和可用性的同时来保护基础架构&#xff0c;你不希望某个恶意的API消费者或者差劲的API客户端开发者通过Dos攻击把你的…

训练赛合集

带 # 的为未补 带△的为未补完 带※的为补不动 比赛合集 牛客 △2021年度训练联盟热身训练赛第一场 Codeforces Codeforces Round #694 Div. 2 △Codeforces Round #695 (Div. 2) Codeforces Round #696 (Div. 2) △CodeCraft-21 and Codeforces Round #711 (Div. 2) Codef…