当前位置: 首页 > news >正文

asp.net 手机网站模板自驾旅游服务网站开发文献综述

asp.net 手机网站模板,自驾旅游服务网站开发文献综述,济南专业的网站建设公司,潍坊住房和城乡建设局网站这是系列文章中的第一篇#xff1a;使用GraphvizOnline可视化ASP.NETCore3.0终结点。.第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文)第2部分-向ASP.NET Core应用程序添加终节点图第3部分-使用ImpromptuInterface创建一个自定义的DfaGraphWriter#xff0c;以便… 这是系列文章中的第一篇使用GraphvizOnline可视化ASP.NETCore3.0终结点。.第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文)第2部分-向ASP.NET Core应用程序添加终节点图第3部分-使用ImpromptuInterface创建一个自定义的DfaGraphWriter以便于反射作者依乐祝原文https://andrewlock.net/visualizing-asp-net-core-endpoints-using-graphvizonline-and-the-dot-language/译文https://www.cnblogs.com/yilezhu/p/13301981.html在这篇文章中我将展示如何在ASP.NETCore3.0应用程序中使用GraphvizOnline服务。这使您可以创建如下所示的图表这些图表描述了应用程序中的所有端点用GraphvizOnline和DOT语言绘制图形GraphvizOnline是一个GitHub上的开源项目它为DOT图形描述语言 提供了一个在线可视化工具。这是一种简单的语言它允许您定义各种类型的图形它将节点与边连接起来。例如一个基本的无向图可以定义为graph MyGraph {a -- b -- c;b -- d; } 它描述了以下图表每个节点都有一个名称(a, b, c, d)并且--定义节点之间的边缘。边定义节点之间的连接但它们没有方向(因此名称无向【undirected】).当然你也可以定义一个有向图其中边是有方向的。对于有向边使用-而不是--。例如digraph MyGraph {a - b - c;d - b; } 它描述了以下图表您可以自定义节点和边缘以多种方式显示的方式。例如可以标记节点和边缘digraph MySimpleGraph {// The label attribute can be used to change the label of a node...a [labelFoo];b [labelBar];// ... or an edgea - b [labelBaz]; } 你可以使用DOT图形描述语言做更多的事情这正是我们现在所需要的。那么这如何应用于ASP.NET Core应用程序呢使用有向图来可视化ASP.NET Core终结点ASP.NETCore中的终结点路由系统通过创建端点URL段的有向图来有效地工作。然后将传入的请求与图进行匹配一次一个段以确定要执行的终结点。例如以下简单有向图表示ASP.NET Core3.0 RazorPages 默认应用程序模板中的终结点(dotnet new webapp)其中包含三个Razor页面Index.cshtml, Error.cshtml和Privacy.cshtml:digraph DFA {1 [label/Error/]2 [label/Index/]3 [label/Privacy/]4 - 1 [label/Error]4 - 2 [label/Index]4 - 3 [label/Privacy]4 [label/] } 其中描述为如下图表.在上面的DOT文件中节点被赋予顺序的整数名1, 2, 3等并使用端点名称进行标记。这是ASP.NET Core用于表示终结点图的格式。对于Razor页面路由非常简单所以图非常明显。ASP.NET Core WebAPI应用程序生成了一个更有趣的图表。例如下面显示的ASP.NET Core 2.0默认模板中包含的ValuesController。它使用多个HTTP谓词以及稍微复杂的URL结构[Route(api/[controller])] [ApiController] public class ValuesController : ControllerBase {// GET api/values[HttpGet]public ActionResultIEnumerablestring Get() new string[] { value1, value2 };// GET api/values/5[HttpGet({id})]public ActionResultstring Get(int id) value;// POST api/values[HttpPost]public void Post([FromBody] string value) { }// PUT api/values/5[HttpPut({id})]public void Put(int id, [FromBody] string value) { }// DELETE api/values/5[HttpDelete({id})]public void Delete(int id) { } } 为了更好地度量我还添加了一个基本的健康检查端点。UseEndpoints():app.UseEndpoints(endpoints {endpoints.MapHealthChecks(/healthz);endpoints.MapControllers(); }); 此应用程序生成以下图表digraph DFA {1 [label/healthz/]2 [label/api/Values/{...}/ HTTP: GET]3 [label/api/Values/{...}/ HTTP: PUT]4 [label/api/Values/{...}/ HTTP: DELETE]5 [label/api/Values/{...}/ HTTP: *]6 - 2 [labelHTTP: GET]6 - 3 [labelHTTP: PUT]6 - 4 [labelHTTP: DELETE]6 - 5 [labelHTTP: *]6 [label/api/Values/{...}/]7 [label/api/Values/ HTTP: GET]8 [label/api/Values/ HTTP: POST]9 [label/api/Values/ HTTP: *]10 - 6 [label/*]10 - 7 [labelHTTP: GET]10 - 8 [labelHTTP: POST]10 - 9 [labelHTTP: *]10 [label/api/Values/]11 - 10 [label/Values]11 [label/api/]12 - 1 [label/healthz]12 - 11 [label/api]12 [label/] } 表现为如下图表在这个图中还有很多事情要做因为我们现在有了可变的路由参数值(路由模板中的{id}在图中显示为{...})和HTTP动词约束(GET/PUT/POST等等)当我第一次看到这个图表时我很难理解它。每个节点都是终结点吗当然不是如/api/不应该产生响应。那这个呢至于HTTP: *端点呢它们会产生响应吗为了进一步了解我查阅了可以生成这些图的ASP.NET Core中的代码但它有点复杂不幸的是由于大量使用internal类。我将在稍后的文章中探讨这些代码。为了更好地理解端点图我们需要了解并非所有的节点都是相同的。在下一节中我们将深入研究这个简单图中的不同类型的节点然后研究一个更好的图形表示至少在我看来了解不同类型的节点。图中的每个节点都与给定的“深度”相关联。这是应该已经匹配的URL段数。例如/api/Values/节点的深度为2-它要求空段/和/api段已经匹配。当请求到达EndpointRoutingMiddleware(由UseRouting()添加)时将传入的请求URL与此图进行比较。试图从树梢的根节点开始通过图表找到一条路径。URL段与图中的边进行增量匹配并在图中遍历一条路径直到整个请求URL匹配为止。每个节点(由在ASP.NET Core中的DfaNode中)有几个属性。我们目前感兴趣的属性是Matches*这是与该节点相关联的Endpoint(S)。如果通过路由匹配此节点则这是将被选择用于执行的Endpoint。Literals这些是连接节点的边缘。如果DfaNode有Literals它具有可以进一步遍历以到达其他节点的文字段。例如/api/节点包含一个有/Values值的Literal则指向/api/Values节点。PolicyEdges这些边缘是基于URL以外的约束进行匹配的。例如图中基于动词的边如HTTP: GET是策略的边缘指的是不同的DfaNode.Parameters如果节点具有支持路由参数的边缘(例如{id}), Parameters指向处理匹配参数的节点。这在图中是用/*边表示的。.还有一个附加的属性CatchAll这在某些图形中是相关的但我现在将忽略它因为我们的API图并不需要它。基于这些特性我们可以通过使用DOT语言的其他特性如形状、颜色、线型和箭头上图中添加了以下内容没有任何关联的节点Endpoint都以默认样式显示即黑色气泡。有Matches的显示为填充的棕色盒子。这些节点具有Endpoint这可以产生响应。对于上面的API示例这适用于已选择谓词的节点以及健康检查端点。文字段边缘显示为默认的黑色边缘带有一个填充箭头。Parameters边缘(/*)以蓝色显示使用菱形箭头。PolicyEdges以红色显示带有虚线和空三角形箭头。现在我承认我的设计技巧很烂但是我认为您可以同意这个图表显示的信息比默认的要多????--这是生成上面的图形的定义请记住您可以使用在线编辑来可视化和播放显示。digraph DFA {1 [label/healthz/ shapebox stylefilled colorbrown fontcolorwhite]2 [label/api/Values/{...}/ HTTP: GET shapebox stylefilled colorbrown fontcolorwhite]3 [label/api/Values/{...}/ HTTP: PUT shapebox stylefilled colorbrown fontcolorwhite]4 [label/api/Values/{...}/ HTTP: DELETE shapebox stylefilled colorbrown fontcolorwhite]5 [label/api/Values/{...}/ HTTP: * shapebox stylefilled colorbrown fontcolorwhite]6 - 2 [labelHTTP: GET colorred styledashed arrowheadopen]6 - 3 [labelHTTP: PUT colorred styledashed arrowheadopen]6 - 4 [labelHTTP: DELETE colorred styledashed arrowheadopen]6 - 5 [labelHTTP: * colorred styledashed arrowheadopen]6 [label/api/Values/{...}/]7 [label/api/Values/ HTTP: GET shapebox stylefilled colorbrown fontcolorwhite]8 [label/api/Values/ HTTP: POST shapebox stylefilled colorbrown fontcolorwhite]9 [label/api/Values/ HTTP: * shapebox stylefilled colorbrown fontcolorwhite]10 - 6 [label/* arrowheaddiamond colorblue]10 - 7 [labelHTTP: GET colorred styledashed arrowheadopen]10 - 8 [labelHTTP: POST colorred styledashed arrowheadopen]10 - 9 [labelHTTP: * colorred styledashed arrowheadopen]10 [label/api/Values/]11 - 10 [label/Values]11 [label/api/]12 - 1 [label/healthz]12 - 11 [label/api]12 [label/] } 注意HTTP: *节点与端点关联即使您可能不期望它因为它们返回405 Method Not Allowed.在下一篇文章中我将展示如何自动为自己的ASP.NET Core应用程序生成端点图。总结在这篇文章中我介绍了用于描述图形的DOT语言并展示了如何使用在线编辑从图表中创建图像。然后我展示了如何将ASP.NETCore 3.x应用程序中的端点路由表示为有向图。我描述了端点图中不同节点和边缘之间的差异并调整了图形的显示以更好地表示这些差异。在后面的文章中我将展示如何为应用程序生成自己的端点图如何自定义显示以及如何做的不仅仅是查看图形。往期精彩回顾【推荐】.NET Core开发实战视频课程 ★★★.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划【.NET Core微服务实战-统一身份认证】开篇及目录索引Redis基本使用及百亿数据量中的使用技巧分享附视频地址及观看指南.NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了10个小技巧助您写出高性能的ASP.NET Core代码用abp vNext快速开发Quartz.NET定时任务管理界面在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度现身说法实际业务出发分析百亿数据量下的多表查询优化关于C#异步编程你应该了解的几点建议C#异步编程看这篇就够了给我好看 您看此文用  · 秒转发只需1秒呦~ 好看你就点点我
http://www.huolong8.cn/news/354996/

相关文章:

  • 网站使用费用手表网站的结构
  • 成都网站建设交易宽带维修
  • 黑龙江省住房与城乡建设厅网站wordpress 云落主题
  • 咸宁网站建设价格湖北网站排名优化
  • 建设明星网站的目的安装wordpress出现500
  • 白佛网站建设天津市建设工程定额网站
  • 优化网站服务专业格泰网站建设
  • 建设网站注册会员手工建站与模板网站的区别
  • 网站认证是什么企业馆展厅设计公司
  • 做商城网站会不会被攻击wordpress anzhuo
  • uc做购物网站网站设计公司 国际
  • 网站右侧浮动广告百度首页排名优化多少钱
  • 泰州企业建站系统防伪网站建设
  • 做资源网站需要什么软件西安直播室网站建设
  • 温州网站制作优化淘宝做任务网站
  • 做明信片的网站天元建设集团有限公司李华
  • 北京网站建设主页广东建筑企业50强
  • 湖南网站建设公司 干净磐石网络在网页做动态图片的网站
  • 网站开发难吗2008做外贸有哪些免费的网站
  • 阿里云服务器 做网站贺州 网站建设公司有哪些
  • 公司网站搭建教程申请网站建设经费
  • 一家做运动鞋的网站旅游网站 功能
  • 茂名模板建站定制网站flash网站设计作品
  • 旅游网站建设的利益软件开发的八个流程
  • 中美今天最新消息池州市网站建设优化
  • 想自己做淘宝有什么网站商务网站建设论文总结
  • 网站手机端怎么做做视频网站怎么挣钱
  • 仿制网站软件怎么设置网站的关键字
  • 怎么免费建设个人博客网站蒙自建设网站
  • 制作公司网站有哪些好处网站建设项目体会